### Create Schedule Item Source: https://portswigger.net/burp/extensibility/dast/graphql-api/mutations Creates a new schedule item for a configured scan, defining when the scan should start. ```APIDOC ## POST /graphql ### Description Creates a new schedule item, which exposes all of the scheduling data about a configured scan. When a scheduled scan is due to start, a Scan object is created based on the associated schedule item. ### Method POST ### Endpoint /graphql ### Parameters #### Request Body - **input** (CreateScheduleItemInput!) - Required - Input object for creating a schedule item. ### Request Example ```json { "query": "mutation CreateScheduleItem($input: CreateScheduleItemInput!) { createScheduleItem(input: $input) { ... } }", "variables": { "input": { "scanConfigurationId": "config-id", "startTime": "2023-10-27T10:00:00Z", "recurrence": "Daily" } } } ``` ### Response #### Success Response (200) - **data** (CreateScheduleItemPayload) - Payload containing the newly created schedule item. #### Response Example ```json { "data": { "createScheduleItem": { "scheduleItem": { "id": "schedule-id", "startTime": "2023-10-27T10:00:00Z" } } } } ``` ``` -------------------------------- ### GraphQL Query Result Example Source: https://portswigger.net/burp/extensibility/dast/graphql-api/extension This JSON structure represents a typical successful response from the GraphQL query for extensions. It shows the nested data for each extension, including BApp details. ```JSON { "data": { "extensions": [ { "id": null, "uploaded_filename": null, "name": null, "description": null, "uploaded_date": null, "uploaded_by": null, "bapp_details": { "bapp_uuid": null, "author": null, "version": null } } ] } } ``` -------------------------------- ### Create Site (GraphQL) Source: https://portswigger.net/burp/extensibility/dast/graphql-api/mutations Creates a new site entry in the Burp Suite DAST site tree. This is the fundamental step to begin managing and scanning a new web application. ```graphql mutation CreateSite($input: CreateSiteInput!) { create_site(input: $input) { # Payload fields would go here, e.g., site_id } } ``` -------------------------------- ### GraphQL Mutation: Get BApp Details Source: https://portswigger.net/burp/extensibility/dast/graphql-api/get_bapp_details This GraphQL mutation retrieves details about a Burp App (BApp) without installing it. It requires an `UploadBappInput` containing the BApp's filename and its base64-encoded content. The mutation returns an `Extension` object with various attributes, including the BApp's UUID and author. ```graphql mutation GetBappDetails($input: UploadBappInput!) { get_bapp_details(input: $input) { extension { id uploaded_filename name description uploaded_date uploaded_by bapp_details { bapp_uuid author version } } } } ``` ```json { "input": { "extension_filename": "test-bapp.bapp", "extension_file_as_base64": "UEsDBBQAAAAIAJBp ... snip ... AADGFAAAAAA=" } } ``` -------------------------------- ### Create Site Source: https://portswigger.net/burp/extensibility/dast/graphql-api/mutations Creates a new site entry in the Burp Suite DAST site tree, representing a target for scanning. ```APIDOC ## POST /graphql ### Description Creates a new site in the site tree of Burp Suite DAST. ### Method POST ### Endpoint /graphql ### Parameters #### Request Body - **input** (CreateSiteInput!) - Required - Input object for creating a site. ### Request Example ```json { "query": "mutation CreateSite($input: CreateSiteInput!) { createSite(input: $input) { ... } }", "variables": { "input": { "name": "Example.com", "baseUrl": "https://example.com" } } } ``` ### Response #### Success Response (200) - **data** (CreateSitePayload) - Payload containing the newly created site. #### Response Example ```json { "data": { "createSite": { "site": { "id": "site-id", "name": "Example.com" } } } } ``` ``` -------------------------------- ### RRULE Format Examples for Scan Scheduling Source: https://portswigger.net/burp/extensibility/dast/graphql-api/scheduleinput Provides examples of the RRULE format used to define scan recurrence patterns. This includes frequency, interval, specific days, and limits like count or until date. ```text FREQ=MONTHLY;INTERVAL=1;BYMONTHDAY=19 FREQ=MINUTELY;INTERVAL=10 FREQ=HOURLY;INTERVAL=3 FREQ=DAILY;INTERVAL=1 FREQ=DAILY;INTERVAL=2 FREQ=WEEKLY;INTERVAL=2;BYDAY=TU FREQ=WEEKLY;INTERVAL=4;BYDAY=MO FREQ=WEEKLY;INTERVAL=4;BYDAY=MO,WE,FR FREQ=MONTHLY;INTERVAL=6;BYMONTHDAY=16 FREQ=MONTHLY;INTERVAL=6;BYDAY=3WE FREQ=DAILY;COUNT=10;INTERVAL=1 FREQ=HOURLY;UNTIL=20210101T100400Z;INTERVAL=1 ``` -------------------------------- ### Mutation: Create Site Source: https://portswigger.net/burp/extensibility/dast/graphql-api/create_site Creates a new site in the site tree of Burp Suite DAST. This mutation requires a CreateSiteInput object containing details for the new site. ```APIDOC ## MUTATION create_site ### Description Creates a new site in the site tree of Burp Suite DAST. ### Method MUTATION ### Endpoint /graphql ### Parameters #### Input Argument - **input** (CreateSiteInput!) - Required - The fields used to create a new site in the site tree. #### Input Fields for CreateSiteInput - **name** (String!) - Required - The name for the new site, displayed on the Burp Suite DAST web UI. - **parent_id** (ID!) - Required - The unique identifier of the folder to add the new site as a child. Use 0 for the root level. - **scope_v2** (ScopeV2Input) - Optional - The site scope, defining URLs to include or exclude. - **api_definitions** ([ApiDefinitionInput!]) - Optional - The API definition. - **scan_configuration_ids** ([ID!]) - Optional - A list of IDs for scan configurations to use. - **extension_ids** ([ID!]) - Optional - A list of IDs for extensions to use. - **bcheck_ids** ([ID!]) - Optional - A list of IDs for BChecks to use. - **application_logins** (ApplicationLoginInput) - Optional - Application logins for authenticated scans. - **email_recipients** ([EmailRecipientInput!]) - Optional - Email addresses to receive scan reports. - **agent_pool_id** (ID) - Optional - The agent pool ID for the site. Defaults to the default pool if not specified. - **slack_channels** (SlackChannelsInput) - Optional - Information about Slack notifications for the site. - **settings** (CreateSiteSettingsInput) - Optional - Settings applied to the new site. ### Request Example **Query** ```graphql mutation CreateSite($input: CreateSiteInput!) { create_site(input: $input) { site { id name parent_id scope_v2 { start_urls in_scope_url_prefixes out_of_scope_url_prefixes protocol_options } application_logins { login_credentials { id label username } recorded_logins { id label } } scan_configurations { id } extensions { id } email_recipients { id email } ephemeral agent_pool { id name agents { id name } } slack_channels { id name } settings { request_headers { id name value scope_prefix } request_cookies { id name value scope_prefix } } } } } ``` **Variables** ```json { "input": { "name": "Example Site", "parent_id": "0", "scope_v2": { "start_urls": ["example.com"], "in_scope_url_prefixes": null, "out_of_scope_url_prefixes": null, "protocol_options": "USE_HTTP_AND_HTTPS" }, "application_logins": { "login_credentials": [], "recorded_logins": [] }, "scan_configuration_ids": [], "extension_ids": [], "email_recipients": [], "agent_pool_id": null, "slack_channels": { "recipients": [] }, "settings": { "request_cookies": [], "request_headers": [] } } } ``` ### Response #### Success Response (200) - **site** (Site!) - The newly created site. #### Response Example ```json { "data": { "create_site": { "site": { "id": "some-site-id", "name": "Example Site", "parent_id": "0", "scope_v2": { "start_urls": ["example.com"], "in_scope_url_prefixes": null, "out_of_scope_url_prefixes": null, "protocol_options": "USE_HTTP_AND_HTTPS" }, "application_logins": { "login_credentials": [], "recorded_logins": [] }, "scan_configurations": [], "extensions": [], "email_recipients": [], "ephemeral": false, "agent_pool": null, "slack_channels": null, "settings": { "request_headers": [], "request_cookies": [] } } } } } ``` ``` -------------------------------- ### JiraTicket Object and Query Example Source: https://portswigger.net/burp/extensibility/dast/graphql-api/jiraticket This snippet details the JiraTicket object, which represents a Jira ticket linked to a Burp Scanner issue. It includes fields such as the external Jira issue key, unique ID, ticket type, priority, project, status, and a summary. An example GraphQL query demonstrates how to retrieve this information for a specific issue within a scan. ```APIDOC ## JiraTicket Object A Jira ticket that is linked to an issue found by a scan. ### Fields - **external_key** (String) - The Jira issue key. - **id** (ID!) - A unique identifier for the Jira ticket. - **issue_type** (String) - Deprecated: Use the ticket_type field instead. The name of the ticket type in Jira that this ticket belongs to. - **priority** (String) - The priority of the Jira ticket. - **project** (String) - The Jira project to which this ticket belongs. - **status** (String) - The current status of the Jira ticket. - **summary** (String) - A brief description of the issue. - **ticket_type** (String) - The name of the ticket type in Jira that this ticket belongs to. ### Example Query ```graphql query GetJiraTickets($scanId: ID!, $serialNumber: ID!) { issue (scan_id: $scanId, serial_number: $serialNumber) { tickets { jira_ticket { id external_key ticket_type summary project status priority } link_url link_id date_added } } } ``` ### Example Variables ```json { "scanId": "2", "serialNumber": "314276827364273645" } ``` ### Example Result ```json { "data": { "issue": { "tickets": [ { "jira_ticket": { "id": null, "external_key": null, "ticket_type": null, "summary": null, "project": null, "status": null, "priority": null }, "link_url": null, "link_id": null, "date_added": null } ] } } } ``` ``` -------------------------------- ### GraphQL API - Get All Tags Source: https://portswigger.net/burp/extensibility/dast/graphql-api/tag Retrieve a list of all tags, including their ID, name, description, and color. ```APIDOC ## GraphQL API - Get All Tags ### Description This query retrieves a list of all available tags. Each tag object includes its unique identifier, name, description, and assigned color. ### Method POST ### Endpoint /graphql ### Parameters #### Query Parameters None #### Request Body - **query** (String!) - The GraphQL query string. ### Request Example ```json { "query": "query GetAllTags {\n tags {\n id\n name\n description\n color\n }\n}" } ``` ### Response #### Success Response (200) - **data.tags** (Array) - A list of tag objects. - **id** (ID!) - The unique identifier of the tag. - **name** (String!) - The name of the tag. - **description** (String) - The description of the tag. - **color** (TagColor!) - The color of the tag. #### Response Example ```json { "data": { "tags": [ { "id": "1", "name": "Production", "description": "Production environment sites", "color": "DARK_BLUE" }, { "id": "2", "name": "Staging", "description": "Staging environment sites", "color": "ORANGE" }, { "id": "3", "name": "High Priority", "description": null, "color": "PURPLE" } ] } } ``` ``` -------------------------------- ### Site and Folder API Source: https://portswigger.net/burp/extensibility/dast/graphql-api/queries Retrieve information about individual sites, folders, and the site tree. ```APIDOC ## GET /graphql ### Description Retrieves information about individual sites, folders, and the entire site tree. ### Method GET ### Endpoint /graphql ### Parameters #### Query Parameters - **query** (String!) - Required - The GraphQL query string. ### Request Example ```json { "query": "{ site(id: \"site-abc\") { name url } }" } ``` ### Response #### Success Response (200) - **data** (Object) - Contains the query results. - **site** (Object) - Information about the specified site. - **name** (String) - The name of the site. - **url** (String) - The URL of the site. #### Response Example ```json { "data": { "site": { "name": "Example Website", "url": "https://example.com" } } } ``` ``` -------------------------------- ### Create Site Mutation (GraphQL) Source: https://portswigger.net/burp/extensibility/dast/graphql-api/create_site This GraphQL mutation is used to create a new site in the Burp Suite DAST site tree. It requires a CreateSiteInput object containing details like name, parent ID, scope, and various configuration options. The mutation returns the newly created site's details. ```graphql mutation CreateSite($input: CreateSiteInput!) { create_site(input: $input) { site { id name parent_id scope_v2 { start_urls in_scope_url_prefixes out_of_scope_url_prefixes protocol_options } application_logins { login_credentials { id label username } recorded_logins { id label } } scan_configurations { id } extensions { id } email_recipients { id email } ephemeral agent_pool { id name agents { id name } } slack_channels { id name } settings { request_headers { id name value scope_prefix } request_cookies { id name value scope_prefix } } } } } ``` ```json { "input": { "name": "Example Site", "parent_id": "0", "scope_v2": { "start_urls": ["example.com"], "in_scope_url_prefixes": null, "out_of_scope_url_prefixes": null, "protocol_options": "USE_HTTP_AND_HTTPS" }, "application_logins": { "login_credentials": [], "recorded_logins": [] }, "scan_configuration_ids": [], "extension_ids": [], "email_recipients": [], "agent_pool_id": null, "slack_channels": { "recipients": [] }, "settings": { "request_cookies": [], "request_headers": [] } } } ``` -------------------------------- ### Create Folder Platform Authentication Source: https://portswigger.net/burp/extensibility/dast/graphql-api/mutations Adds a new platform authentication configuration to a folder. ```APIDOC ## POST /graphql ### Description Add a new platform authentication to a folder. ### Method POST ### Endpoint /graphql ### Parameters #### Request Body - **input** (CreateFolderPlatformAuthenticationInput!) - Required - Input object for creating folder platform authentication. ### Request Example ```json { "query": "mutation CreateFolderPlatformAuthentication($input: CreateFolderPlatformAuthenticationInput!) { createFolderPlatformAuthentication(input: $input) { ... } }", "variables": { "input": { "folderId": "folder-id", "platformAuthentication": { "type": "Basic", "username": "user", "password": "pass" } } } } ``` ### Response #### Success Response (200) - **data** (CreateFolderPlatformAuthenticationPayload) - Payload containing the new platform authentication configuration. #### Response Example ```json { "data": { "createFolderPlatformAuthentication": { "folderPlatformAuthentication": { "id": "auth-id", "platformAuthentication": { "type": "Basic" } } } } } ``` ``` -------------------------------- ### GET /websites/portswigger_net_burp_extensibility_dast_graphql-api Source: https://portswigger.net/burp/extensibility/dast/graphql-api/hierarchicalscansettings Retrieves a list of scan settings for a specific site or folder. The returned settings include those inherited from parent folders. ```APIDOC ## GET /websites/portswigger_net_burp_extensibility_dast_graphql-api ### Description Retrieves a list of scan settings for a specific site or folder, including inherited settings. ### Method GET ### Endpoint /websites/portswigger_net_burp_extensibility_dast_graphql-api ### Query Parameters - **site_or_folder_id** (ID!) - Required - The ID of the site or folder for which to retrieve scan settings. ### Response #### Success Response (200) - **data** (object) - The data payload containing the hierarchical scan settings. - **hierarchical_scan_settings** (object) - Contains the scan settings. - **settings** (array of objects) - A list of scan settings. Each setting object includes: - **site_or_folder_id** (string) - The ID of the site or folder. - **site_or_folder_name** (string) - The name of the site or folder. - **scan_configurations** (array) - A list of scan configurations. - **extensions** (array) - A list of associated extensions. - **email_recipients** (array of objects) - A list of email recipients. - **id** (string) - The ID of the email recipient. - **email** (string) - The email address. - **slack_channels** (array of objects) - A list of Slack channels. - **id** (string) - The ID of the Slack channel. - **name** (string) - The name of the Slack channel. #### Response Example ```json { "data": { "hierarchical_scan_settings": { "settings": [ { "site_or_folder_id": "0", "site_or_folder_name": "Root folder", "scan_configurations": [], "extensions": [], "email_recipients": [], "slack_channels": [] } ] } } } ``` ``` -------------------------------- ### Mutation: get_bapp_details Source: https://portswigger.net/burp/extensibility/dast/graphql-api/get_bapp_details Retrieves detailed information about a BApp extension by providing its file details. This mutation is useful for inspecting BApps before installation. ```APIDOC ## MUTATION get_bapp_details ### Description Get information about a BApp without adding it to the list of usable extensions. ### Method MUTATION ### Endpoint /graphql ### Parameters #### Input Arguments - **input** (UploadBappInput!) - Required - The file from which to parse the extension's details. #### Input Fields - **extension_filename** (String!) - Required - The original name of the extension file. - **extension_file_as_base_64** (String!) - Required - The contents of the extension as base64-encoded. ### Return Fields - **extension** (Extension!) - The uploaded extension. - **id** (ID!) - Unique identifier for the extension. - **uploaded_filename** (String!) - The original filename of the uploaded extension. - **name** (String!) - The name of the BApp. - **description** (String!) - A description of the BApp. - **uploaded_date** (String!) - The date the extension was uploaded. - **uploaded_by** (String!) - The user who uploaded the extension. - **bapp_details** (BappDetails!) - Specific details about the BApp. - **bapp_uuid** (String!) - The UUID of the BApp. - **author** (String!) - The author of the BApp. - **version** (String!) - The version of the BApp. ### Request Example **Query** ```graphql mutation GetBappDetails($input: UploadBappInput!) { get_bapp_details(input: $input) { extension { id uploaded_filename name description uploaded_date uploaded_by bapp_details { bapp_uuid author version } } } } ``` **Variables** ```json { "input": { "extension_filename": "test-bapp.bapp", "extension_file_as_base_64": "UEsDBBQAAAAIAJBp ... snip ... AADGFAAAAAA=" } } ``` ``` -------------------------------- ### Create Folder (GraphQL) Source: https://portswigger.net/burp/extensibility/dast/graphql-api/mutations Creates a new folder within the site tree of Burp Suite DAST. Folders are used for organizing sites and scan configurations. ```graphql mutation CreateFolder($input: CreateFolderInput!) { create_folder(input: $input) { # Payload fields would go here, e.g., folder_id } } ``` -------------------------------- ### Get BApp Details Source: https://portswigger.net/burp/extensibility/dast/graphql-api/mutations The `get_bapp_details` operation retrieves information about a BApp without adding it to the list of usable extensions in Burp Suite DAST. ```graphql get_bapp_details(input: UploadBappInput!): UploadBappPayload ``` -------------------------------- ### Create Site Platform Authentication Source: https://portswigger.net/burp/extensibility/dast/graphql-api/mutations Adds a new platform authentication configuration to a site. ```APIDOC ## POST /graphql ### Description Add a new platform authentication to a site. ### Method POST ### Endpoint /graphql ### Parameters #### Request Body - **input** (CreateSitePlatformAuthenticationInput!) - Required - Input object for creating site platform authentication. ### Request Example ```json { "query": "mutation CreateSitePlatformAuthentication($input: CreateSitePlatformAuthenticationInput!) { createSitePlatformAuthentication(input: $input) { ... } }", "variables": { "input": { "siteId": "site-id", "platformAuthentication": { "type": "Basic", "username": "user", "password": "pass" } } } } ``` ### Response #### Success Response (200) - **data** (CreateSitePlatformAuthenticationPayload) - Payload containing the new platform authentication configuration. #### Response Example ```json { "data": { "createSitePlatformAuthentication": { "sitePlatformAuthentication": { "id": "auth-id", "platformAuthentication": { "type": "Basic" } } } } } ``` ``` -------------------------------- ### Create Folder Source: https://portswigger.net/burp/extensibility/dast/graphql-api/mutations Creates a new folder within the site tree of Burp Suite DAST for organizing scan targets. ```APIDOC ## POST /graphql ### Description Creates a new folder in the site tree of Burp Suite DAST. ### Method POST ### Endpoint /graphql ### Parameters #### Request Body - **input** (CreateFolderInput!) - Required - Input object for creating a folder. ### Request Example ```json { "query": "mutation CreateFolder($input: CreateFolderInput!) { createFolder(input: $input) { ... } }", "variables": { "input": { "name": "My Folder", "parentId": "parent-folder-id" } } } ``` ### Response #### Success Response (200) - **data** (CreateFolderPayload) - Payload containing the newly created folder. #### Response Example ```json { "data": { "createFolder": { "folder": { "id": "folder-id", "name": "My Folder" } } } } ``` ``` -------------------------------- ### Get PreScanCheck Source: https://portswigger.net/burp/extensibility/dast/graphql-api/prescancheck Retrieves details of a pre-scan check for a given site ID, including its status, timing, results, and associated recorded login information. ```APIDOC ## GET /pre_scan_check ### Description Retrieves details of a pre-scan check for a given site ID. This includes information about the check's creation, start and end times, status, results, and any recorded login data. ### Method GET ### Endpoint `/pre_scan_check` ### Parameters #### Query Parameters - **site_id** (ID!) - Required - The ID of the site for which to retrieve the pre-scan check. ### Request Example ```graphql query GetPreScanCheck($site_id: ID!) { pre_scan_check(site_id: $site_id) { id status created_time start_time end_time results { result_json } recorded_logins { images_available results { label failure_message failure_code images { index timestamp url } } } } } ``` ### Variables ```json { "site_id": 5 } ``` ### Response #### Success Response (200) - **pre_scan_check** (Object) - Contains the details of the pre-scan check. - **id** (ID!) - The unique identifier for the pre-scan check. - **status** (PreScanCheckStatus) - The current status of the pre-scan check. - **created_time** (Timestamp!) - The time the pre-scan check was created. - **start_time** (Timestamp) - The time the pre-scan check started. - **end_time** (Timestamp) - The time the pre-scan check completed. - **results** ([PreScanCheckResult!]!) - A list of results from the pre-scan check. - **result_json** (String) - The JSON string containing the detailed results. - **recorded_logins** (Object) - Information about recorded logins associated with the check. - **images_available** (Boolean) - Indicates if images are available for recorded logins. - **results** ([Object]) - A list of recorded login results. - **label** (String) - A label for the recorded login result. - **failure_message** (String) - A message indicating any failure. - **failure_code** (Int) - A code indicating the failure type. - **images** ([Object]) - A list of images associated with the recorded login. - **index** (Int) - The index of the image. - **timestamp** (Timestamp) - The timestamp of the image. - **url** (String) - The URL to access the image. #### Response Example ```json { "data": { "pre_scan_check": { "id": "5", "status": null, "created_time": null, "start_time": null, "end_time": null, "results": [ { "result_json": "{\"key\": \"value\"}" } ], "recorded_logins": { "images_available": true, "results": [ { "label": null, "failure_message": null, "failure_code": 0, "images": [ { "index": 0, "timestamp": null, "url": "/api-internal/sites/5/recorded_replay/images/1" } ] } ] } } } } ``` ``` -------------------------------- ### AgentMachine Information Source: https://portswigger.net/burp/extensibility/dast/graphql-api/agentmachine Retrieves information about agent machines configured for Burp Suite DAST. ```APIDOC ## GET /websites/portswigger_net_burp_extensibility_dast_graphql-api/AgentMachine ### Description Retrieves information about a specific agent machine configured for Burp Suite DAST. ### Method GET ### Endpoint /websites/portswigger_net_burp_extensibility_dast_graphql-api/AgentMachine ### Parameters #### Query Parameters - **machine_id** (ID) - Required - The unique identifier of the agent machine. - **ip** (String) - Optional - The IP address of the agent machine. ### Response #### Success Response (200) - **machine_id** (ID) - The unique identifier of the machine. - **ip** (String) - The IP address of the machine. #### Response Example ```json { "machine_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "ip": "192.168.1.100" } ``` ``` -------------------------------- ### CreateFolderInput Object Source: https://portswigger.net/burp/extensibility/dast/graphql-api/createfolderinput Specifies the input fields required to create a new folder in the site tree. ```APIDOC ## CreateFolderInput ### Description Specifies the input fields required to create a new folder in the site tree. ### Fields #### parent_id - **Type**: ID! - **Required**: Yes - **Description**: The unique identifier of the folder to which you want to add the new folder as a child. To add the folder to the root level, enter 0. #### name - **Type**: String! - **Required**: Yes - **Description**: The name for the new folder. This is the name that is displayed on the Burp Suite DAST web UI. #### description - **Type**: String - **Required**: No - **Description**: The description for the new folder. #### scan_configuration_ids - **Type**: [ID!] - **Required**: No - **Description**: A list of IDs for scan configurations that you want to use for scans of the sites in this folder or its subfolders. #### extension_ids - **Type**: [ID!] - **Required**: No - **Description**: A list of extension IDs for extensions that you want to use for scans of sites in this folder or its subfolders. #### bcheck_ids - **Type**: [ID!] - **Required**: No - **Description**: A list of BCheck IDs for BChecks that you want to use for scans of sites in this folder or its subfolders. #### email_recipients - **Type**: [EmailRecipientInput!] - **Required**: No - **Description**: A list of all the email addresses that receive scan reports whenever scans of sites in this folder finish. #### settings - **Type**: CreateFolderSettingsInput - **Required**: No - **Description**: Various settings that will influence settings on this site ``` -------------------------------- ### Create Schedule Item (GraphQL) Source: https://portswigger.net/burp/extensibility/dast/graphql-api/mutations Creates a new schedule item for a configured scan. This defines when a scan should automatically start, generating a Scan object based on the schedule. ```graphql mutation CreateScheduleItem($input: CreateScheduleItemInput!) { create_schedule_item(input: $input) { # Payload fields would go here, e.g., schedule_id } } ``` -------------------------------- ### Site Management Source: https://portswigger.net/burp/extensibility/dast/graphql-api/mutations APIs for managing sites within the Burp Suite DAST site tree. ```APIDOC ## DELETE /api/sites/{siteId} ### Description Permanently removes a site from the site tree in Burp Suite DAST. When you delete a site, all of the associated data is also deleted. This includes any scans that were performed on the site and their results. ### Method DELETE ### Endpoint /api/sites/{siteId} ### Parameters #### Path Parameters - **siteId** (ID!) - Required - The ID of the site to delete. #### Request Body - **input** (DeleteSiteInput!) - Required - Input object for deleting a site. ### Response #### Success Response (200) - **delete_site** (DeleteSitePayload) - Payload containing the result of the delete operation. ### Request Example ```json { "input": { "siteId": "site-789" } } ``` ### Response Example ```json { "delete_site": { "success": true, "message": "Site deleted successfully." } } ``` ## DELETE /api/sites/{siteId}/email_recipients/{recipientId} ### Description Permanently removes an existing recipient of scan completion reports. ### Method DELETE ### Endpoint /api/sites/{siteId}/email_recipients/{recipientId} ### Parameters #### Path Parameters - **siteId** (ID!) - Required - The ID of the site. - **recipientId** (ID!) - Required - The ID of the email recipient to remove. #### Request Body - **input** (DeleteSiteEmailRecipientInput!) - Required - Input object for deleting a site email recipient. ### Response #### Success Response (200) - **delete_site_email_recipient** (DeleteSiteEmailRecipientPayload) - Payload containing the result of the delete operation. ### Request Example ```json { "input": { "siteId": "site-789", "recipientId": "recipient-abc" } } ``` ### Response Example ```json { "delete_site_email_recipient": { "success": true, "message": "Email recipient removed successfully." } } ``` ## DELETE /api/sites/{siteId}/login_credentials/{credentialId} ### Description Permanently removes a saved set of login credentials for a site. ### Method DELETE ### Endpoint /api/sites/{siteId}/login_credentials/{credentialId} ### Parameters #### Path Parameters - **siteId** (ID!) - Required - The ID of the site. - **credentialId** (ID!) - Required - The ID of the login credential to remove. #### Request Body - **input** (DeleteSiteLoginCredentialInput!) - Required - Input object for deleting a site login credential. ### Response #### Success Response (200) - **delete_site_login_credential** (DeleteSiteLoginCredentialPayload) - Payload containing the result of the delete operation. ### Request Example ```json { "input": { "siteId": "site-789", "credentialId": "cred-def" } } ``` ### Response Example ```json { "delete_site_login_credential": { "success": true, "message": "Login credential removed successfully." } } ``` ## DELETE /api/sites/{siteId}/platform_authentication/{authId} ### Description Delete a platform authentication from a site. ### Method DELETE ### Endpoint /api/sites/{siteId}/platform_authentication/{authId} ### Parameters #### Path Parameters - **siteId** (ID!) - Required - The ID of the site. - **authId** (ID!) - Required - The ID of the platform authentication to delete. #### Request Body - **input** (DeleteSitePlatformAuthenticationInput!) - Required - Input object for deleting site platform authentication. ### Response #### Success Response (200) - **delete_site_platform_authentication** (DeleteSitePlatformAuthenticationPayload) - Payload containing the result of the delete operation. ### Request Example ```json { "input": { "siteId": "site-789", "authId": "auth-ghi" } } ``` ### Response Example ```json { "delete_site_platform_authentication": { "success": true, "message": "Platform authentication deleted successfully." } } ``` ## DELETE /api/sites/{siteId}/proxy/{proxyId} ### Description Delete a proxy configuration from a site. ### Method DELETE ### Endpoint /api/sites/{siteId}/proxy/{proxyId} ### Parameters #### Path Parameters - **siteId** (ID!) - Required - The ID of the site. - **proxyId** (ID!) - Required - The ID of the proxy configuration to delete. #### Request Body - **input** (DeleteSiteProxyInput!) - Required - Input object for deleting a site proxy configuration. ### Response #### Success Response (200) - **delete_site_proxy** (DeleteSiteProxyPayload) - Payload containing the result of the delete operation. ### Request Example ```json { "input": { "siteId": "site-789", "proxyId": "proxy-jkl" } } ``` ### Response Example ```json { "delete_site_proxy": { "success": true, "message": "Proxy configuration deleted successfully." } } ``` ## DELETE /api/sites/{siteId}/recorded_logins/{loginId} ### Description Permanently removes a recorded login sequence for a site. ### Method DELETE ### Endpoint /api/sites/{siteId}/recorded_logins/{loginId} ### Parameters #### Path Parameters - **siteId** (ID!) - Required - The ID of the site. - **loginId** (ID!) - Required - The ID of the recorded login to remove. #### Request Body - **input** (DeleteSiteRecordedLoginInput!) - Required - Input object for deleting a site recorded login. ### Response #### Success Response (200) - **delete_site_recorded_login** (DeleteSiteRecordedLoginPayload) - Payload containing the result of the delete operation. ### Request Example ```json { "input": { "siteId": "site-789", "loginId": "login-mno" } } ``` ### Response Example ```json { "delete_site_recorded_login": { "success": true, "message": "Recorded login removed successfully." } } ``` ## DELETE /api/sites/{siteId}/request_cookies/{cookieId} ### Description Delete a request cookie from a site. ### Method DELETE ### Endpoint /api/sites/{siteId}/request_cookies/{cookieId} ### Parameters #### Path Parameters - **siteId** (ID!) - Required - The ID of the site. - **cookieId** (ID!) - Required - The ID of the request cookie to delete. #### Request Body - **input** (DeleteSiteRequestCookieInput!) - Required - Input object for deleting a site request cookie. ### Response #### Success Response (200) - **delete_site_request_cookie** (DeleteSiteRequestCookiePayload) - Payload containing the result of the delete operation. ### Request Example ```json { "input": { "siteId": "site-789", "cookieId": "cookie-pqr" } } ``` ### Response Example ```json { "delete_site_request_cookie": { "success": true, "message": "Request cookie deleted successfully." } } ``` ## DELETE /api/sites/{siteId}/request_headers/{headerId} ### Description Delete a request header from a site. ### Method DELETE ### Endpoint /api/sites/{siteId}/request_headers/{headerId} ### Parameters #### Path Parameters - **siteId** (ID!) - Required - The ID of the site. - **headerId** (ID!) - Required - The ID of the request header to delete. #### Request Body - **input** (DeleteSiteRequestHeaderInput!) - Required - Input object for deleting a site request header. ### Response #### Success Response (200) - **delete_site_request_header** (DeleteSiteRequestHeaderPayload) - Payload containing the result of the delete operation. ### Request Example ```json { "input": { "siteId": "site-789", "headerId": "header-stu" } } ``` ### Response Example ```json { "delete_site_request_header": { "success": true, "message": "Request header deleted successfully." } } ``` ## POST /api/sites/move ### Description Moves a site to a different location in the site tree. ### Method POST ### Endpoint /api/sites/move ### Parameters #### Request Body - **input** (MoveSiteInput!) - Required - Input object for moving a site. ### Response #### Success Response (200) - **move_site** (MoveSitePayload) - Payload containing the result of the move operation. ### Request Example ```json { "input": { "siteId": "site-789", "newParentFolderId": "folder-456" } } ``` ### Response Example ```json { "move_site": { "success": true, "message": "Site moved successfully." } } ``` ## POST /api/sites/remove_tags ### Description Remove tags from sites in the site tree. ### Method POST ### Endpoint /api/sites/remove_tags ### Parameters #### Request Body - **input** (RemoveTagsFromNodesInput!) - Required - Input object for removing tags from nodes. ### Response #### Success Response (200) - **remove_tags_from_nodes** (RemoveTagsFromNodesPayload) - Payload containing the result of the tag removal operation. ### Request Example ```json { "input": { "nodeIds": ["site-789", "site-101"], "tagNames": ["tag3", "tag4"] } } ``` ### Response Example ```json { "remove_tags_from_nodes": { "success": true, "message": "Tags removed from sites successfully." } } ``` ## POST /api/sites/rename ### Description Renames an existing site in the site tree. ### Method POST ### Endpoint /api/sites/rename ### Parameters #### Request Body - **input** (RenameSiteInput!) - Required - Input object for renaming a site. ### Response #### Success Response (200) - **rename_site** (RenameSitePayload) - Payload containing the result of the rename operation. ### Request Example ```json { "input": { "siteId": "site-789", "newName": "UpdatedSiteName" } } ``` ### Response Example ```json { "rename_site": { "success": true, "message": "Site renamed successfully." } } ``` ```