{"note":"OpenAPI conversion -- returning structured metadata","name":"probely-com","description":"Snyk API & Web's API Reference Documentation","version":"1.2.0","base_url":"https://api.probely.com/","endpoints":378,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Snyk API & Web's API Reference Documentation\n@base https://api.probely.com/\n@version 1.2.0\n@auth ApiKey Authorization in header\n@endpoints 378\n@hint download_for_search\n@toc account(22), api-user-roles(10), api-users(10), audit-log(2), credentials(6), credits-packs(2), dashboard(8), definitions(2), discovery(13), domains(7), events(2), findings(8), frameworks(2), integrations(28), labels(18), permissions(1), plans(1), profile(9), report(8), roles(6), scan-profiles(5), scanning-agents(8), scans(8), scheduledscans(5), stored-reports(8), targets(147), teams(7), user-roles(10), users(8), webhooks(6), wizard(1)\n\n@group account\n@endpoint GET /account/available-slots/\n@desc Retrieve the Number of Free Slots for Targets with Unlimited Scans\n@returns(200) {available_slots: int?}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /account/billing/\n@desc Retrieve Billing Information\n@returns(200) {first_name: str, last_name: str, company: str, email: str(email), address: str, city: str, country: str, state: str, zip: str, vat_number: str, reg_number: str, other: str, currency_code: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /account/billing/\n@desc Update Billing Information\n@required {currency_code: str # Currency code information.}\n@optional {first_name: str= # First name of billing contact., last_name: str= # Last name of billing contact., company: str= # Company name for billing purposes., email: str(email)= # E-mail for billing purposes., address: str= # Company address for billing purposes., city: str=, country: str= # Company country for billing purposes., state: str= # Company state for billing purposes., zip: str= # Company zip code for billing purposes., vat_number: str # Company VAT number for billing purposes., reg_number: str # Company registration number for billing purposes., other: str # Additional information that should be in invoices.}\n@returns(200) {first_name: str, last_name: str, company: str, email: str(email), address: str, city: str, country: str, state: str, zip: str, vat_number: str, reg_number: str, other: str, currency_code: str}\n@errors {400, 401, 404, 500}\n@example_request {\"first_name\":\"Pedro\",\"last_name\":\"Miguel\",\"company\":\"Snyk\",\"email\":\"name@example.org\",\"address\":\"Fake street 19\",\"city\":\"Lisbon\",\"country\":\"Portugal\",\"zip\":\"1200-123\",\"vat_number\":\"123456789\"}\n\n@endpoint PATCH /account/billing/\n@desc Partial Update Billing Information\n@optional {first_name: str= # First name of billing contact., last_name: str= # Last name of billing contact., company: str= # Company name for billing purposes., email: str(email)= # E-mail for billing purposes., address: str= # Company address for billing purposes., city: str=, country: str= # Company country for billing purposes., state: str= # Company state for billing purposes., zip: str= # Company zip code for billing purposes., vat_number: str # Company VAT number for billing purposes., reg_number: str # Company registration number for billing purposes., other: str # Additional information that should be in invoices., currency_code: str # Currency code information.}\n@returns(200) {first_name: str, last_name: str, company: str, email: str(email), address: str, city: str, country: str, state: str, zip: str, vat_number: str, reg_number: str, other: str, currency_code: str}\n@errors {400, 401, 404, 500}\n@example_request {\"first_name\":\"Pedro\",\"last_name\":\"Miguel\",\"company\":\"Snyk\",\"email\":\"name@example.org\",\"address\":\"Fake street 19\",\"city\":\"Lisbon\",\"country\":\"Portugal\",\"zip\":\"1200-123\",\"vat_number\":\"123456789\"}\n\n@endpoint GET /account/credits/\n@desc Retrieve Credits Details\n@returns(200) {promotional_credits: int(int64), purchased_credits: int(int64), outstanding_credits: int(int64), on_hold_promotional: int(int64), on_hold_purchased: int(int64), promotional_expiration_date: str(date)?, purchased_expiration_date: str(date)?, balance: int}\n@errors {400, 401, 500}\n\n@endpoint POST /account/credits/top-up/\n@desc Purchase Credits\n@required {pack_id: str # Identifier of the credits pack to purchase.}\n@optional {coupon_ids: [str] # Identifiers of the credits coupons to purchase.}\n@returns(200) {id: str, sub_total: int, total: int, amount_due: int, amount_paid: int, currency_code: str, credits_applied: int, line_items: [map], discounts: [map], taxes: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /account/credits/top-up/settings/\n@desc Retrieve Credits Auto Top-up Settings\n@returns(200) {auto_top_up_on_expiration: bool, auto_top_up_on_insufficient: bool, auto_top_up_credits_pack: any?}\n@errors {400, 401, 500}\n\n@endpoint PUT /account/credits/top-up/settings/\n@desc Update Credits Auto Top-up Settings\n@optional {auto_top_up_on_expiration: bool # If true, buy credits automatically on the expiration date of purchased credits., auto_top_up_on_insufficient: bool # If true, buy credits automatically when the account balance is insufficient to perfom scans., auto_top_up_credits_pack: any # Credits pack to buy automatically.}\n@returns(201) {auto_top_up_on_expiration: bool, auto_top_up_on_insufficient: bool, auto_top_up_credits_pack: any?}\n@errors {400, 401, 500}\n\n@endpoint PATCH /account/credits/top-up/settings/\n@desc Partial Update Credits Auto Top-up Settings\n@optional {auto_top_up_on_expiration: bool # If true, buy credits automatically on the expiration date of purchased credits., auto_top_up_on_insufficient: bool # If true, buy credits automatically when the account balance is insufficient to perfom scans., auto_top_up_credits_pack: any # Credits pack to buy automatically.}\n@returns(201) {auto_top_up_on_expiration: bool, auto_top_up_on_insufficient: bool, auto_top_up_credits_pack: any?}\n@errors {400, 401, 500}\n\n@endpoint GET /account/credits/usage/\n@desc List Credits Usage\n@optional {end_dt: str(date-time), length: int # Number of results to return per page., operation: [str] # * `purchased` - PURCHASED * `expired` - EXPIRED * `used` - USED * `earned` - EARNED, ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., scope__name: str, search: str # A search term., start_dt: str(date-time), target: [str] # A unique Base58 value identifying this object., target__label: [str] # Name of the label.   The maximum length is 255 characters.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /account/credits/usage/report/\n@desc Download a CSV file with Credits Usage entries.\n@optional {end_dt: str(date-time) # Include instances created **before** ISO-formatted timestamp, operation: str(earned/expired/purchased/used) # Filter by operation. Multiple values are allowed., start_dt: str(date-time) # Include instances created **after** ISO-formatted timestamp, target: str # `Base58` ID to filter instances by the target linked to the entry, target__label: str # Filter by the name of the target's label.}\n@returns(200) Download a CSV file with Credits Usage entries\n@errors {400, 401, 500}\n\n@endpoint GET /account/entitlements/\n@desc Retrieve Entitlements\n@returns(200) {pool_size: int, allow_extra_users: bool, max_users: int, max_scan_freq: str, max_scan_number: int, max_credit_targets: int, allow_billing: bool, allow_create_and_destroy_targets: bool, max_ultd_targets: int, allow_scope_labels: bool, allowed_scope_types: [str], spa_limit: int, scanning_agent_limit: int, verify_target_ownership: bool, allowed_builtin_scan_profiles: [str], allow_custom_scan_profiles: bool, allow_bulk_scan: bool, allow_pause_and_resume_scan: bool, allow_partial_scan: bool, allow_scanning_2fa_targets: bool, allow_teams: bool, allow_bulk: bool, allow_dashboard: bool, allow_roles: bool, allow_scanning_agent: bool, allow_user_labels: bool, allow_custom_roles: bool, allow_sso: bool, allow_target_import_export: bool, allow_full_coverage_report: bool, allow_audit_log: bool, allow_discovery: bool, allow_aws: bool, allow_cloudflare: bool, allow_akamai: bool, allow_bola: bool, allow_self_findings_review: bool, allow_mtls: bool, allow_message_signature: bool, allow_mle: bool, allowed_signing_methods: [str], allow_ai_scanning_enhancements_switch: bool, allow_azure_devops: bool, allow_jira_cloud: bool, allow_jira_server: bool, allow_slack: bool, allow_defectdojo: bool, allow_webhooks: bool, allow_shortcut: bool, allow_heroku_sso: bool, allow_snyk_sast: bool, allowed_report_file_formats: [str], allowed_report_types: [str], allow_stored_reports: bool, allowed_stored_report_file_formats: [str], allowed_stored_report_types: [str], allow_buying_credits: bool, allow_credits: bool, allow_unlimited: bool, allow_ultd_change: bool, number_unused_slots: int, allowed_credits_packs: [map], credits_hourly_cost: int, credits_cap: int, credits_lightning_cost: int, credits_auth_cost: int, allowed_monthly_promotional_credits: int, number_available_ultd_targets_minus_team_quotas: int, allowed_builtin_roles: [str], allow_target_roles: bool, allow_dynamic_idp_roles_mapping: bool, is_snyk_customer: bool, allow_postman: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /account/invoices/\n@desc List Invoices\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /account/invoices/{id}/pdf/\n@desc Retrieve Invoice\n@required {id: str}\n@returns(202) {detail: str}\n@errors {400, 401, 500}\n\n@endpoint GET /account/settings/\n@desc Retrieve Account Settings\n@returns(200) {secrets_obfuscation: bool, require_expiration_date: bool, maximum_acceptance_period: int(int64)?, require_approver_name: bool, require_approval_date: bool, self_findings_review_enabled: bool}\n@errors {400, 401, 500}\n\n@endpoint PUT /account/settings/\n@desc Update Account Settings\n@optional {secrets_obfuscation: bool, require_expiration_date: bool # If true, findings acceptance requires an expiration date., maximum_acceptance_period: int(int64) # Maximum period (in days) for which a finding can be accepted., require_approver_name: bool # If true, findings acceptance requires an approver name., require_approval_date: bool # If true, findings acceptance requires an approval date., self_findings_review_enabled: bool # If enabled, users can review pending findings.}\n@returns(200) {secrets_obfuscation: bool, require_expiration_date: bool, maximum_acceptance_period: int(int64)?, require_approver_name: bool, require_approval_date: bool, self_findings_review_enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /account/settings/\n@desc Partial Update Account Settings\n@optional {secrets_obfuscation: bool, require_expiration_date: bool # If true, findings acceptance requires an expiration date., maximum_acceptance_period: int(int64) # Maximum period (in days) for which a finding can be accepted., require_approver_name: bool # If true, findings acceptance requires an approver name., require_approval_date: bool # If true, findings acceptance requires an approval date., self_findings_review_enabled: bool # If enabled, users can review pending findings.}\n@returns(200) {secrets_obfuscation: bool, require_expiration_date: bool, maximum_acceptance_period: int(int64)?, require_approver_name: bool, require_approval_date: bool, self_findings_review_enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /account/subscription/\n@desc Retrieve Subscription Information\n@returns(200) {plan: map{id: str, name: str, family: str?, description: str, is_trial: bool, charge_model: str, price: int, currency_code: str, period: int, period_unit: str, allowed_builtin_scan_profiles: [str], allowed_credits_packs: [map], discount: int, savings: int, tiers: any?}, subscription_status: str, has_used_trial: bool, trial_end: str(date-time)?, next_billing_at: str(date-time)?, next_billing_amount: int(int64), plan_amount: int(int64), auto_collection: bool, number_free_ultd_targets: int(int64), max_ultd_targets: int, number_paid_ultd_targets: int(int64), number_used_ultd_targets: int(int64), number_available_ultd_targets: int(int64), number_available_ultd_targets_minus_team_quotas: int(int64), number_used_credit_targets: int, number_available_credit_targets: int, past_year_ultd_target_changes: int, max_yearly_ultd_target_changes: int, next_allowed_ultd_target_change: str(date-time)?, channel: str?}\n@errors {400, 401, 500}\n\n@endpoint GET /account/unlimited/\n@desc List Targets with Unlimited Scans\n@optional {exclude_team: [str] # Names of the teams to exclude from results, as a query string.   For example, \"exclude_team=Frontend\" or \"exclude_team=Frontend&exclude_team=Backend\"., id: [str] # Identifiers of targets to filter results. Multiple choices are possible by repeating the query_param., label: [str] # Target label IDs to filter results, as a query string., label_logical_operator: str(and/or) # Logical operator to apply between target labels.   (Defaults to `or`)   * `and` - and * `or` - or, ordering: str # Which field to use when ordering the results., risk: [int] # Target risk to filter results:  * `None` - Not applicable. * `0` - No risk. * `10` - Low risk. * `20` - Medium risk. * `30` - High risk. * `40` - Critical risk., scan_profile: [str] # Identifier of the scan profile to filter results., search: str # A search term., team: [str] # Names of the teams to filter results, as a query string.   For example, \"team=Frontend\" or \"team=Frontend&team=Backend\"., type: [str], unlimited: bool # If true, filter results by targets with unlimited scans.   If false, filter results by targets that use credits., verified: bool}\n@returns(200)\n@errors {400, 401, 500}\n\n@endpoint PUT /account/unlimited/\n@desc Bulk Update Targets with Unlimited Scans\n@optional {exclude_team: [str] # Names of the teams to exclude from results, as a query string.   For example, \"exclude_team=Frontend\" or \"exclude_team=Frontend&exclude_team=Backend\"., id: [str] # Identifiers of targets to filter results. Multiple choices are possible by repeating the query_param., label: [str] # Target label IDs to filter results, as a query string., label_logical_operator: str(and/or) # Logical operator to apply between target labels.   (Defaults to `or`)   * `and` - and * `or` - or, ordering: str # Which field to use when ordering the results., risk: [int] # Target risk to filter results:  * `None` - Not applicable. * `0` - No risk. * `10` - Low risk. * `20` - Medium risk. * `30` - High risk. * `40` - Critical risk., scan_profile: [str] # Identifier of the scan profile to filter results., search: str # A search term., team: [str] # Names of the teams to filter results, as a query string.   For example, \"team=Frontend\" or \"team=Frontend&team=Backend\"., type: [str], unlimited: bool # If true, filter results by targets with unlimited scans.   If false, filter results by targets that use credits., verified: bool}\n@returns(200)\n@errors {400, 401, 500}\n\n@endpoint PATCH /account/unlimited/\n@desc Bulk Partial Update Targets with Unlimited Scans\n@optional {exclude_team: [str] # Names of the teams to exclude from results, as a query string.   For example, \"exclude_team=Frontend\" or \"exclude_team=Frontend&exclude_team=Backend\"., id: [str] # Identifiers of targets to filter results. Multiple choices are possible by repeating the query_param., label: [str] # Target label IDs to filter results, as a query string., label_logical_operator: str(and/or) # Logical operator to apply between target labels.   (Defaults to `or`)   * `and` - and * `or` - or, ordering: str # Which field to use when ordering the results., risk: [int] # Target risk to filter results:  * `None` - Not applicable. * `0` - No risk. * `10` - Low risk. * `20` - Medium risk. * `30` - High risk. * `40` - Critical risk., scan_profile: [str] # Identifier of the scan profile to filter results., search: str # A search term., team: [str] # Names of the teams to filter results, as a query string.   For example, \"team=Frontend\" or \"team=Frontend&team=Backend\"., type: [str], unlimited: bool # If true, filter results by targets with unlimited scans.   If false, filter results by targets that use credits., verified: bool}\n@returns(200)\n@errors {400, 401, 500}\n\n@endpoint DELETE /account/unlimited/\n@desc Bulk Disable Targets with Unlimited Scans\n@optional {exclude_team: [str] # Names of the teams to exclude from results, as a query string.   For example, \"exclude_team=Frontend\" or \"exclude_team=Frontend&exclude_team=Backend\"., id: [str] # Identifiers of targets to filter results. Multiple choices are possible by repeating the query_param., label: [str] # Target label IDs to filter results, as a query string., label_logical_operator: str(and/or) # Logical operator to apply between target labels.   (Defaults to `or`)   * `and` - and * `or` - or, ordering: str # Which field to use when ordering the results., risk: [int] # Target risk to filter results:  * `None` - Not applicable. * `0` - No risk. * `10` - Low risk. * `20` - Medium risk. * `30` - High risk. * `40` - Critical risk., scan_profile: [str] # Identifier of the scan profile to filter results., search: str # A search term., team: [str] # Names of the teams to filter results, as a query string.   For example, \"team=Frontend\" or \"team=Frontend&team=Backend\"., type: [str], unlimited: bool # If true, filter results by targets with unlimited scans.   If false, filter results by targets that use credits., verified: bool}\n@returns(200)\n@errors {400, 401, 500}\n\n@endgroup\n\n@group api-user-roles\n@endpoint GET /api-user-roles/\n@desc List API User Roles\n@optional {account: bool, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., role: [str] # A unique Base58 value identifying this object., target: [str], team: [str], user: [str] # A unique Base58 value identifying this object.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 403, 500}\n\n@endpoint POST /api-user-roles/\n@desc Create API User Role\n@required {user: map{id!: str}, role: map{id!: str}, scope: map{tier!: str, team: map, target: map}}\n@returns(201) {id: str, user: map{id: str, email: str(email), name: str}, role: map{id: str, name: str, permissions: [map], custom: bool, description: str?}, scope: map{tier: str, target: map{id: str, name: str, url: str(uri)}, team: map{id: str, name: str}}}\n@errors {400, 401, 403, 500}\n\n@endpoint GET /api-user-roles/{id}/\n@desc Retrieve API User Role\n@required {id: str}\n@returns(200) {id: str, user: map{id: str, email: str(email), name: str}, role: map{id: str, name: str, permissions: [map], custom: bool, description: str?}, scope: map{tier: str, target: map{id: str, name: str, url: str(uri)}, team: map{id: str, name: str}}}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /api-user-roles/{id}/\n@desc Update API User Role\n@required {id: str, id: str, user: map{id!: str}, role: map{id!: str}, scope: map{tier!: str, team: map, target: map}}\n@returns(200) {id: str, user: map{id: str, email: str(email), name: str}, role: map{id: str, name: str, permissions: [map], custom: bool, description: str?}, scope: map{tier: str, target: map{id: str, name: str, url: str(uri)}, team: map{id: str, name: str}}}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /api-user-roles/{id}/\n@desc Partial Update API User Role\n@required {id: str}\n@optional {id: str, user: map{id!: str}, role: map{id!: str}, scope: map{tier!: str, team: map, target: map}}\n@returns(200) {id: str, user: map{id: str, email: str(email), name: str}, role: map{id: str, name: str, permissions: [map], custom: bool, description: str?}, scope: map{tier: str, target: map{id: str, name: str, url: str(uri)}, team: map{id: str, name: str}}}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /api-user-roles/{id}/\n@desc Delete API User Role\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint POST /api-user-roles/bulk/create/\n@desc Bulk Create API User Roles\n@returns(201)\n@errors {400, 401, 500}\n\n@endpoint POST /api-user-roles/bulk/delete/\n@desc Bulk Delete API User Roles\n@required {ids: [str]}\n@returns(200) {ids: [str]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /api-user-roles/bulk/operations/\n@desc Bulk Operations on API User Roles\n@optional {create: [map{user!: map, role!: map, scope!: map}], update: [map{id!: str, user!: map, role!: map, scope!: map}], delete: [map{id!: str}]}\n@returns(200) {create: [map], update: [map], delete: map{ids: [str]}}\n@errors {400, 401, 500}\n\n@endpoint POST /api-user-roles/bulk/update/\n@desc Bulk Update API User Roles\n@returns(201)\n@errors {400, 401, 500}\n\n@endgroup\n\n@group api-users\n@endpoint GET /api-users/\n@desc List API Users\n@optional {account: bool, active: bool, creator: [str] # Filter API users by their creator.  It will include API users created by other API users in the same chain too., exclude: [str] # Fields to exclude from the response., exclude_target: [str], exclude_team: [str], label: [str] # A unique Base58 value identifying this object., label_logical_operator: str(and/or) # Logical operator to apply between user labels:   (Defaults to `or`)   * `and` - and * `or` - or, length: int # Number of results to return per page., mfa_enabled: bool, no_access: bool, ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., role: [str] # A unique Base58 value identifying this object., search: str # A search term., target: [str], team: [str]}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /api-users/\n@desc Create API User\n@required {name: str # Name of the user.}\n@optional {title: str(ceo/cto/cso/seceng/dev/devop/manager/other/) # Job title:  * `ceo` - Chief Executive Officer * `cto` - Chief Technology Officer * `cso` - Chief Security Officer * `seceng` - Security engineer * `dev` - Developer * `devop` - Developer Operations * `manager` - Manager * `other` - Other, active: bool=true # If true, the user can authenticate to Snyk API & Web to interact with apps and the API.   If false, the user's access to Snyk API & Web's apps and API is blocked.   Defaults to true., labels: [any] # Labels of the user., user_roles: [map{id!: str, role!: map, scope!: map}] # Roles of the user., days_valid_for: int}\n@returns(200) {id: str, name: str, changed_by: any, changed: str(date-time), active: bool, labels: [map], user_roles: [map], is_apiuser: bool, key: str, expiration_date: str(date-time)?, days_valid_for: int}\n@errors {400, 401, 500}\n\n@endpoint GET /api-users/{id}/\n@desc Retrieve API User\n@required {id: str}\n@returns(200) {id: str, name: str, changed_by: any, changed: str(date-time), active: bool, labels: [map], user_roles: [map], is_apiuser: bool, key: str, expiration_date: str(date-time)?, days_valid_for: int}\n@errors {400, 401, 500}\n\n@endpoint PUT /api-users/{id}/\n@desc Update API User\n@required {id: str, id: str # A unique Base58 value identifying this object., email: str(email) # Email of the user., name: str # Name of the user., is_billing_admin: bool # If true, the user has permissions to manage billing. Read-only., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., labels: [map{id!: str, name!: str, color: str, changed_by!: any, changed!: str(date-time)}], user_roles: [map{role!: map, scope!: map}], last_login: str(date-time) # Date and time of the last login of the user, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", is_apiuser: bool # If true, it is an app that interacts with Snyk API & Web through the API.   If false, it is a human who interacts with Snyk API & Web through our web interface.   Defaults to false.\", mfa_enabled: bool # If true, the user has MFA (Multi-Factor Authentication) enabled at login.   Defaults to true.}\n@optional {title: str(ceo/cto/cso/seceng/dev/devop/manager/other/) # Job title:  * `ceo` - Chief Executive Officer * `cto` - Chief Technology Officer * `cso` - Chief Security Officer * `seceng` - Security engineer * `dev` - Developer * `devop` - Developer Operations * `manager` - Manager * `other` - Other, active: bool=true # If true, the user can authenticate to Snyk API & Web to interact with apps and the API.   If false, the user's access to Snyk API & Web's apps and API is blocked.   Defaults to true.}\n@returns(200) {id: str, name: str, changed_by: any, changed: str(date-time), active: bool, labels: [map], user_roles: [map], is_apiuser: bool, key: str, expiration_date: str(date-time)?, days_valid_for: int}\n@errors {400, 401, 500}\n\n@endpoint PATCH /api-users/{id}/\n@desc Partial Update API User\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., email: str(email) # Email of the user., name: str # Name of the user., title: str(ceo/cto/cso/seceng/dev/devop/manager/other/) # Job title:  * `ceo` - Chief Executive Officer * `cto` - Chief Technology Officer * `cso` - Chief Security Officer * `seceng` - Security engineer * `dev` - Developer * `devop` - Developer Operations * `manager` - Manager * `other` - Other, is_billing_admin: bool # If true, the user has permissions to manage billing. Read-only., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., active: bool=true # If true, the user can authenticate to Snyk API & Web to interact with apps and the API.   If false, the user's access to Snyk API & Web's apps and API is blocked.   Defaults to true., labels: [map{id!: str, name!: str, color: str, changed_by!: any, changed!: str(date-time)}], user_roles: [map{role!: map, scope!: map}], last_login: str(date-time) # Date and time of the last login of the user, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", is_apiuser: bool # If true, it is an app that interacts with Snyk API & Web through the API.   If false, it is a human who interacts with Snyk API & Web through our web interface.   Defaults to false.\", mfa_enabled: bool # If true, the user has MFA (Multi-Factor Authentication) enabled at login.   Defaults to true.}\n@returns(200) {id: str, name: str, changed_by: any, changed: str(date-time), active: bool, labels: [map], user_roles: [map], is_apiuser: bool, key: str, expiration_date: str(date-time)?, days_valid_for: int}\n@errors {400, 401, 500}\n\n@endpoint DELETE /api-users/{id}/\n@desc Disable API User\n@required {id: str}\n@returns(200) {id: str, name: str, changed_by: any, changed: str(date-time), active: bool, labels: [map], user_roles: [map], is_apiuser: bool, key: str, expiration_date: str(date-time)?, days_valid_for: int}\n@errors {400, 401, 500}\n\n@endpoint GET /api-users/{user_id}/targets/\n@desc List API User Targets\n@required {user_id: str}\n@optional {enabled: bool, exclude_team: [str] # Names of the teams to exclude from results, as a query string.   For example, \"exclude_team=Frontend\" or \"exclude_team=Frontend&exclude_team=Backend\"., id: [str] # Identifiers of targets to filter results. Multiple choices are possible by repeating the query_param., label: [str] # Target label IDs to filter results, as a query string., label_logical_operator: str(and/or) # Logical operator to apply between target labels.   (Defaults to `or`)   * `and` - and * `or` - or, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., risk: [str] # Target risk to filter results:  * `None` - Not applicable. * `0` - No risk. * `10` - Low risk. * `20` - Medium risk. * `30` - High risk. * `40` - Critical risk., role: [str], scan_profile: [str] # Identifier of the scan profile to filter results., search: str # A search term., team: [str] # Names of the teams to filter results, as a query string.   For example, \"team=Frontend\" or \"team=Frontend&team=Backend\"., type: [str], unlimited: bool # If true, filter results by targets with unlimited scans.   If false, filter results by targets that use credits., verified: bool}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /api-users/bulk/update/\n@desc Bulk Update API Users\n@required {ids: [str] # List of object IDs., id: str # A unique Base58 value identifying this object., email: str(email) # Email of the user., name: str # Name of the user., is_billing_admin: bool # If true, the user has permissions to manage billing. Read-only., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., labels: [map{id!: str, name!: str, color: str, changed_by!: any, changed!: str(date-time)}], user_roles: [map{role!: map, scope!: map}], last_login: str(date-time) # Date and time of the last login of the user, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", is_apiuser: bool # If true, it is an app that interacts with Snyk API & Web through the API.   If false, it is a human who interacts with Snyk API & Web through our web interface.   Defaults to false.\", mfa_enabled: bool # If true, the user has MFA (Multi-Factor Authentication) enabled at login.   Defaults to true.}\n@optional {title: str(ceo/cto/cso/seceng/dev/devop/manager/other/) # Job title:  * `ceo` - Chief Executive Officer * `cto` - Chief Technology Officer * `cso` - Chief Security Officer * `seceng` - Security engineer * `dev` - Developer * `devop` - Developer Operations * `manager` - Manager * `other` - Other, active: bool=true # If true, the user can authenticate to Snyk API & Web to interact with apps and the API.   If false, the user's access to Snyk API & Web's apps and API is blocked.   Defaults to true.}\n@returns(200) {id: str, name: str, changed_by: any, changed: str(date-time), active: bool, labels: [map], user_roles: [map], is_apiuser: bool, key: str, expiration_date: str(date-time)?, days_valid_for: int}\n@errors {400, 401, 500}\n\n@endpoint GET /api-users/policy/\n@desc Retrieve API Key Policy\n@returns(200) {max_api_key_duration_days: int(int64), enable_max_api_key_duration: bool, disable_keys_on_user_disabled: bool}\n@errors {400, 401, 500}\n\n@endpoint PUT /api-users/policy/\n@desc Update API Key Policy\n@optional {max_api_key_duration_days: int(int64) # Sets the upper limit (in days) for how long an API key can be valid. This constraint is only active if 'enable_max_api_key_duration' is set to True., enable_max_api_key_duration: bool # If enabled, the 'max_api_key_duration_days' setting will be enforced,  limiting the validity period of created API keys., disable_keys_on_user_disabled: bool # If enabled, all API keys created directly by a User (or by API users derived from them) will be automatically disabled when that user is disabled or deleted.}\n@returns(200) {max_api_key_duration_days: int(int64), enable_max_api_key_duration: bool, disable_keys_on_user_disabled: bool}\n@errors {400, 401, 500}\n\n@endgroup\n\n@group audit-log\n@endpoint GET /audit-log/\n@desc List Audit Log entries.\n@optional {end_dt: str(date-time) # Include instances created **before** ISO-formatted timestamp, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term., start_dt: str(date-time) # Include instances created **after** ISO-formatted timestamp, user: str # `Base58` ID to filter instances by the user linked to the entry}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /audit-log/download/\n@desc Download a CSV file with Audit Log entries.\n@optional {end_dt: str(date-time) # Include instances created **before** ISO-formatted timestamp, start_dt: str(date-time) # Include instances created **after** ISO-formatted timestamp, user: str # `Base58` ID to filter instances by the user linked to the entry}\n@returns(200) CSV file with audit log entries\n@errors {400, 401, 500}\n\n@endgroup\n\n@group credentials\n@endpoint GET /credentials/\n@desc List Credentials\n@optional {creator: str, is_sensitive: bool, length: int # Number of results to return per page., ordering: [str] # Ordering  * `name` - Name * `-name` - Name (descending) * `creator__name` - Creator  name * `-creator__name` - Creator  name (descending) * `updated_at` - Updated at * `-updated_at` - Updated at (descending) * `created_at` - Created at * `-created_at` - Created at (descending), page: int # A page number within the paginated result set., search: str # A search term., team: [str] # A unique Base58 value identifying this object.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /credentials/\n@desc Create Credential\n@required {id: str # A unique Base58 value identifying this object., uri: str, name: str, value: any # Value of credential. Returns null if sensitive., created_at: str(date-time), updated_at: str(date-time), creator: any, usage_count: int, references: [map{root_object_id!: str, root_object_type!: str, root_object_display_name!: str, ui_reference_key!: str}]}\n@optional {team: str # A unique Base58 value identifying this object., description: str, is_sensitive: bool}\n@returns(201) {id: str, uri: str, name: str, team: str?, description: str, is_sensitive: bool, value: any?, created_at: str(date-time), updated_at: str(date-time), creator: any, usage_count: int, references: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /credentials/{id}/\n@desc Retrieve Credential\n@required {id: str}\n@returns(200) {id: str, uri: str, name: str, team: str?, description: str, is_sensitive: bool, value: any?, created_at: str(date-time), updated_at: str(date-time), creator: any, usage_count: int, references: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /credentials/{id}/\n@desc Update Credential\n@required {id: str, id: str # A unique Base58 value identifying this object., uri: str, name: str, value: any # Value of credential. Returns null if sensitive., created_at: str(date-time), updated_at: str(date-time), creator: any, usage_count: int, references: [map{root_object_id!: str, root_object_type!: str, root_object_display_name!: str, ui_reference_key!: str}]}\n@optional {team: str # A unique Base58 value identifying this object., description: str, is_sensitive: bool}\n@returns(200) {id: str, uri: str, name: str, team: str?, description: str, is_sensitive: bool, value: any?, created_at: str(date-time), updated_at: str(date-time), creator: any, usage_count: int, references: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /credentials/{id}/\n@desc Partial Update Credential\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., uri: str, name: str, team: str # A unique Base58 value identifying this object., description: str, is_sensitive: bool, value: any # Value of credential. Returns null if sensitive., created_at: str(date-time), updated_at: str(date-time), creator: any, usage_count: int, references: [map{root_object_id!: str, root_object_type!: str, root_object_display_name!: str, ui_reference_key!: str}]}\n@returns(200) {id: str, uri: str, name: str, team: str?, description: str, is_sensitive: bool, value: any?, created_at: str(date-time), updated_at: str(date-time), creator: any, usage_count: int, references: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /credentials/{id}/\n@desc Delete Credential\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group credits-packs\n@endpoint GET /credits-packs/\n@desc List Credits Packs\n@optional {length: int # Number of results to return per page., page: int # A page number within the paginated result set.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /credits-packs/{id}/\n@desc Retrieve Credits Pack\n@required {id: str # A unique value identifying this addon.}\n@returns(200) {id: str, name: str, price: int, currency_code: str, pack_amount: int(int64), discount: int, savings: int}\n@errors {400, 401, 500}\n\n@endgroup\n\n@group dashboard\n@endpoint GET /dashboard/aggregated-risk-trend/\n@desc List Aggregated Risk Trends\n@optional {label: [str] # A unique Base58 value identifying this object., ordering: str # Which field to use when ordering the results., search: str # A search term., severity: [int] # * `10` - low * `20` - medium * `30` - high * `40` - critical, target: [str] # A unique Base58 value identifying this object., team: [str] # A unique Base58 value identifying this object.}\n@returns(200) {start: num, stop: num, step: num, results: num}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /dashboard/average-fix-time/\n@desc List Average Fix Times\n@optional {format: str(csv/json), label: [str] # A unique Base58 value identifying this object., ordering: str # Which field to use when ordering the results., search: str # A search term., severity: [int] # * `10` - low * `20` - medium * `30` - high * `40` - critical, target: [str] # A unique Base58 value identifying this object., team: [str] # A unique Base58 value identifying this object.}\n@returns(200) {results: map{<vuln name>: str}}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /dashboard/fixed-vulnerabilities-trend/\n@desc Get Fixed Vulnerabilities Trend\n@optional {label: [str] # A unique Base58 value identifying this object., ordering: str # Which field to use when ordering the results., search: str # A search term., severity: [int] # * `10` - low * `20` - medium * `30` - high * `40` - critical, target: [str] # A unique Base58 value identifying this object., team: [str] # A unique Base58 value identifying this object.}\n@returns(200) {start: str(date-time), stop: str(date-time), step: num, results: map{fixed: [[any]], pending: [[any]]}}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /dashboard/needs-attention-pie/\n@desc Retrieve Attention Pie\n@optional {label: [str] # A unique Base58 value identifying this object., ordering: str # Which field to use when ordering the results., search: str # A search term., severity: [int] # * `10` - low * `20` - medium * `30` - high * `40` - critical, target: [str] # A unique Base58 value identifying this object., team: [str] # A unique Base58 value identifying this object.}\n@returns(200) {results: [[any]]}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /dashboard/needs-attention-top/\n@desc List Top Items needing attention\n@optional {format: str(csv/json), label: [str] # A unique Base58 value identifying this object., ordering: str # Which field to use when ordering the results., search: str # A search term., severity: [int] # * `10` - low * `20` - medium * `30` - high * `40` - critical, target: [str] # A unique Base58 value identifying this object., team: [str] # A unique Base58 value identifying this object.}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint GET /dashboard/risk-trend/\n@desc List Risk Trends\n@optional {format: str(csv/json), label: [str] # A unique Base58 value identifying this object., ordering: str # Which field to use when ordering the results., search: str # A search term., severity: [int] # * `10` - low * `20` - medium * `30` - high * `40` - critical, target: [str] # A unique Base58 value identifying this object., team: [str] # A unique Base58 value identifying this object.}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint GET /dashboard/severity-trend/\n@desc List Severity Trends\n@optional {format: str(csv/json), label: [str] # A unique Base58 value identifying this object., ordering: str # Which field to use when ordering the results., search: str # A search term., severity: [int] # * `10` - low * `20` - medium * `30` - high * `40` - critical, target: [str] # A unique Base58 value identifying this object., team: [str] # A unique Base58 value identifying this object.}\n@returns(200) {start: num, stop: num, step: num, results: num}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /dashboard/top-vulnerabilities/\n@desc List Top Vulnerabilities\n@optional {label: [str] # A unique Base58 value identifying this object., ordering: str # Which field to use when ordering the results., search: str # A search term., severity: [int] # * `10` - low * `20` - medium * `30` - high * `40` - critical, target: [str] # A unique Base58 value identifying this object., team: [str] # A unique Base58 value identifying this object.}\n@returns(200) {results: [int]}\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group definitions\n@endpoint GET /definitions/\n@desc List Vulnerability Definitions\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., passive: bool, search: str # A search term., severity: [int] # Default vulnerability severity.  * `10` - low * `20` - medium * `30` - high * `40` - critical}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /definitions/{id}/\n@desc Retrieve Vulnerability Definition\n@required {id: str}\n@returns(200) {id: str, name: str, desc: str?, changed: str(date-time), severity: int?, cvss_vector: str?, cwe_id: str?, cwe_name: str?, passive: bool}\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group discovery\n@endpoint GET /discovery/assets/\n@desc List Discovered Assets\n@optional {has_target: bool # If true, filter results by discovered assets with a target created.   If false, filter results by discovered assets with no target created.   If not specified, this filter is ignored., label: [str] # Target label IDs of discovered assets to filter results, as a query string., label_logical_operator: str(and/or) # Logical operator to apply between target labels:   (Defaults to `or`)   * `and` - and * `or` - or, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., owner: [str] # Owner labels to filter results, as a query string.   For example, \"owner=Admin\" or \"owner=Admin&owner=QA\"., owner_logical_operator: str(and/or) # Logical operator to apply between owner labels:   (Defaults to `or`)   * `and` - and * `or` - or, page: int # A page number within the paginated result set., risk: [any] # Scan assessment risk of discovered assets to filter results:   * `None` - Not applicable. * `0` - No risk. * `10` - Low risk. * `20` - Medium risk. * `30` - High risk. * `40` - Critical risk., score: [str] # Security Headers assessment score of discovered assets to filter results:     * `` -  * `A+` - A+ * `A` - A * `B` - B * `C` - C * `D` - D * `E` - E * `F` - F * `R` - R * `NA` - NA, search: str # A search term., source: [str] # Source of discovered assets to filter results., state: [str] # State of discovered assets to filter results:     * `NEW` - New * `ACTIVE` - Active * `HIDDEN` - Hidden * `ARCHIVED` - Archived, technology: str # Technology found in the discovered assets to filter results., type: [str] # Type of discovered assets to filter results:     * `web` - Web * `api` - API}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /discovery/assets/{discovery_asset_id}/logs/\n@desc List Discovered Asset's Logs\n@required {discovery_asset_id: str # Identifier of the discovery asset.   A unique Base58 value identifying this object.}\n@optional {event_type: [str] # Type of event to filter results:     * `first_seen` - First Seen * `domain` - Domain * `ip` - IP * `risk` - Risk * `scan` - Scan * `note` - Note * `owner` - Owner * `score` - Score * `technology` - Technology, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /discovery/assets/{id}/\n@desc Retrieve Discovered Asset\n@required {id: str}\n@returns(200) {id: str, account: str, name: str, url: str, type: str, last_seen: str(date-time), first_seen: str(date-time), sources: [map], technologies: [map], authorities: str, risk: any?, score: str, security_headers_url: str, state: str, screenshot: str(uri)?, target: any, owners: [any], comment: str?, labels: [any], redirect_from: any?, redirect_to: str, api_schema_file: str(uri)?}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /discovery/assets/{id}/\n@desc Update Discovered Asset\n@required {id: str, id: str # A unique Base58 value identifying this object., account: str # A unique Base58 value identifying this object., name: str # Name of the discovered asset.   The maximum length is 256 characters., url: str # URL of the discovered asset., type: str(web/api) # Type of discovered asset:   (Defaults to `api`)     * `web` - Web * `api` - API, last_seen: str(date-time) # Date and time of when the discovered asset was last seen, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302”., first_seen: str(date-time) # Date and time of when the asset was firstly discovered, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302”., sources: [map{id!: str, name!: str}] # Sources from which the asset was discovered., technologies: [map{id: str, name: str, desc: str}] # Technologies found in the discovered asset., authorities: str # Authorities of the discovered asset., risk: any(0/10/20/30/40) # Scan assessment risk of the discovered asset:   (Defaults to `null`)   * `None` - Not applicable. * `0` - No risk. * `10` - Low risk. * `20` - Medium risk. * `30` - High risk. * `40` - Critical risk., score: str(/A+/A/B/C/D/E/F/R) # Security Headers assessment score of the discovered asset.     * `` -  * `A+` - A+ * `A` - A * `B` - B * `C` - C * `D` - D * `E` - E * `F` - F * `R` - R, security_headers_url: str, screenshot: str(uri) # Screenshot of the discovered asset., target: any # Target of the discovered asset., redirect_from: any # URLs redirected to the discovered asset., redirect_to: str # URL the discovered asset is redirected to., api_schema_file: str(uri)}\n@optional {state: str(NEW/ACTIVE/HIDDEN/ARCHIVED) # State of the discovered asset:   (Defaults to `NEW`)     * `NEW` - New * `ACTIVE` - Active * `HIDDEN` - Hidden * `ARCHIVED` - Archived, owners: [any] # Owner labels of the discovered asset.   For example, \"owner=Admin\" or \"owner=Admin&owner=QA\"., comment: str # Comment on the object., labels: [any] # Target labels of the discovered asset.}\n@returns(200) {id: str, account: str, name: str, url: str, type: str, last_seen: str(date-time), first_seen: str(date-time), sources: [map], technologies: [map], authorities: str, risk: any?, score: str, security_headers_url: str, state: str, screenshot: str(uri)?, target: any, owners: [any], comment: str?, labels: [any], redirect_from: any?, redirect_to: str, api_schema_file: str(uri)?}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /discovery/assets/{id}/\n@desc Partial Update Discovered Asset\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., account: str # A unique Base58 value identifying this object., name: str # Name of the discovered asset.   The maximum length is 256 characters., url: str # URL of the discovered asset., type: str(web/api) # Type of discovered asset:   (Defaults to `api`)     * `web` - Web * `api` - API, last_seen: str(date-time) # Date and time of when the discovered asset was last seen, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302”., first_seen: str(date-time) # Date and time of when the asset was firstly discovered, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302”., sources: [map{id!: str, name!: str}] # Sources from which the asset was discovered., technologies: [map{id: str, name: str, desc: str}] # Technologies found in the discovered asset., authorities: str # Authorities of the discovered asset., risk: any(0/10/20/30/40) # Scan assessment risk of the discovered asset:   (Defaults to `null`)   * `None` - Not applicable. * `0` - No risk. * `10` - Low risk. * `20` - Medium risk. * `30` - High risk. * `40` - Critical risk., score: str(/A+/A/B/C/D/E/F/R) # Security Headers assessment score of the discovered asset.     * `` -  * `A+` - A+ * `A` - A * `B` - B * `C` - C * `D` - D * `E` - E * `F` - F * `R` - R, security_headers_url: str, state: str(NEW/ACTIVE/HIDDEN/ARCHIVED) # State of the discovered asset:   (Defaults to `NEW`)     * `NEW` - New * `ACTIVE` - Active * `HIDDEN` - Hidden * `ARCHIVED` - Archived, screenshot: str(uri) # Screenshot of the discovered asset., target: any # Target of the discovered asset., owners: [any] # Owner labels of the discovered asset.   For example, \"owner=Admin\" or \"owner=Admin&owner=QA\"., comment: str # Comment on the object., labels: [any] # Target labels of the discovered asset., redirect_from: any # URLs redirected to the discovered asset., redirect_to: str # URL the discovered asset is redirected to., api_schema_file: str(uri)}\n@returns(200) {id: str, account: str, name: str, url: str, type: str, last_seen: str(date-time), first_seen: str(date-time), sources: [map], technologies: [map], authorities: str, risk: any?, score: str, security_headers_url: str, state: str, screenshot: str(uri)?, target: any, owners: [any], comment: str?, labels: [any], redirect_from: any?, redirect_to: str, api_schema_file: str(uri)?}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /discovery/assets/{id}/create_target/\n@desc Create Target for Discovered Asset\n@required {id: str}\n@optional {is_create_and_scan: bool=false # If true, the target is created, and a scan is automatically started to identify its vulnerabilities.   If false, the target is created without starting a scan.   Defaults to false., target: any # Target to be created.}\n@returns(200) {target: map{id: str, site: any, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: str, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [any], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}, scan: map{id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /discovery/assets/{id}/download_api_schema_file/\n@desc Download API Schema File\n@required {id: str}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint GET /discovery/assets/stats/\n@desc Get Asset Discovery Statistics\n@returns(200) {discovery_assets_count: int, new_state_discovery_assets_count: int, scanned_discovery_assets_percentage: int, high_risk_discovery_assets_percentage: int, low_score_discovery_assets_percentage: int}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /discovery/settings/\n@desc Retrieve Discovery settings\n@returns(200) {archive_discovery_asset_after: int, archive_discovery_asset_enabled: bool}\n@errors {400, 401, 500}\n\n@endpoint PUT /discovery/settings/\n@desc Update Asset Discovery Settings\n@optional {archive_discovery_asset_after: int, archive_discovery_asset_enabled: bool}\n@returns(200) {archive_discovery_asset_after: int, archive_discovery_asset_enabled: bool}\n@errors {400, 401, 500}\n\n@endpoint PATCH /discovery/settings/\n@desc Partially Update Asset Discovery Settings\n@optional {archive_discovery_asset_after: int, archive_discovery_asset_enabled: bool}\n@returns(200) {archive_discovery_asset_after: int, archive_discovery_asset_enabled: bool}\n@errors {400, 401, 500}\n\n@endpoint GET /discovery/sources/\n@desc List Asset Discovery Sources\n@optional {length: int # Number of results to return per page., page: int # A page number within the paginated result set.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /discovery/status/\n@desc Get Asset Discovery Status\n@returns(200) {running_scans_count: int, last_complete_scan: any, next_scheduled_scan_at: str(date-time)}\n@errors {400, 401, 500}\n\n@endgroup\n\n@group domains\n@endpoint GET /domains/\n@desc List Domains\n@optional {discovery_enabled: bool, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term., search_fld: str # Search FLD, source: [str] # Source of domains to filter results., verified: bool}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /domains/\n@desc Create Domain\n@required {hostname: str # Domain name with an associated IP address or an IP address itself.   For example, \"my.example.com\", \"example.com\", or \"37.139.17.48\".   The maximum length is 256 characters., id: str # A unique Base58 value identifying this object., verification_token: str(uuid) # Token used to verify the domain.   Read-only., verification_date: str(date-time) # Date and time of the verification of the domain, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", verification_method: str(file/back_office/existing_domain/dns_txt/dns/dns_cname/meta_tag/whitelist/email/aws_route53/cloudflare/waved/akamai) # Method used in the domain verification:  * `file` -  Verifies the domain against a text file in the root directory of the website. Learn more in [this article](https://help.probely.com/en/articles/3289281-how-to-verify-the-ownership-of-a-target-using-a-txt-file).  * `back_office` -  Automatically set if manually verified in the back-office. Read-only.  * `existing_domain` -  Automatically set if the upper-level domain is verified. For example, \"my.example.com\" is automatically verified if \"example.com\" is verified. Read-only.  * `dns_txt` -  Verifies the domain against a TXT record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/3285635-how-to-verify-the-ownership-of-a-target-using-dns-txt-records).  * `dns` -  Same as `dns_txt`.  * `dns_cname` -  Verifies the domain against a CNAME record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/5642359-how-to-verify-the-ownership-of-a-target-using-dns-cname-records).  * `meta_tag` -  Verifies the domain against a meta tag in the index page of the website. Learn more in [this article](https://help.probely.com/en/articles/5642393-how-to-verify-the-ownership-of-a-target-using-a-meta-tag).  * `whitelist` -  Automatically verifies if the domain is in the whitelist  * `email` -  Automatically verifies a domain if the user's email is in the same domain as the target  * `aws_route53` -  Automatically verifies a domain if the hostname exists as an AWS Route53 Zone.  * `cloudflare` -  Automatically verifies a domain if the host name exists and is verified as a CloudflareZone.  * `waved` -  Automatically verifies a domain if there is a waver agreement.  * `akamai` -  Automatically verifies a domain if the host name exists as an AkamaiHost., verification_last_error: str # Error of the last verification of the domain.   Empty if no error occurred., verified: bool # If true, the domain is verified.   Read-only., source: any}\n@optional {basic_auth_username: str # Username used for basic authentication., basic_auth_password: str # Password used for basic authentication., basic_auth_password_is_sensitive: bool # Controls [sensitivity and obfuscation](https://help.probely.com/en/articles/12141165-how-to-manage-secrets-and-sensitive-data-in-snyk-api-web) of `basic_auth_password` field.   If `true` the field is masked on Interfaces and Audit logs.   When account's **Secrets Obfuscation setting** is also enabled, the API's field output will be `OBFUSCATED_`., port: int # IP Port to send the requests to.   If not defined, uses the default ports for HTTPS and HTTP (if the verification method requires making HTTP requests)., discovery_enabled: bool # If true, the domain is available for use in Asset Discovery.   If false, the domain can only be used in targets.   This parameter is only applicable if you are entitled to use Asset Discovery. You can contact Snyk API & Web's support to enable the feature.   Learn more about Asset Discovery in the [Overview of Asset Discovery](https://help.probely.com/en/articles/9220762-overview-of-probely-s-asset-discovery).   Defaults to true.}\n@returns(201) {hostname: str, id: str, verification_token: str(uuid), verification_date: str(date-time)?, verification_method: str, verification_last_error: str?, verified: bool, basic_auth_username: str?, basic_auth_password: str?, basic_auth_password_is_sensitive: bool, port: int?, discovery_enabled: bool, source: any}\n@errors {400, 401, 500}\n\n@endpoint GET /domains/{id}/\n@desc Retrieve Domain\n@required {id: str}\n@returns(200) {hostname: str, id: str, verification_token: str(uuid), verification_date: str(date-time)?, verification_method: str, verification_last_error: str?, verified: bool, basic_auth_username: str?, basic_auth_password: str?, basic_auth_password_is_sensitive: bool, port: int?, discovery_enabled: bool, source: any}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /domains/{id}/\n@desc Update Domain\n@required {id: str, hostname: str # Domain name with an associated IP address or an IP address itself.   For example, \"my.example.com\", \"example.com\", or \"37.139.17.48\".   The maximum length is 256 characters., id: str # A unique Base58 value identifying this object., verification_token: str(uuid) # Token used to verify the domain.   Read-only., verification_date: str(date-time) # Date and time of the verification of the domain, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", verification_method: str(file/back_office/existing_domain/dns_txt/dns/dns_cname/meta_tag/whitelist/email/aws_route53/cloudflare/waved/akamai) # Method used in the domain verification:  * `file` -  Verifies the domain against a text file in the root directory of the website. Learn more in [this article](https://help.probely.com/en/articles/3289281-how-to-verify-the-ownership-of-a-target-using-a-txt-file).  * `back_office` -  Automatically set if manually verified in the back-office. Read-only.  * `existing_domain` -  Automatically set if the upper-level domain is verified. For example, \"my.example.com\" is automatically verified if \"example.com\" is verified. Read-only.  * `dns_txt` -  Verifies the domain against a TXT record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/3285635-how-to-verify-the-ownership-of-a-target-using-dns-txt-records).  * `dns` -  Same as `dns_txt`.  * `dns_cname` -  Verifies the domain against a CNAME record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/5642359-how-to-verify-the-ownership-of-a-target-using-dns-cname-records).  * `meta_tag` -  Verifies the domain against a meta tag in the index page of the website. Learn more in [this article](https://help.probely.com/en/articles/5642393-how-to-verify-the-ownership-of-a-target-using-a-meta-tag).  * `whitelist` -  Automatically verifies if the domain is in the whitelist  * `email` -  Automatically verifies a domain if the user's email is in the same domain as the target  * `aws_route53` -  Automatically verifies a domain if the hostname exists as an AWS Route53 Zone.  * `cloudflare` -  Automatically verifies a domain if the host name exists and is verified as a CloudflareZone.  * `waved` -  Automatically verifies a domain if there is a waver agreement.  * `akamai` -  Automatically verifies a domain if the host name exists as an AkamaiHost., verification_last_error: str # Error of the last verification of the domain.   Empty if no error occurred., verified: bool # If true, the domain is verified.   Read-only., source: any}\n@optional {basic_auth_username: str # Username used for basic authentication., basic_auth_password: str # Password used for basic authentication., basic_auth_password_is_sensitive: bool # Controls [sensitivity and obfuscation](https://help.probely.com/en/articles/12141165-how-to-manage-secrets-and-sensitive-data-in-snyk-api-web) of `basic_auth_password` field.   If `true` the field is masked on Interfaces and Audit logs.   When account's **Secrets Obfuscation setting** is also enabled, the API's field output will be `OBFUSCATED_`., port: int # IP Port to send the requests to.   If not defined, uses the default ports for HTTPS and HTTP (if the verification method requires making HTTP requests)., discovery_enabled: bool # If true, the domain is available for use in Asset Discovery.   If false, the domain can only be used in targets.   This parameter is only applicable if you are entitled to use Asset Discovery. You can contact Snyk API & Web's support to enable the feature.   Learn more about Asset Discovery in the [Overview of Asset Discovery](https://help.probely.com/en/articles/9220762-overview-of-probely-s-asset-discovery).   Defaults to true.}\n@returns(200) {hostname: str, id: str, verification_token: str(uuid), verification_date: str(date-time)?, verification_method: str, verification_last_error: str?, verified: bool, basic_auth_username: str?, basic_auth_password: str?, basic_auth_password_is_sensitive: bool, port: int?, discovery_enabled: bool, source: any}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /domains/{id}/\n@desc Partial Update to Domain\n@required {id: str}\n@optional {hostname: str # Domain name with an associated IP address or an IP address itself.   For example, \"my.example.com\", \"example.com\", or \"37.139.17.48\".   The maximum length is 256 characters., id: str # A unique Base58 value identifying this object., verification_token: str(uuid) # Token used to verify the domain.   Read-only., verification_date: str(date-time) # Date and time of the verification of the domain, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", verification_method: str(file/back_office/existing_domain/dns_txt/dns/dns_cname/meta_tag/whitelist/email/aws_route53/cloudflare/waved/akamai) # Method used in the domain verification:  * `file` -  Verifies the domain against a text file in the root directory of the website. Learn more in [this article](https://help.probely.com/en/articles/3289281-how-to-verify-the-ownership-of-a-target-using-a-txt-file).  * `back_office` -  Automatically set if manually verified in the back-office. Read-only.  * `existing_domain` -  Automatically set if the upper-level domain is verified. For example, \"my.example.com\" is automatically verified if \"example.com\" is verified. Read-only.  * `dns_txt` -  Verifies the domain against a TXT record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/3285635-how-to-verify-the-ownership-of-a-target-using-dns-txt-records).  * `dns` -  Same as `dns_txt`.  * `dns_cname` -  Verifies the domain against a CNAME record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/5642359-how-to-verify-the-ownership-of-a-target-using-dns-cname-records).  * `meta_tag` -  Verifies the domain against a meta tag in the index page of the website. Learn more in [this article](https://help.probely.com/en/articles/5642393-how-to-verify-the-ownership-of-a-target-using-a-meta-tag).  * `whitelist` -  Automatically verifies if the domain is in the whitelist  * `email` -  Automatically verifies a domain if the user's email is in the same domain as the target  * `aws_route53` -  Automatically verifies a domain if the hostname exists as an AWS Route53 Zone.  * `cloudflare` -  Automatically verifies a domain if the host name exists and is verified as a CloudflareZone.  * `waved` -  Automatically verifies a domain if there is a waver agreement.  * `akamai` -  Automatically verifies a domain if the host name exists as an AkamaiHost., verification_last_error: str # Error of the last verification of the domain.   Empty if no error occurred., verified: bool # If true, the domain is verified.   Read-only., basic_auth_username: str # Username used for basic authentication., basic_auth_password: str # Password used for basic authentication., basic_auth_password_is_sensitive: bool # Controls [sensitivity and obfuscation](https://help.probely.com/en/articles/12141165-how-to-manage-secrets-and-sensitive-data-in-snyk-api-web) of `basic_auth_password` field.   If `true` the field is masked on Interfaces and Audit logs.   When account's **Secrets Obfuscation setting** is also enabled, the API's field output will be `OBFUSCATED_`., port: int # IP Port to send the requests to.   If not defined, uses the default ports for HTTPS and HTTP (if the verification method requires making HTTP requests)., discovery_enabled: bool # If true, the domain is available for use in Asset Discovery.   If false, the domain can only be used in targets.   This parameter is only applicable if you are entitled to use Asset Discovery. You can contact Snyk API & Web's support to enable the feature.   Learn more about Asset Discovery in the [Overview of Asset Discovery](https://help.probely.com/en/articles/9220762-overview-of-probely-s-asset-discovery).   Defaults to true., source: any}\n@returns(200) {hostname: str, id: str, verification_token: str(uuid), verification_date: str(date-time)?, verification_method: str, verification_last_error: str?, verified: bool, basic_auth_username: str?, basic_auth_password: str?, basic_auth_password_is_sensitive: bool, port: int?, discovery_enabled: bool, source: any}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /domains/{id}/\n@desc Delete Domain\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint POST /domains/{id}/verify/\n@desc Verify Domain Ownership\n@required {id: str, type: str(file/dns_txt/dns/dns_cname/meta_tag) # * `file` -  Verifies the domain against a text file in the root directory of the website. Learn more in [this article](https://help.probely.com/en/articles/3289281-how-to-verify-the-ownership-of-a-target-using-a-txt-file).  * `dns_txt` -  Verifies the domain against a TXT record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/3285635-how-to-verify-the-ownership-of-a-target-using-dns-txt-records).  * `dns` -  Same as `dns_txt`.  * `dns_cname` -  Verifies the domain against a CNAME record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/5642359-how-to-verify-the-ownership-of-a-target-using-dns-cname-records).  * `meta_tag` -  Verifies the domain against a meta tag in the index page of the website. Learn more in [this article](https://help.probely.com/en/articles/5642393-how-to-verify-the-ownership-of-a-target-using-a-meta-tag).}\n@returns(200) {hostname: str, id: str, verification_token: str(uuid), verification_date: str(date-time)?, verification_method: str, verification_last_error: str?, verified: bool, basic_auth_username: str?, basic_auth_password: str?, basic_auth_password_is_sensitive: bool, port: int?, discovery_enabled: bool, source: any}\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group events\n@endpoint GET /events/\n@desc List Account's Events\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /events/{id}/\n@desc Retrieve Account's Event\n@required {id: str}\n@returns(200) {id: str, event_type: str, occurred_at: str(date-time), object_type: str, content: str, webhooks: [map]}\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group findings\n@endpoint GET /findings/\n@desc List Account's Findings\n@optional {approval_date: str(date) # Date of when the accepted vulnerability was approved.   For example, \"2023-08-09\", assignee: [str] # A unique Base58 value identifying this object., changed_after: str(date-time) # Date and time of when the vulnerability was changed, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", changed_before: str(date-time) # Date and time of when the vulnerability was changed, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", expiration_date: str(date) # Date of when the accepted vulnerability expires before changing back to not fixed.   For example, \"2023-08-09\", id: [int], include: str # Extra fields to include in response:  * last_found_scan - Add last_found_scan to response under `last_found_scan` key, is_id_404_validation: bool=false # If true, triggers custom response for `id` filter validation.   If any `id` filter is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```, label: [str] # A unique Base58 value identifying this object., label_logical_operator: str(and/or) # Logical operator to apply between labels:   (Defaults to `or`)   * `and` - and * `or` - or, lastfound_after: str(date-time) # Date and time of when the vulnerability was last found to filter results, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", lastfound_before: str(date-time) # Date and time of when the vulnerability was last found to filter results, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", length: int # Number of results to return per page., new: bool, ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., review_status: [str] # Some findings we're unsure are valid and need a manual validation step.  * `notrequired` - not required * `pending` - pending review * `rejected` - rejected after review * `accepted` - accepted after review, scan: [str] # A unique Base58 value identifying this object., search: str # A search term., severity: [int] # Severity of the vulnerability finding:     * `10` - low * `20` - medium * `30` - high * `40` - critical, snyk_sast: bool, state: [str] # State of the vulnerability finding:   (Read more about [the meaning of vulnerability findings states](https://help.probely.com/en/articles/6673828-what-is-the-meaning-of-a-finding-s-state))   * `notfixed` - Not Fixed * `invalid` - Invalid * `accepted` - Accepted * `fixed` - Fixed * `retesting` - Re-testing, target: [str] # A unique Base58 value identifying this object., target_label: [str] # A unique Base58 value identifying this object., target_label_logical_operator: str(and/or) # Logical operator to apply between target labels:   (Defaults to `or`)   * `and` - and * `or` - or, team: [str] # A unique Base58 value identifying this object.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /findings/{id}/\n@desc Retrieve Account's Finding\n@required {id: int # A unique integer value identifying this finding.}\n@optional {include: str # Extra fields to include in response:  * last_found_scan - Add last_found_scan to response under `last_found_scan` key}\n@returns(200) {id: str, target: any, scans: str, labels: [map], fix: str, requests: [map], evidence: str, extra: str, definition: map{id: str, name: str, desc: str?, cwe_id: str?, cwe_name: str?}, url: str, path: str, method: str, insertion_point: str, parameter: str, value: str?, params: str, assignee: map{id: str, email: str(email), name: str}, state: str, severity: int, cvss_score: num(double)?, cvss_vector: str, last_found: str(date-time), retesting: bool, new: bool, review_status: str, review_reason: str, created_at: str(date-time)?, changed: str(date-time), changed_by: any, comment: str?, change_reason: str, expiration_date: str(date)?, approver_name: str, approval_date: str(date)?}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /findings/{id}/\n@desc Update Account's Finding\n@required {id: int # A unique integer value identifying this finding., id: str # Global ID in the format: -, target: any, scans: str # Scans that originated the vulnerability finding., labels: [map{id!: str, name!: str, color: str, changed_by!: any, changed!: str(date-time)}], fix: str # Description of how to fix the vulnerability., requests: [map{request: str, response: str}] # Pairs of requests and responses of the vulnerability finding., evidence: str # Evidence with proof of the vulnerability finding., extra: str # Extra details about the vulnerability finding., definition: map{id!: str, name: str, desc: str, cwe_id: str, cwe_name: str}, url: str # URL of the vulnerability finding. For example, \"http://www.example.com/user/show-details\". The maximum length is 66000 characters., path: str # URL path of the vulnerability finding. For example, \"user/show-details\"., method: str(get/post/trace/options/put/delete) # HTTP method used in the request:  * `get` - GET * `post` - POST * `trace` - TRACE * `options` - OPTIONS * `put` - PUT * `delete` - DELETE, insertion_point: str(cookie/parameter/arbitrary_url_param/header/url_folder/url_filename/json_parameter/request_body/multipart_parameter/graphql_parameter/non_standard_parameter) # Insertion point of the parameter:  * `cookie` - Cookie * `parameter` - Parameter * `arbitrary_url_param` - Parameter * `header` - Header * `url_folder` - URL Path * `url_filename` - URL Path * `json_parameter` - JSON Parameter * `request_body` - Request Body * `multipart_parameter` - Multipart Parameter * `graphql_parameter` - GraphQL Parameter * `non_standard_parameter` - Non Standard Parameter, parameter: str # Name of the inserted parameter.   The maximum length is 1024 characters., value: str # Value of the inserted parameter., params: str # Query parameters of the vulnerability finding, in JSON format. For example, \"{'name': ['Joe Smith'], 'phone': ['+919999999999', '+628888888888']}\", assignee: map{id!: str, email: str(email), name!: str}, cvss_score: num(double) # Score of the vulnerability finding according to the Common Vulnerability Scoring System (CVSS)., cvss_vector: str # Vector with the metrics of the score of the vulnerability finding according to the Common Vulnerability Scoring System (CVSS)., retesting: bool # If true, the vulnerability will be retested.   If, after the retest, the vulnerability is no longer found, the vulnerability finding is marked as fixed. Otherwise, it is marked as not fixed., new: bool # If true, this is a newly found vulnerability. If false, this vulnerability has been found in previous scans., created_at: str(date-time) # Timestamp of the Finding's creation., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@optional {state: str(notfixed/invalid/accepted/fixed) # State of the vulnerability finding:   (Read more about [the meaning of vulnerability findings states](https://help.probely.com/en/articles/6673828-what-is-the-meaning-of-a-finding-s-state))   * `notfixed` - Not Fixed * `invalid` - Invalid * `accepted` - Accepted * `fixed` - Fixed, severity: int(10/20/30/40) # Severity of the vulnerability finding:     * `10` - low * `20` - medium * `30` - high * `40` - critical, last_found: str(date-time) # Date and time of when the vulnerability was last found, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", review_status: str(notrequired/pending/rejected/accepted/) # Some findings we're unsure are valid and need a manual validation step.  * `notrequired` - not required * `pending` - pending review * `rejected` - rejected after review * `accepted` - accepted after review, review_reason: str # User's reason for finding's review., comment: str # Comment on the object., change_reason: str # Reason for changing the Finding state to 'invalid' or 'accepted'., expiration_date: str(date) # Expiration date of the acceptance. Required if the account setting 'Require expiration date on acceptance' is set., approver_name: str # Name of the person or entity approving the acceptance. Required if the account setting 'Require approval name on acceptance' is set., approval_date: str(date) # Date of the approval of the acceptance. Required if the account setting 'Require approval date on acceptance' is set.}\n@returns(200) {id: str, target: any, scans: str, labels: [map], fix: str, requests: [map], evidence: str, extra: str, definition: map{id: str, name: str, desc: str?, cwe_id: str?, cwe_name: str?}, url: str, path: str, method: str, insertion_point: str, parameter: str, value: str?, params: str, assignee: map{id: str, email: str(email), name: str}, state: str, severity: int, cvss_score: num(double)?, cvss_vector: str, last_found: str(date-time), retesting: bool, new: bool, review_status: str, review_reason: str, created_at: str(date-time)?, changed: str(date-time), changed_by: any, comment: str?, change_reason: str, expiration_date: str(date)?, approver_name: str, approval_date: str(date)?}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /findings/{id}/\n@desc Partial Update Account's Finding\n@required {id: int # A unique integer value identifying this finding.}\n@optional {id: int, target: str # Target scanned to find vulnerabilities., scans: str # Scans that originated the vulnerability finding., labels: [any] # Labels of the vulnerability finding., fix: str # Description of how to fix the vulnerability., requests: [map{request: str, response: str}] # Pairs of requests and responses of the vulnerability finding., evidence: str # Evidence with proof of the vulnerability finding., extra: str # Extra details about the vulnerability finding., definition: str # Definition of the vulnerability., url: str # URL of the vulnerability finding. For example, \"http://www.example.com/user/show-details\". The maximum length is 66000 characters., path: str # URL path of the vulnerability finding. For example, \"user/show-details\"., method: str(get/post/trace/options/put/delete) # HTTP method used in the request:  * `get` - GET * `post` - POST * `trace` - TRACE * `options` - OPTIONS * `put` - PUT * `delete` - DELETE, insertion_point: str(cookie/parameter/arbitrary_url_param/header/url_folder/url_filename/json_parameter/request_body/multipart_parameter/graphql_parameter/non_standard_parameter) # Insertion point of the parameter:  * `cookie` - Cookie * `parameter` - Parameter * `arbitrary_url_param` - Parameter * `header` - Header * `url_folder` - URL Path * `url_filename` - URL Path * `json_parameter` - JSON Parameter * `request_body` - Request Body * `multipart_parameter` - Multipart Parameter * `graphql_parameter` - GraphQL Parameter * `non_standard_parameter` - Non Standard Parameter, parameter: str # Name of the inserted parameter.   The maximum length is 1024 characters., value: str # Value of the inserted parameter., params: str # Query parameters of the vulnerability finding, in JSON format. For example, \"{'name': ['Joe Smith'], 'phone': ['+919999999999', '+628888888888']}\", assignee: str # User who is assigned to fix the vulnerability., state: str(notfixed/invalid/accepted/fixed) # State of the vulnerability finding:   (Read more about [the meaning of vulnerability findings states](https://help.probely.com/en/articles/6673828-what-is-the-meaning-of-a-finding-s-state))   * `notfixed` - Not Fixed * `invalid` - Invalid * `accepted` - Accepted * `fixed` - Fixed, severity: int(10/20/30/40) # Severity of the vulnerability finding:     * `10` - low * `20` - medium * `30` - high * `40` - critical, cvss_score: num(double) # Score of the vulnerability finding according to the Common Vulnerability Scoring System (CVSS)., cvss_vector: str # Vector with the metrics of the score of the vulnerability finding according to the Common Vulnerability Scoring System (CVSS)., last_found: str(date-time) # Date and time of when the vulnerability was last found, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", retesting: bool # If true, the vulnerability will be retested.   If, after the retest, the vulnerability is no longer found, the vulnerability finding is marked as fixed. Otherwise, it is marked as not fixed., new: bool # If true, this is a newly found vulnerability. If false, this vulnerability has been found in previous scans., review_status: str(notrequired/pending/rejected/accepted/) # Some findings we're unsure are valid and need a manual validation step.  * `notrequired` - not required * `pending` - pending review * `rejected` - rejected after review * `accepted` - accepted after review, review_reason: str # User's reason for finding's review., created_at: str(date-time) # Timestamp of the Finding's creation., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes., comment: str # Comment on the object., change_reason: str # Reason for changing the Finding state to 'invalid' or 'accepted'., expiration_date: str(date) # Expiration date of the acceptance. Required if the account setting 'Require expiration date on acceptance' is set., approver_name: str # Name of the person or entity approving the acceptance. Required if the account setting 'Require approval name on acceptance' is set., approval_date: str(date) # Date of the approval of the acceptance. Required if the account setting 'Require approval date on acceptance' is set.}\n@returns(200) {id: str, target: any, scans: str, labels: [map], fix: str, requests: [map], evidence: str, extra: str, definition: map{id: str, name: str, desc: str?, cwe_id: str?, cwe_name: str?}, url: str, path: str, method: str, insertion_point: str, parameter: str, value: str?, params: str, assignee: map{id: str, email: str(email), name: str}, state: str, severity: int, cvss_score: num(double)?, cvss_vector: str, last_found: str(date-time), retesting: bool, new: bool, review_status: str, review_reason: str, created_at: str(date-time)?, changed: str(date-time), changed_by: any, comment: str?, change_reason: str, expiration_date: str(date)?, approver_name: str, approval_date: str(date)?}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /findings/bulk/report/\n@desc Select Findings for Report\n@required {ids: [map{target_id!: str, finding_id!: int}] # List of composed keys identifying findings of targets.}\n@returns(200) {token: str}\n@errors {400, 401, 500}\n@example_request {\"ids\":[{\"target_id\":\"289nqnDwp1Wi\",\"finding_id\":1},{\"target_id\":\"2endVWWueTMp\",\"finding_id\":1}]}\n\n@endpoint POST /findings/bulk/retest/\n@desc Bulk Retest Account's Findings\n@required {ids: [str] # List of object IDs.}\n@optional {ignore_blackout_period: bool # If true, the scan ignores the blackout period defined in the target settings., scan_profile: str # Scan profile to use.   Use the endpoint [List Scan Profiles](#tag/Scan-Profiles/operation/scan_profiles_list) to get all the available scan profiles.   If no scan profile is specified, the scan profile will be the one specified in the target settings., reduced_scopes: [map{id!: str, url!: str(uri), enabled: bool}] # Configuration to reduce the scope of the scan.}\n@returns(200) {ids: [str]}\n@errors {400, 401, 500}\n\n@endpoint POST /findings/bulk/update/\n@desc Bulk Update Account's Findings\n@required {ids: [str] # List of object IDs., id: int, target: str # Target scanned to find vulnerabilities., scans: str # Scans that originated the vulnerability finding., fix: str # Description of how to fix the vulnerability., requests: [map{request: str, response: str}] # Pairs of requests and responses of the vulnerability finding., evidence: str # Evidence with proof of the vulnerability finding., extra: str # Extra details about the vulnerability finding., definition: str # Definition of the vulnerability., url: str # URL of the vulnerability finding. For example, \"http://www.example.com/user/show-details\". The maximum length is 66000 characters., path: str # URL path of the vulnerability finding. For example, \"user/show-details\"., method: str(get/post/trace/options/put/delete) # HTTP method used in the request:  * `get` - GET * `post` - POST * `trace` - TRACE * `options` - OPTIONS * `put` - PUT * `delete` - DELETE, insertion_point: str(cookie/parameter/arbitrary_url_param/header/url_folder/url_filename/json_parameter/request_body/multipart_parameter/graphql_parameter/non_standard_parameter) # Insertion point of the parameter:  * `cookie` - Cookie * `parameter` - Parameter * `arbitrary_url_param` - Parameter * `header` - Header * `url_folder` - URL Path * `url_filename` - URL Path * `json_parameter` - JSON Parameter * `request_body` - Request Body * `multipart_parameter` - Multipart Parameter * `graphql_parameter` - GraphQL Parameter * `non_standard_parameter` - Non Standard Parameter, parameter: str # Name of the inserted parameter.   The maximum length is 1024 characters., value: str # Value of the inserted parameter., params: str # Query parameters of the vulnerability finding, in JSON format. For example, \"{'name': ['Joe Smith'], 'phone': ['+919999999999', '+628888888888']}\", cvss_score: num(double) # Score of the vulnerability finding according to the Common Vulnerability Scoring System (CVSS)., cvss_vector: str # Vector with the metrics of the score of the vulnerability finding according to the Common Vulnerability Scoring System (CVSS)., retesting: bool # If true, the vulnerability will be retested.   If, after the retest, the vulnerability is no longer found, the vulnerability finding is marked as fixed. Otherwise, it is marked as not fixed., new: bool # If true, this is a newly found vulnerability. If false, this vulnerability has been found in previous scans., created_at: str(date-time) # Timestamp of the Finding's creation., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@optional {labels: [any] # Labels of the vulnerability finding., assignee: str # User who is assigned to fix the vulnerability., state: str(notfixed/invalid/accepted/fixed) # State of the vulnerability finding:   (Read more about [the meaning of vulnerability findings states](https://help.probely.com/en/articles/6673828-what-is-the-meaning-of-a-finding-s-state))   * `notfixed` - Not Fixed * `invalid` - Invalid * `accepted` - Accepted * `fixed` - Fixed, severity: int(10/20/30/40) # Severity of the vulnerability finding:     * `10` - low * `20` - medium * `30` - high * `40` - critical, last_found: str(date-time) # Date and time of when the vulnerability was last found, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", review_status: str(notrequired/pending/rejected/accepted/) # Some findings we're unsure are valid and need a manual validation step.  * `notrequired` - not required * `pending` - pending review * `rejected` - rejected after review * `accepted` - accepted after review, review_reason: str # User's reason for finding's review., comment: str # Comment on the object., change_reason: str # Reason for changing the Finding state to 'invalid' or 'accepted'., expiration_date: str(date) # Expiration date of the acceptance. Required if the account setting 'Require expiration date on acceptance' is set., approver_name: str # Name of the person or entity approving the acceptance. Required if the account setting 'Require approval name on acceptance' is set., approval_date: str(date) # Date of the approval of the acceptance. Required if the account setting 'Require approval date on acceptance' is set.}\n@returns(200) {ids: [str]}\n@errors {400, 401, 500}\n\n@endpoint GET /findings/report/\n@desc Retrieve Selected Findings Report\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group frameworks\n@endpoint GET /frameworks/\n@desc List Frameworks\n@optional {ordering: str # Which field to use when ordering the results., search: str # A search term.}\n@returns(200)\n@errors {400, 401, 500}\n\n@endpoint GET /frameworks/{id}/\n@desc Retrieve Framework\n@required {id: str}\n@returns(200) {id: str, name: str, desc: str?}\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group integrations\n@endpoint GET /integrations/akamai/\n@desc Retrieve Akamai Configuration\n@returns(200) {client_id: str, server_host: str, client_secret: str, enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /integrations/akamai/\n@desc Update Akamai Configuration\n@required {client_id: str, server_host: str # The unique hostname (FQDN) for the customer's Akamai instance., client_secret: str}\n@optional {enabled: bool}\n@returns(200) {client_id: str, server_host: str, client_secret: str, enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /integrations/akamai/\n@desc Partial Update Akamai Configuration\n@optional {client_id: str, server_host: str # The unique hostname (FQDN) for the customer's Akamai instance., client_secret: str, enabled: bool}\n@returns(200) {client_id: str, server_host: str, client_secret: str, enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /integrations/akamai/\n@desc Delete Akamai Configuration\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint POST /integrations/akamai/refresh/\n@desc Refresh Akamai Records\n@returns(200) {detail: str}\n@errors {400, 401, 404, 422, 500}\n\n@endpoint GET /integrations/aws/\n@desc Retrieve AWS Configuration\n@returns(200) {access_key: str, secret_key: str, enabled: bool, list_zones_permission: bool, list_record_sets_permission: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /integrations/aws/\n@desc Update AWS Configuration\n@required {access_key: str, secret_key: str, list_zones_permission: bool, list_record_sets_permission: bool}\n@optional {enabled: bool}\n@returns(200) {access_key: str, secret_key: str, enabled: bool, list_zones_permission: bool, list_record_sets_permission: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /integrations/aws/\n@desc Partial Update AWS Configuration\n@optional {access_key: str, secret_key: str, enabled: bool, list_zones_permission: bool, list_record_sets_permission: bool}\n@returns(200) {access_key: str, secret_key: str, enabled: bool, list_zones_permission: bool, list_record_sets_permission: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /integrations/aws/\n@desc Delete AWS Configuration\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint POST /integrations/aws/refresh/\n@desc Refresh AWS Records\n@returns(200) {detail: str}\n@errors {400, 401, 404, 422, 500}\n\n@endpoint GET /integrations/azure-devops/\n@desc Retrieve Azure DevOps Account Config\n@returns(200) {organization_name: str, connected: bool, reauthentication_failed: bool?}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /integrations/azure-devops/\n@desc Update Azure DevOps Account Config\n@required {connected: bool, reauthentication_failed: bool}\n@optional {organization_name: str}\n@returns(200) {organization_name: str, connected: bool, reauthentication_failed: bool?}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /integrations/azure-devops/\n@desc Patch Azure DevOps Account Config\n@optional {organization_name: str, connected: bool, reauthentication_failed: bool}\n@returns(200) {organization_name: str, connected: bool, reauthentication_failed: bool?}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /integrations/azure-devops/\n@desc Delete Azure DevOps Account Config\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /integrations/cloudflare/\n@desc Get Cloudflare Account instance data\n@returns(200) {token: str, token_name: str, enabled: bool, zone_read_permission: bool, dns_read_permission: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /integrations/cloudflare/\n@desc Update a Cloudflare Account instance\n@required {token: str, token_name: str, zone_read_permission: bool, dns_read_permission: bool}\n@optional {enabled: bool}\n@returns(200) {token: str, token_name: str, enabled: bool, zone_read_permission: bool, dns_read_permission: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /integrations/cloudflare/\n@desc Partial Update a Cloudflare Account instance\n@optional {token: str, token_name: str, enabled: bool, zone_read_permission: bool, dns_read_permission: bool}\n@returns(200) {token: str, token_name: str, enabled: bool, zone_read_permission: bool, dns_read_permission: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /integrations/cloudflare/\n@desc Delete a Cloudflare Account instance\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint POST /integrations/cloudflare/refresh/\n@desc Refresh Cloudflare Records\n@returns(200) {detail: str}\n@errors {400, 401, 404, 422, 500}\n\n@endpoint GET /integrations/jira-server/\n@desc Get Jira Server Account instance data\n@returns(200) {base_url: str(uri), consumer_key: str, consumer_secret: str, verify_tls: bool, skip_jira_webhooks: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /integrations/jira-server/\n@desc Update a Jira Server Account instance\n@required {base_url: str(uri), consumer_key: str, consumer_secret: str, verify_tls: bool}\n@optional {skip_jira_webhooks: bool}\n@returns(200) {base_url: str(uri), consumer_key: str, consumer_secret: str, verify_tls: bool, skip_jira_webhooks: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /integrations/jira-server/\n@desc Partial Update a Jira Server Account instance\n@optional {base_url: str(uri), consumer_key: str, consumer_secret: str, verify_tls: bool, skip_jira_webhooks: bool}\n@returns(200) {base_url: str(uri), consumer_key: str, consumer_secret: str, verify_tls: bool, skip_jira_webhooks: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /integrations/jira-server/\n@desc Delete a Jira Server Account instance\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /integrations/postman/\n@desc Retrieve Account's Postman Integration Settings\n@returns(200) {enabled: bool, client_id: str, client_secret: str, api_key: str}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /integrations/postman/\n@desc Add Account's Postman Settings\n@required {client_id: str, client_secret: str, api_key: str}\n@optional {enabled: bool}\n@returns(201) {enabled: bool, client_id: str, client_secret: str, api_key: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /integrations/postman/\n@desc Update Account's Postman Settings\n@required {client_id: str, client_secret: str, api_key: str}\n@optional {enabled: bool}\n@returns(200) {enabled: bool, client_id: str, client_secret: str, api_key: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /integrations/postman/\n@desc Partial Update Account's Postman Settings\n@optional {enabled: bool, client_id: str, client_secret: str, api_key: str}\n@returns(200) {enabled: bool, client_id: str, client_secret: str, api_key: str}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /integrations/postman/\n@desc Delete Account's Postman Setting\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group labels\n@endpoint GET /labels/findings/\n@desc List Finding Labels\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /labels/findings/\n@desc Create Finding Label\n@required {id: str # A unique Base58 value identifying this object., name: str # Name of the label.   The maximum length is 255 characters., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\".}\n@optional {color: str # Color of the label, in RGB hexadecimal format prefixed with \"#\".   For example, \"#00FF00\" for green.}\n@returns(201) {id: str, name: str, color: str, changed_by: any, changed: str(date-time)}\n@errors {400, 401, 500}\n\n@endpoint GET /labels/findings/{id}/\n@desc Retrieve Finding Label\n@required {id: str}\n@returns(200) {id: str, name: str, color: str, changed_by: any, changed: str(date-time)}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /labels/findings/{id}/\n@desc Update Finding Label\n@required {id: str, id: str # A unique Base58 value identifying this object., name: str # Name of the label.   The maximum length is 255 characters., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\".}\n@optional {color: str # Color of the label, in RGB hexadecimal format prefixed with \"#\".   For example, \"#00FF00\" for green.}\n@returns(200) {id: str, name: str, color: str, changed_by: any, changed: str(date-time)}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /labels/findings/{id}/\n@desc Partial Update Finding Label\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., name: str # Name of the label.   The maximum length is 255 characters., color: str # Color of the label, in RGB hexadecimal format prefixed with \"#\".   For example, \"#00FF00\" for green., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\".}\n@returns(200) {id: str, name: str, color: str, changed_by: any, changed: str(date-time)}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /labels/findings/{id}/\n@desc Delete Finding Label\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /labels/targets/\n@desc List Target Labels\n@optional {assigned: bool, id: [str] # Identifiers of target labels to filter results. Multiple choices are possible by repeating the query_param., is_id_404_validation: bool=false # If true, triggers custom response for `id` filter validation.   If any `id` filter is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term., team: [str] # A unique Base58 value identifying this object.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /labels/targets/\n@desc Create Target Label\n@required {id: str # A unique Base58 value identifying this object., name: str # Name of the label.   The maximum length is 255 characters., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\".}\n@optional {color: str # Color of the label, in RGB hexadecimal format prefixed with \"#\".   For example, \"#00FF00\" for green.}\n@returns(201) {id: str, name: str, color: str, changed_by: any, changed: str(date-time)}\n@errors {400, 401, 500}\n\n@endpoint GET /labels/targets/{id}/\n@desc Retrieve Target Label\n@required {id: str}\n@returns(200) {id: str, name: str, color: str, changed_by: any, changed: str(date-time)}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /labels/targets/{id}/\n@desc Update Target Label\n@required {id: str, id: str # A unique Base58 value identifying this object., name: str # Name of the label.   The maximum length is 255 characters., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\".}\n@optional {color: str # Color of the label, in RGB hexadecimal format prefixed with \"#\".   For example, \"#00FF00\" for green.}\n@returns(200) {id: str, name: str, color: str, changed_by: any, changed: str(date-time)}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /labels/targets/{id}/\n@desc Partial Update Target Label\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., name: str # Name of the label.   The maximum length is 255 characters., color: str # Color of the label, in RGB hexadecimal format prefixed with \"#\".   For example, \"#00FF00\" for green., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\".}\n@returns(200) {id: str, name: str, color: str, changed_by: any, changed: str(date-time)}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /labels/targets/{id}/\n@desc Delete Target Label\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /labels/users/\n@desc List User Labels\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /labels/users/\n@desc Create User Label\n@required {id: str # A unique Base58 value identifying this object., name: str # Name of the label.   The maximum length is 255 characters., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\".}\n@optional {color: str # Color of the label, in RGB hexadecimal format prefixed with \"#\".   For example, \"#00FF00\" for green.}\n@returns(201) {id: str, name: str, color: str, changed_by: any, changed: str(date-time)}\n@errors {400, 401, 500}\n\n@endpoint GET /labels/users/{id}/\n@desc Retrieve User Label\n@required {id: str}\n@returns(200) {id: str, name: str, color: str, changed_by: any, changed: str(date-time)}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /labels/users/{id}/\n@desc Update User Label\n@required {id: str, id: str # A unique Base58 value identifying this object., name: str # Name of the label.   The maximum length is 255 characters., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\".}\n@optional {color: str # Color of the label, in RGB hexadecimal format prefixed with \"#\".   For example, \"#00FF00\" for green.}\n@returns(200) {id: str, name: str, color: str, changed_by: any, changed: str(date-time)}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /labels/users/{id}/\n@desc Partial Update User Label\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., name: str # Name of the label.   The maximum length is 255 characters., color: str # Color of the label, in RGB hexadecimal format prefixed with \"#\".   For example, \"#00FF00\" for green., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\".}\n@returns(200) {id: str, name: str, color: str, changed_by: any, changed: str(date-time)}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /labels/users/{id}/\n@desc Delete User Label\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group permissions\n@endpoint GET /permissions/\n@desc List Permissions\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endgroup\n\n@group plans\n@endpoint GET /plans/\n@desc List Plans\n@optional {length: int # Number of results to return per page., page: int # A page number within the paginated result set.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endgroup\n\n@group profile\n@endpoint GET /profile/\n@desc Retrieve Profile\n@optional {ordering: str # Which field to use when ordering the results., search: str # A search term.}\n@returns(200)\n@errors {400, 401, 500}\n\n@endpoint POST /profile/accept_tos/\n@desc Accept User Terms of Service\n@required {accept: bool}\n@returns(200) {detail: str}\n@errors {400, 401, 500}\n\n@endpoint POST /profile/change_password/\n@desc Change Password\n@required {password: str # New password., confpassword: str # Confirmation of the new password., current_password: str # Current password.}\n@returns(200) {message: str}\n@errors {400, 401, 500}\n\n@endpoint GET /profile/notifications/\n@desc Retrieve Notifications Configuration\n@returns(200) {end_scan_emails: str, promotional_topup_notification: bool, expired_acceptance_findings_notification: bool}\n@errors {400, 401, 500}\n\n@endpoint PUT /profile/notifications/\n@desc Update Notifications Configuration\n@optional {end_scan_emails: str(new_findings/always/started_by/never/) # * `new_findings` - New Findings * `always` - Always * `started_by` - Started by * `never` - Never, promotional_topup_notification: bool # If true, the user gets email of promotional top-up notification Default true, expired_acceptance_findings_notification: bool # If true, the user gets email of expired acceptance findings notification Default false}\n@returns(200) {end_scan_emails: str, promotional_topup_notification: bool, expired_acceptance_findings_notification: bool}\n@errors {400, 401, 500}\n\n@endpoint PATCH /profile/notifications/\n@desc Partial Update Notifications Configuration\n@optional {end_scan_emails: str(new_findings/always/started_by/never/) # * `new_findings` - New Findings * `always` - Always * `started_by` - Started by * `never` - Never, promotional_topup_notification: bool # If true, the user gets email of promotional top-up notification Default true, expired_acceptance_findings_notification: bool # If true, the user gets email of expired acceptance findings notification Default false}\n@returns(200) {end_scan_emails: str, promotional_topup_notification: bool, expired_acceptance_findings_notification: bool}\n@errors {400, 401, 500}\n\n@endpoint GET /profile/permissions/\n@desc List Permissions\n@returns(200) {account: [map], targets: map, teams: map}\n@errors {400, 401, 500}\n\n@endpoint GET /profile/roles/\n@desc List Roles\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., role: str, search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /profile/targets/\n@desc List Targets\n@optional {enabled: bool, exclude_team: [str] # Names of the teams to exclude from results, as a query string.   For example, \"exclude_team=Frontend\" or \"exclude_team=Frontend&exclude_team=Backend\"., id: [str] # Identifiers of targets to filter results. Multiple choices are possible by repeating the query_param., label: [str] # Target label IDs to filter results, as a query string., label_logical_operator: str(and/or) # Logical operator to apply between target labels.   (Defaults to `or`)   * `and` - and * `or` - or, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., risk: [str] # Target risk to filter results:  * `None` - Not applicable. * `0` - No risk. * `10` - Low risk. * `20` - Medium risk. * `30` - High risk. * `40` - Critical risk., role: [str], scan_profile: [str] # Identifier of the scan profile to filter results., search: str # A search term., team: [str] # Names of the teams to filter results, as a query string.   For example, \"team=Frontend\" or \"team=Frontend&team=Backend\"., type: [str], unlimited: bool # If true, filter results by targets with unlimited scans.   If false, filter results by targets that use credits., verified: bool}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endgroup\n\n@group report\n@endpoint GET /report/\n@desc List Report Requests\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /report/\n@desc Generate Report\n@optional {severity: [int] # Filter findings by severity, state: [str] # Filter findings by state, assignee: [str] # Filter findings by assignee's user ID, label: [str] # Filter findings by label ID, new: bool # If true, filter results by new findings.   If false, filter results by old findings., target_label: [str] # Filter findings by target label ID, target: [str] # Filter findings by target ID, team: [str] # Filter findings by team ID, search: str # Search findings, assessment: str # Filter findings by assessment ID, findings: [str] # Filter findings by IDs, report_type: str(default/executive_summary/owasp/pci/pci4/iso27001/hipaa) # * `default` - Standard * `executive_summary` - Executive Summary * `owasp` - OWASP Top 10 * `pci` - PCI v3.2.1 * `pci4` - PCI v4.0.1 * `iso27001` - ISO 27001 * `hipaa` - HIPAA, report_fileformat: str(pdf/docx) # Format for the report to produce.  * `pdf` - PDF file format. * `docx` - DOCX file format., finding_target_ids: [map{finding_id!: str, target_id!: str}] # List of composed keys identifying findings of targets.This field will be ignored if an assessment is specified.}\n@returns(200) {id: str, user: str, submitted_at: str(date-time), generated_at: str(date-time)?, is_email_notification_enabled: bool, filters: str, ttl: str, timezone: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /report/{id}/\n@desc Retrieve Report Request\n@required {id: str}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /report/{id}/\n@desc Update Report Request\n@required {id: str, id: str # A unique Base58 value identifying this object., user: str # A unique Base58 value identifying this object., submitted_at: str(date-time) # Date and time of the report submission date, in ISO 8601 UTC format.   For example, '2023-08-09T13:27.43.8208302', generated_at: str(date-time) # Date and time when the report file was generated, in ISO 8601 UTC format.   For example, '2023-08-09T13:27.43.8208302', filters: str # A unique Base58 value identifying this object., ttl: str # The time-to-live (TTL) for the report file, indicating how long it remains available.}\n@optional {is_email_notification_enabled: bool # If true, email notifications are enabled, and the report will be sent to the user via email. If false, email notifications are disabled. Defaults to false., timezone: str # Time zone name according to the IANA standard (e.g., 'America/New_York', 'Europe/London').}\n@returns(200) {id: str, user: str, submitted_at: str(date-time), generated_at: str(date-time)?, is_email_notification_enabled: bool, filters: str, ttl: str, timezone: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /report/{id}/\n@desc Partial Update to Report Request\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., user: str # A unique Base58 value identifying this object., submitted_at: str(date-time) # Date and time of the report submission date, in ISO 8601 UTC format.   For example, '2023-08-09T13:27.43.8208302', generated_at: str(date-time) # Date and time when the report file was generated, in ISO 8601 UTC format.   For example, '2023-08-09T13:27.43.8208302', is_email_notification_enabled: bool # If true, email notifications are enabled, and the report will be sent to the user via email. If false, email notifications are disabled. Defaults to false., filters: str # A unique Base58 value identifying this object., ttl: str # The time-to-live (TTL) for the report file, indicating how long it remains available., timezone: str # Time zone name according to the IANA standard (e.g., 'America/New_York', 'Europe/London').}\n@returns(200) {id: str, user: str, submitted_at: str(date-time), generated_at: str(date-time)?, is_email_notification_enabled: bool, filters: str, ttl: str, timezone: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /report/{id}/download/\n@desc Download Report\n@required {id: str}\n@returns(200)\n@returns(202) {msg: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /report/{id}/status/\n@desc Report Generation Status\n@required {id: str}\n@returns(200) {id: str, user: str, submitted_at: str(date-time), generated_at: str(date-time)?, is_email_notification_enabled: bool, filters: str, ttl: str, timezone: str}\n@returns(202) {id: str, user: str, submitted_at: str(date-time), generated_at: str(date-time)?, is_email_notification_enabled: bool, filters: str, ttl: str, timezone: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /report/types/\n@desc Get all stored report types\n@returns(200) {results: [map]}\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group roles\n@endpoint GET /roles/\n@desc List Roles\n@optional {assignable_to: map, custom: bool, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /roles/\n@desc Create Role\n@required {id: str # A unique Base58 value identifying this object., name: str # Role's name., custom: bool}\n@optional {permissions: [map{id!: str, name!: str}], description: str # Short description.}\n@returns(201) {id: str, name: str, permissions: [map], custom: bool, description: str?}\n@errors {400, 401, 500}\n\n@endpoint GET /roles/{id}/\n@desc Retrieve Role\n@required {id: str}\n@returns(200) {id: str, name: str, permissions: [map], custom: bool, description: str?}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /roles/{id}/\n@desc Update Role\n@required {id: str, id: str # A unique Base58 value identifying this object., name: str # Role's name., custom: bool}\n@optional {permissions: [map{id!: str, name!: str}], description: str # Short description.}\n@returns(200) {id: str, name: str, permissions: [map], custom: bool, description: str?}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /roles/{id}/\n@desc Partial Update Role\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., name: str # Role's name., permissions: [map{id!: str, name!: str}], custom: bool, description: str # Short description.}\n@returns(200) {id: str, name: str, permissions: [map], custom: bool, description: str?}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /roles/{id}/\n@desc Delete Role\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group scan-profiles\n@endpoint GET /scan-profiles/\n@desc List Scan Profiles\n@optional {archived: bool # If true, the scan profile is no longer in use.   If false, the scan profile can be used., builtin: bool # If true, it is a built-in scan profile, which cannot be changed.   If false, it is a custom scan profile., length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term., type: str(api/web) # Target type:  * `web` - Scan a Web application, including Single Page Applications (SPA) that rely on one or more APIs. * `api` - Scan a standalone API defined by an OpenAPI / Swagger schema, or by a Postman Collection., verified: bool # If true, the scan profile only allows targets with verified domains.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /scan-profiles/\n@desc Create Custom Scan Profile\n@required {id: str # Identifier of the custom scan profile.   It must start with \"sp-\"., type: str(web/api) # Target type:  * `web` - Scan a Web application, including Single Page Applications (SPA) that rely on one or more APIs. * `api` - Scan a standalone API defined by an OpenAPI schema, or by a Postman Collection., vulnerabilities: [map{id!: str, name: str, desc: str, cwe_id: str, cwe_name: str}] # Vulnerabilities for the scanner to verify., can_scan_unverified: bool # If true, the scan profile allows targets with unverified domains., builtin: bool # If true, it is a [built-in scan profile](https://help.probely.com/en/articles/1994962-built-in-scan-profiles-and-their-differences), which cannot be changed.   If false, it is a [custom scan profile](https://help.probely.com/en/articles/8524283-how-to-customize-a-scan-profile) and the id must start with \"sp-\".}\n@optional {name: str # Name of the scan profile.   The maximum length is 255 characters., description: str # Description of the scan profile., archived: bool # If true, the scan profile is no longer in use.   If false, the scan profile can be used., speed: int(10/20/30) # Scan speed:   (Defaults to `20`)   * `10` - Slow - Does roughly half the number of parallel requests of the Normal speed. * `20` - Normal - Offers a good balance between scan duration and the number of requests performed at the same time to the target. * `30` - Fast - Does roughly twice the number of parallel requests of the Normal speed., payloads: int(10/20/30) # Scan payloads:   (Defaults to `20`)   * `10` - Light - Uses slightly less payloads than Normal, reducing scan time while still detecting the most common situations. * `20` - Normal - Uses a set of payloads that maximizes detection without increasing the scan time excessively, delivering a good compromise. * `30` - Thorough - Includes a more extensive set of payloads to detect very uncommon situations. Scan time increases significantly., methods: str(all/safe/) # Scan methods:   (Defaults to `all`)   * `all` - All methods - Allow any HTTP method to be used during the scan. * `safe` - Only safe methods - Ideal set for production targets, allowing only the following HTTP methods: GET, HEAD, OPTIONS, TRACE, and CONNECT., delay: int # Time delay in milliseconds between requests for each scanning thread.   It is an approximate value and is more accurate for slower scan speed settings.   If not defined, there is no delay between requests.   The maximum delay is 5000ms., max_run_time: any # The maximum time the scan is allowed to run.   For example, \"750s\", \"25m\", \"2h\", or \"1d\".   Suffix the value with \"s\" for seconds, \"m\" for minutes, \"h\" for hours, and \"d\" for days.   If the units are not specified the value is considered to be in seconds., dedup_enabled: bool # If true, the scan deduplicates pages with the same SimHash to scan only a few of them.   If false, the scan does not deduplicate pages, which can increase the scan duration significantly.   Defaults to true., auto_patterns_enabled: bool # If true, the scan detects URL patterns to identify similar pages to scan only a few of them.   If false, the scan does not detect patterns, which can increase the scan duration significantly. Defaults to true., max_urls: int # Maximum number of URLs the crawler can visit.   The value must be between 1 and 50000.   Defaults to 5000, which is a good compromise between coverage and scan time.}\n@returns(200) {id: str, name: str, description: str?, archived: bool, type: str, speed: int, payloads: int, vulnerabilities: [map], methods: str, can_scan_unverified: bool, delay: int?, max_run_time: any?, dedup_enabled: bool, auto_patterns_enabled: bool, max_urls: int, builtin: bool}\n@errors {400, 401, 500}\n\n@endpoint GET /scan-profiles/{id}/\n@desc Retrieve Scan Profile\n@required {id: str}\n@returns(200) {id: str, name: str, description: str?, archived: bool, type: str, speed: int, payloads: int, vulnerabilities: [map], methods: str, can_scan_unverified: bool, delay: int?, max_run_time: any?, dedup_enabled: bool, auto_patterns_enabled: bool, max_urls: int, builtin: bool}\n@errors {400, 401, 500}\n\n@endpoint PUT /scan-profiles/{id}/\n@desc Update Custom Scan Profile\n@required {id: str, id: str # Identifier of the scan profile.   Custom scan profiles are always prefixed by \"sp-\"., type: str(web/api) # Target type:  * `web` - Scan a Web application, including Single Page Applications (SPA) that rely on one or more APIs. * `api` - Scan a standalone API defined by an OpenAPI schema, or by a Postman Collection., vulnerabilities: [map{id!: str, name: str, desc: str, cwe_id: str, cwe_name: str}] # Vulnerabilities for the scanner to verify., can_scan_unverified: bool # If true, the scan profile allows targets with unverified domains., builtin: bool # If true, it is a [built-in scan profile](https://help.probely.com/en/articles/1994962-built-in-scan-profiles-and-their-differences), which cannot be changed.   If false, it is a [custom scan profile](https://help.probely.com/en/articles/8524283-how-to-customize-a-scan-profile) and the id must start with \"sp-\".}\n@optional {name: str # Name of the scan profile.   The maximum length is 255 characters., description: str # Description of the scan profile., archived: bool # If true, the scan profile is no longer in use.   If false, the scan profile can be used., speed: int(10/20/30) # Scan speed:   (Defaults to `20`)   * `10` - Slow - Does roughly half the number of parallel requests of the Normal speed. * `20` - Normal - Offers a good balance between scan duration and the number of requests performed at the same time to the target. * `30` - Fast - Does roughly twice the number of parallel requests of the Normal speed., payloads: int(10/20/30) # Scan payloads:   (Defaults to `20`)   * `10` - Light - Uses slightly less payloads than Normal, reducing scan time while still detecting the most common situations. * `20` - Normal - Uses a set of payloads that maximizes detection without increasing the scan time excessively, delivering a good compromise. * `30` - Thorough - Includes a more extensive set of payloads to detect very uncommon situations. Scan time increases significantly., methods: str(all/safe/) # Scan methods:   (Defaults to `all`)   * `all` - All methods - Allow any HTTP method to be used during the scan. * `safe` - Only safe methods - Ideal set for production targets, allowing only the following HTTP methods: GET, HEAD, OPTIONS, TRACE, and CONNECT., delay: int # Time delay in milliseconds between requests for each scanning thread.   It is an approximate value and is more accurate for slower scan speed settings.   If not defined, there is no delay between requests.   The maximum delay is 5000ms., max_run_time: any # The maximum time the scan is allowed to run.   For example, \"750s\", \"25m\", \"2h\", or \"1d\".   Suffix the value with \"s\" for seconds, \"m\" for minutes, \"h\" for hours, and \"d\" for days.   If the units are not specified the value is considered to be in seconds., dedup_enabled: bool # If true, the scan deduplicates pages with the same SimHash to scan only a few of them.   If false, the scan does not deduplicate pages, which can increase the scan duration significantly.   Defaults to true., auto_patterns_enabled: bool # If true, the scan detects URL patterns to identify similar pages to scan only a few of them.   If false, the scan does not detect patterns, which can increase the scan duration significantly. Defaults to true., max_urls: int # Maximum number of URLs the crawler can visit.   The value must be between 1 and 50000.   Defaults to 5000, which is a good compromise between coverage and scan time.}\n@returns(200) {id: str, name: str, description: str?, archived: bool, type: str, speed: int, payloads: int, vulnerabilities: [map], methods: str, can_scan_unverified: bool, delay: int?, max_run_time: any?, dedup_enabled: bool, auto_patterns_enabled: bool, max_urls: int, builtin: bool}\n@errors {400, 401, 500}\n\n@endpoint PATCH /scan-profiles/{id}/\n@desc Parcial Update Custom Scan Profile\n@required {id: str}\n@optional {id: str # Identifier of the scan profile.   Custom scan profiles are always prefixed by \"sp-\"., name: str # Name of the scan profile.   The maximum length is 255 characters., description: str # Description of the scan profile., archived: bool # If true, the scan profile is no longer in use.   If false, the scan profile can be used., type: str(web/api) # Target type:  * `web` - Scan a Web application, including Single Page Applications (SPA) that rely on one or more APIs. * `api` - Scan a standalone API defined by an OpenAPI schema, or by a Postman Collection., speed: int(10/20/30) # Scan speed:   (Defaults to `20`)   * `10` - Slow - Does roughly half the number of parallel requests of the Normal speed. * `20` - Normal - Offers a good balance between scan duration and the number of requests performed at the same time to the target. * `30` - Fast - Does roughly twice the number of parallel requests of the Normal speed., payloads: int(10/20/30) # Scan payloads:   (Defaults to `20`)   * `10` - Light - Uses slightly less payloads than Normal, reducing scan time while still detecting the most common situations. * `20` - Normal - Uses a set of payloads that maximizes detection without increasing the scan time excessively, delivering a good compromise. * `30` - Thorough - Includes a more extensive set of payloads to detect very uncommon situations. Scan time increases significantly., vulnerabilities: [map{id!: str, name: str, desc: str, cwe_id: str, cwe_name: str}] # Vulnerabilities for the scanner to verify., methods: str(all/safe/) # Scan methods:   (Defaults to `all`)   * `all` - All methods - Allow any HTTP method to be used during the scan. * `safe` - Only safe methods - Ideal set for production targets, allowing only the following HTTP methods: GET, HEAD, OPTIONS, TRACE, and CONNECT., can_scan_unverified: bool # If true, the scan profile allows targets with unverified domains., delay: int # Time delay in milliseconds between requests for each scanning thread.   It is an approximate value and is more accurate for slower scan speed settings.   If not defined, there is no delay between requests.   The maximum delay is 5000ms., max_run_time: any # The maximum time the scan is allowed to run.   For example, \"750s\", \"25m\", \"2h\", or \"1d\".   Suffix the value with \"s\" for seconds, \"m\" for minutes, \"h\" for hours, and \"d\" for days.   If the units are not specified the value is considered to be in seconds., dedup_enabled: bool # If true, the scan deduplicates pages with the same SimHash to scan only a few of them.   If false, the scan does not deduplicate pages, which can increase the scan duration significantly.   Defaults to true., auto_patterns_enabled: bool # If true, the scan detects URL patterns to identify similar pages to scan only a few of them.   If false, the scan does not detect patterns, which can increase the scan duration significantly. Defaults to true., max_urls: int # Maximum number of URLs the crawler can visit.   The value must be between 1 and 50000.   Defaults to 5000, which is a good compromise between coverage and scan time., builtin: bool # If true, it is a [built-in scan profile](https://help.probely.com/en/articles/1994962-built-in-scan-profiles-and-their-differences), which cannot be changed.   If false, it is a [custom scan profile](https://help.probely.com/en/articles/8524283-how-to-customize-a-scan-profile) and the id must start with \"sp-\".}\n@returns(200) {id: str, name: str, description: str?, archived: bool, type: str, speed: int, payloads: int, vulnerabilities: [map], methods: str, can_scan_unverified: bool, delay: int?, max_run_time: any?, dedup_enabled: bool, auto_patterns_enabled: bool, max_urls: int, builtin: bool}\n@errors {400, 401, 500}\n\n@endgroup\n\n@group scanning-agents\n@endpoint GET /scanning-agents/\n@desc List Scanning Agents\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., scopes_logical_operator: str(and/or) # Logical operator to apply between agent scopes:   (Defaults to `or`)   * `and` - and * `or` - or, search: str # A search term., status: [int] # Filter by status  * `connected` - Connected * `connected_with_issues` - Connected with issues * `disconnected` - Disconnected, team: [str] # A unique Base58 value identifying this object.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /scanning-agents/\n@desc Create Scanning Agent\n@required {id: str, name: str, installer_generated: bool, online: bool, fallback: bool, rx_bytes: int, tx_bytes: int, latest_handshake: int}\n@optional {teams: [any]}\n@returns(201) {id: str, name: str, installer_generated: bool, teams: [any]?, online: bool, fallback: bool, rx_bytes: int, tx_bytes: int, latest_handshake: int}\n@errors {400, 401, 500}\n\n@endpoint GET /scanning-agents/{hek}/config-files/\n@desc Get Configuration File\n@required {hek: str}\n@returns(200) {filename: str, content: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /scanning-agents/{id}/\n@desc Retrieve Scanning Agent\n@required {id: str # A unique value identifying this scanning agent.}\n@returns(200) {id: str, name: str, installer_generated: bool, teams: [any]?, online: bool, fallback: bool, rx_bytes: int, tx_bytes: int, latest_handshake: int}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /scanning-agents/{id}/\n@desc Update Scanning Agent\n@required {id: str # A unique value identifying this scanning agent., id: str, name: str, installer_generated: bool, online: bool, fallback: bool, rx_bytes: int, tx_bytes: int, latest_handshake: int}\n@optional {teams: [any]}\n@returns(200) {id: str, name: str, installer_generated: bool, teams: [any]?, online: bool, fallback: bool, rx_bytes: int, tx_bytes: int, latest_handshake: int}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /scanning-agents/{id}/\n@desc Partial Update Scanning Agent\n@required {id: str # A unique value identifying this scanning agent.}\n@optional {id: str, name: str, installer_generated: bool, teams: [any], online: bool, fallback: bool, rx_bytes: int, tx_bytes: int, latest_handshake: int}\n@returns(200) {id: str, name: str, installer_generated: bool, teams: [any]?, online: bool, fallback: bool, rx_bytes: int, tx_bytes: int, latest_handshake: int}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /scanning-agents/{id}/\n@desc Delete Scanning Agent\n@required {id: str # A unique value identifying this scanning agent.}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint POST /scanning-agents/{id}/generate/\n@desc Create Token\n@required {id: str # A unique value identifying this scanning agent., name: str, installer_generated: bool, online: bool, fallback: bool, rx_bytes: int, tx_bytes: int, latest_handshake: int}\n@optional {id: str}\n@returns(200) {token: str}\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group scans\n@endpoint GET /scans/\n@desc List Account's Scans\n@optional {completed__gt: str(date-time) # Date and time from which scans completed (exclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., completed__gte: str(date-time) # Date and time from which scans completed (inclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., completed__lt: str(date-time) # Date and time until which the scans completed (exclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., completed__lte: str(date-time) # Date and time until which the scans completed (inclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., id: [str] # Identifiers of scans to filter results. Multiple choices are possible by repeating the query_param., is_id_404_validation: bool=false # If true, triggers custom response for `id` filter validation.   If any `id` filter is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```, label: [str] # A unique Base58 value identifying this object., length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., partial: bool, scan_profile: [str] # Identifier of the scan profile to filter results., search: str # A search term., started__gt: str(date-time) # Date and time from which the scans started (exclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., started__gte: str(date-time) # Date and time from which the scans started (inclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., started__lt: str(date-time) # Date and time from which the scans started (exclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., started__lte: str(date-time) # Date and time until which the scans started (inclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., started_after: str(date-time) # Date and time of when the scan started to filter results, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", started_before: str(date-time) # Date and time of when the scan started to filter results, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", status: [str] # Status of the scan:  * `canceled` - Canceled * `canceling` - Canceling * `completed` - Completed * `completed_with_errors` - Completed with errors - DEPRECATED * `failed` - Failed * `paused` - Paused * `pausing` - Pausing * `queued` - Queued * `resuming` - Resuming * `started` - Started * `under_review` - Under Review * `finishing_up` - Finishing up, target: [str] # Scan target., team: [str] # A unique Base58 value identifying this object., warning: [str] # Identifiers of warnings to filter results.   Multiple choices are possible by repeating the query_param.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /scans/{id}/\n@desc Retrieve Account's Scans\n@required {id: str}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 500}\n\n@endpoint POST /scans/bulk/cancel/\n@desc Bulk Cancel Scans\n@required {scans: [map{id!: str}]}\n@optional {is_id_404_validation: bool=false # If true, triggers custom response for `scans` payload validation.   If any `scans` payload is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint POST /scans/bulk/pause/\n@desc Bulk Pause Scans\n@required {scans: [map{id!: str}]}\n@optional {is_id_404_validation: bool=false # If true, triggers custom response for `scans` payload validation.   If any `scans` payload is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint POST /scans/bulk/resume/\n@desc Bulk Resume Scans\n@required {scans: [map{id!: str}]}\n@optional {is_id_404_validation: bool=false # If true, triggers custom response for `scans` payload validation.   If any `scans` payload is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```, overrides: map{ignore_blackout_period: bool}}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint POST /scans/bulk/start/\n@desc Bulk Start Scans\n@required {targets: [map{id!: str}]}\n@optional {is_id_404_validation: bool=false # If true, triggers custom response for `targets` payload validation.   If any `targets` payload is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```, overrides: map{ignore_blackout_period: bool, scan_profile: str, reduced_scopes: [map]}}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint GET /scans/warnings/\n@desc List Scan Warnings\n@optional {length: int # Number of results to return per page., page: int # A page number within the paginated result set.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /scans/warnings/{id}/\n@desc Retrive Scan Warning\n@required {id: str(disabled_http_get/env_error/extra_hosts/invalid_cookie/local_ip/login_failed/network_error/target_redirect/target_status/test_request_error/timeout_error/navigation_sequence_failure)}\n@returns(200) {id: str, name: str}\n@errors {400, 401, 500}\n\n@endgroup\n\n@group scheduledscans\n@endpoint GET /scheduledscans/\n@desc List Account's Scheduled Scans\n@optional {id: [str] # Identifiers of Scheduled Scans to filter results. Multiple choices are possible by repeating the query_param., is_id_404_validation: bool=false # If true, triggers custom response for `id` filter validation.   If any `id` filter is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```, label: [str] # A unique Base58 value identifying this object., length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term., target: [str] # Identifiers of Scheduled Scans targets to filter results. Multiple choices are possible by repeating the query_param., team: [str] # A unique Base58 value identifying this object.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /scheduledscans/bulk/\n@desc Bulk Create Scheduled Scans\n@required {targets: [map{id!: str}], scheduledscan: map{id!: str, target!: any, date_time!: str(date-time), recurrence: str, changed!: str(date-time), changed_by!: any, blackout_period!: any, timezone: str, run_on_day_of_week: bool, scheduled_day_of_week: int, week_index: str, partial_scan: bool, override_target_settings: bool, incremental: bool, reduced_scope: bool, scan_profile: str, unlimited!: str} # Serializer for scheduled/recurrent scans}\n@returns(200)\n@errors {400, 401, 500}\n\n@endpoint PUT /scheduledscans/bulk/\n@desc Bulk Update Scheduled Scans\n@required {scheduledscans: [map{id!: str}], scheduledscan: map{id!: str, target!: any, date_time!: str(date-time), recurrence: str, changed!: str(date-time), changed_by!: any, blackout_period!: any, timezone: str, run_on_day_of_week: bool, scheduled_day_of_week: int, week_index: str, partial_scan: bool, override_target_settings: bool, incremental: bool, reduced_scope: bool, scan_profile: str, unlimited!: str} # Serializer for scheduled/recurrent scans}\n@returns(200)\n@errors {400, 401, 500}\n\n@endpoint PATCH /scheduledscans/bulk/\n@desc Bulk Update Scheduled Scans\n@optional {scheduledscans: [map{id!: str}], scheduledscan: map{id!: str, target!: any, date_time!: str(date-time), recurrence: str, changed!: str(date-time), changed_by!: any, blackout_period!: any, timezone: str, run_on_day_of_week: bool, scheduled_day_of_week: int, week_index: str, partial_scan: bool, override_target_settings: bool, incremental: bool, reduced_scope: bool, scan_profile: str, unlimited!: str} # Serializer for scheduled/recurrent scans}\n@returns(200)\n@errors {400, 401, 500}\n\n@endpoint DELETE /scheduledscans/bulk/\n@desc Bulk Delete Scheduled Scans\n@returns(204) No response body\n@errors {400, 401, 500}\n\n@endgroup\n\n@group stored-reports\n@endpoint GET /stored-reports/\n@desc List Findings Scheduled Reports\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /stored-reports/\n@desc Create Findings Scheduled Report\n@required {id: str # A unique Base58 value identifying this object., name: str # Name of the report., filters: map{severity: [int], state: [str], assignee: [str], label: [str], new: bool, target_label: [str], target: [str], team: [str], search: str, assessment: str, findings: [str], report_type: str, report_fileformat: str, finding_target_ids: [map]}, enabled: bool # If true, the report is generated.   Defaults to true.}\n@optional {date_time: str(date-time) # Date and time when the next report will be generated, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., recurrence: str(h/d/w/m/q/) # Recurrence of the report generation:   (if `\"\"` it's a one-time report)   * `h` - Hourly * `d` - Daily * `w` - Weekly * `m` - Monthly * `q` - Quarterly, timezone: str # Two-letter country code for the time zone of the `date_time`, as an ISO 3166-1 alpha-2 code., on_day_of_week: bool # If true, the report is scheduled to be generated on a specific week.   If false, the report is generated on the day set in `date_time`.   This is only applicable if the `recurrence` is monthly or quarterly.   Defaults to false., scheduled_day_of_week: int(1/2/3/4/5/6/7) # The day of the week on which the report is generated:   (This is only applicable if `on_day_of_week` is true)   * `1` - Monday * `2` - Tuesday * `3` - Wednesday * `4` - Thursday * `5` - Friday * `6` - Saturday * `7` - Sunday, week_index: str(first/second/third/fourth/last/) # The week of the month in which the report is generated:   (This is only applicable if `on_day_of_week` is true)   * `first` - First * `second` - Second * `third` - Third * `fourth` - Fourth * `last` - Last, report_type: str=default, report_fileformat: str=pdf}\n@returns(201) {id: str, name: str, date_time: str(date-time)?, recurrence: str, timezone: str, on_day_of_week: bool, scheduled_day_of_week: int?, week_index: str?, filters: map{severity: [int], state: [str], assignee: [str], label: [str], new: bool?, target_label: [str], target: [str], team: [str], search: str, assessment: str, findings: [str], report_type: str, report_fileformat: str, finding_target_ids: [map]}, report_type: str, report_fileformat: str, enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /stored-reports/{id}/\n@desc Retrieve Findings Scheduled Report\n@required {id: str}\n@returns(200) {id: str, name: str, date_time: str(date-time)?, recurrence: str, timezone: str, on_day_of_week: bool, scheduled_day_of_week: int?, week_index: str?, filters: map{severity: [int], state: [str], assignee: [str], label: [str], new: bool?, target_label: [str], target: [str], team: [str], search: str, assessment: str, findings: [str], report_type: str, report_fileformat: str, finding_target_ids: [map]}, report_type: str, report_fileformat: str, enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /stored-reports/{id}/\n@desc Update Findings Scheduled Report\n@required {id: str, id: str # A unique Base58 value identifying this object., name: str # Name of the report., filters: map{severity: [int], state: [str], assignee: [str], label: [str], new: bool, target_label: [str], target: [str], team: [str], search: str, assessment: str, findings: [str], report_type: str, report_fileformat: str, finding_target_ids: [map]}, enabled: bool # If true, the report is generated.   Defaults to true.}\n@optional {date_time: str(date-time) # Date and time when the next report will be generated, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., recurrence: str(h/d/w/m/q/) # Recurrence of the report generation:   (if `\"\"` it's a one-time report)   * `h` - Hourly * `d` - Daily * `w` - Weekly * `m` - Monthly * `q` - Quarterly, timezone: str # Two-letter country code for the time zone of the `date_time`, as an ISO 3166-1 alpha-2 code., on_day_of_week: bool # If true, the report is scheduled to be generated on a specific week.   If false, the report is generated on the day set in `date_time`.   This is only applicable if the `recurrence` is monthly or quarterly.   Defaults to false., scheduled_day_of_week: int(1/2/3/4/5/6/7) # The day of the week on which the report is generated:   (This is only applicable if `on_day_of_week` is true)   * `1` - Monday * `2` - Tuesday * `3` - Wednesday * `4` - Thursday * `5` - Friday * `6` - Saturday * `7` - Sunday, week_index: str(first/second/third/fourth/last/) # The week of the month in which the report is generated:   (This is only applicable if `on_day_of_week` is true)   * `first` - First * `second` - Second * `third` - Third * `fourth` - Fourth * `last` - Last, report_type: str=default, report_fileformat: str=pdf}\n@returns(200) {id: str, name: str, date_time: str(date-time)?, recurrence: str, timezone: str, on_day_of_week: bool, scheduled_day_of_week: int?, week_index: str?, filters: map{severity: [int], state: [str], assignee: [str], label: [str], new: bool?, target_label: [str], target: [str], team: [str], search: str, assessment: str, findings: [str], report_type: str, report_fileformat: str, finding_target_ids: [map]}, report_type: str, report_fileformat: str, enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /stored-reports/{id}/\n@desc Partial Update Findings Scheduled Report\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., name: str # Name of the report., date_time: str(date-time) # Date and time when the next report will be generated, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., recurrence: str(h/d/w/m/q/) # Recurrence of the report generation:   (if `\"\"` it's a one-time report)   * `h` - Hourly * `d` - Daily * `w` - Weekly * `m` - Monthly * `q` - Quarterly, timezone: str # Two-letter country code for the time zone of the `date_time`, as an ISO 3166-1 alpha-2 code., on_day_of_week: bool # If true, the report is scheduled to be generated on a specific week.   If false, the report is generated on the day set in `date_time`.   This is only applicable if the `recurrence` is monthly or quarterly.   Defaults to false., scheduled_day_of_week: int(1/2/3/4/5/6/7) # The day of the week on which the report is generated:   (This is only applicable if `on_day_of_week` is true)   * `1` - Monday * `2` - Tuesday * `3` - Wednesday * `4` - Thursday * `5` - Friday * `6` - Saturday * `7` - Sunday, week_index: str(first/second/third/fourth/last/) # The week of the month in which the report is generated:   (This is only applicable if `on_day_of_week` is true)   * `first` - First * `second` - Second * `third` - Third * `fourth` - Fourth * `last` - Last, filters: map{severity: [int], state: [str], assignee: [str], label: [str], new: bool, target_label: [str], target: [str], team: [str], search: str, assessment: str, findings: [str], report_type: str, report_fileformat: str, finding_target_ids: [map]}, report_type: str=default, report_fileformat: str=pdf, enabled: bool # If true, the report is generated.   Defaults to true.}\n@returns(200) {id: str, name: str, date_time: str(date-time)?, recurrence: str, timezone: str, on_day_of_week: bool, scheduled_day_of_week: int?, week_index: str?, filters: map{severity: [int], state: [str], assignee: [str], label: [str], new: bool?, target_label: [str], target: [str], team: [str], search: str, assessment: str, findings: [str], report_type: str, report_fileformat: str, finding_target_ids: [map]}, report_type: str, report_fileformat: str, enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /stored-reports/{id}/\n@desc Delete Findings Scheduled Report\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint POST /stored-reports/{id}/generate/\n@desc Get report download URL\n@required {id: str}\n@returns(200) {results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /stored-reports/preview/\n@desc Download Findings Scheduled Report Preview\n@required {id: str # A unique Base58 value identifying this object., name: str # Name of the report., filters: map{severity: [int], state: [str], assignee: [str], label: [str], new: bool, target_label: [str], target: [str], team: [str], search: str, assessment: str, findings: [str], report_type: str, report_fileformat: str, finding_target_ids: [map]}, enabled: bool # If true, the report is generated.   Defaults to true.}\n@optional {date_time: str(date-time) # Date and time when the next report will be generated, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., recurrence: str(h/d/w/m/q/) # Recurrence of the report generation:   (if `\"\"` it's a one-time report)   * `h` - Hourly * `d` - Daily * `w` - Weekly * `m` - Monthly * `q` - Quarterly, timezone: str # Two-letter country code for the time zone of the `date_time`, as an ISO 3166-1 alpha-2 code., on_day_of_week: bool # If true, the report is scheduled to be generated on a specific week.   If false, the report is generated on the day set in `date_time`.   This is only applicable if the `recurrence` is monthly or quarterly.   Defaults to false., scheduled_day_of_week: int(1/2/3/4/5/6/7) # The day of the week on which the report is generated:   (This is only applicable if `on_day_of_week` is true)   * `1` - Monday * `2` - Tuesday * `3` - Wednesday * `4` - Thursday * `5` - Friday * `6` - Saturday * `7` - Sunday, week_index: str(first/second/third/fourth/last/) # The week of the month in which the report is generated:   (This is only applicable if `on_day_of_week` is true)   * `first` - First * `second` - Second * `third` - Third * `fourth` - Fourth * `last` - Last, report_type: str=default, report_fileformat: str=pdf}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group targets\n@endpoint GET /targets/\n@desc List Targets\n@optional {exclude: [str] # Fields to exclude from the response., exclude_team: str # Names of the teams to exclude from results, as a query string.   For example, \"exclude_team=Frontend\" or \"exclude_team=Frontend&exclude_team=Backend\"., id: [str] # Identifiers of targets to filter results. Multiple choices are possible by repeating the query_param., is_id_404_validation: bool=false # If true, triggers custom response for `id` filter validation.   If any `id` filter is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```, label: str # Target label IDs to filter results, as a query string., label_logical_operator: str(and/or) # Logical operator to apply between target labels.   (Defaults to `or`)   * `and` - and * `or` - or, length: int # Number of results to return per page., ordering: str(changed/latest_scan_date/name/risk/target__name) # Which field to use when ordering the results.   Ascending order is the default. For descending order, prefix the field with `-`.   For example, `latest_scan_date` and `-latest_scan_date`.   Field to order by:  * `target__name` * `risk` * `latest_scan_date` * `changed` * `name`, page: int # A page number within the paginated result set., risk: [int] # Target risk to filter results:  * `None` - Not applicable. * `0` - No risk. * `10` - Low risk. * `20` - Medium risk. * `30` - High risk. * `40` - Critical risk., scan_profile: [str] # Identifier of the scan profile to filter results., search: str # A search term., team: str # Names of the teams to filter results, as a query string.   For example, \"team=Frontend\" or \"team=Frontend&team=Backend\"., type: str # Type of target to filter results.   Possible values are \"single\" for a web application and \"api\" for an API., unlimited: bool # If true, filter results by targets with unlimited scans.   If false, filter results by targets that use credits., verified: bool # If true, filter results by verified targets.   If false, filter results by unverified targets.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /targets/\n@desc Create Target\n@required {id: str # A unique Base58 value identifying this object., site: any # Core settings of the target.   Includes basic target information (like the name, description, and URL) and scanning information (like the authentication and navigation sequences)., lows: int # Number of unresolved vulnerability findings with low severity., mediums: int # Number of unresolved vulnerability findings with medium severity., highs: int # Number of unresoved vulnerability findings with high severity., criticals: int # Number of unresolved vulnerability findings with critical severity., risk: int, last_scan: any # Last scan done for the target., running_scan: any # Current scan running for the target., next_scan: any # Next scheduled scan for the target., assets: [map{id!: str, account!: str, name!: str, host!: str, desc!: str, stack: [any], verified: bool, verification_token!: str(uuid), verification_date!: str(date-time), verification_method!: str, verification_last_error!: str, changed!: str(date-time), changed_by!: any, headers!: [map], cookies: [map], include!: bool}], allowed_scan_profiles: [map{id!: str, name: str, description: str, builtin!: str}] # [Scan profiles](https://help.probely.com/en/articles/1994962-built-in-scan-profiles-and-their-differences) allowed for the target., login_video: str, changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@optional {check_fullpath: str # If true, validates and raises an error if the target's URL contains any query strings or paths that restrict the scope of the target scan.   For example, it raises an error for a URL like `https://example.com/admin` since it restricts the target scans to only what is under `admin`.  The URL would have to be `https://example.com` to cover the whole scope.  Then, you can add or restrict specific areas to be scanned under the target's scope (using `site.whitelist` and `site.blacklist` respectively).   If false or not defined, no validation is done., duplicate_check: str # If true, validates and raises an error if there is already another target using the same URL.   If false or not defined, no validation is done., skip_fullpath_warning: str # If true, ignores warnings issued when `check_fullpath` is true.   If false or not defined, warnings are taken into account., skip_reachability_check: str # If false or not defined, makes a request to the target to try reach it and raises an error if it fails.   If true, skips this validation., skip_redirect_check: str # If false or not defined, validates and raises an error if the target's URL is redirected.   If true, skips this validation (if there aren't more than 6 redirects)., scan_profile: str # Identifier of the scan profile., type: str # Type of target.   Possible values are \"single\" for a web application and \"api\" for an API.   Defaults to \"single\"., unlimited: bool # If true, the target has unlimited scans.   If false, the target scans consume credits.   Learn more about [unlimited scans vs scans with credits](https://help.probely.com/en/articles/6845523-unlimited-scans-vs-scans-with-credits)., report_type: str(default/executive_summary/owasp/pci/pci4/iso27001/hipaa) # Type of [scan report](https://help.probely.com/en/articles/2659844-types-of-compliance-reports-you-can-generate-with-probely) produced for the target:   (Defaults to `default`)   * `default` - Standard * `executive_summary` - Executive Summary * `owasp` - OWASP Top 10 * `pci` - PCI v3.2.1 * `pci4` - PCI v4.0.1 * `iso27001` - ISO 27001 * `hipaa` - HIPAA, report_fileformat: str(pdf/docx) # [Report format](https://help.probely.com/en/articles/6649585-how-to-switch-between-different-report-formats) for the target:   (Defaults to `pdf`)   * `pdf` - PDF file format. * `docx` - DOCX file format., labels: [any] # Labels of the target., scanning_agent: any # Scanning agent of the target. Learn more on [how to scan internal applications with a scanning agent](https://help.probely.com/en/articles/4615595-how-to-scan-internal-applications-with-a-scanning-agent)., include_deduplicated_endpoints: bool # If true, scans include deduplicated endpoints.   If false or null, scans exclude deduplicated endpoints.   A deduplicated endpoint has the same simhash as another scanned endpoint., teams: [map{id: str, name!: str}], blackout_period: any # Time window during which scans are temporarily interrupted., fail_fast: bool # If true, scans fail on recoverable errors.   If false, scans continue on recoverable errors.   Defaults to true., incremental: bool # If true, on-demand scans can be incremental to narrow the coverage to new and updated URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., reduced_scope: bool # If true, on-demand scans can have reduced scope to narrow the coverage to defined URLs.     Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_incremental: bool # If true, scheduled scans can be incremental to narrow the coverage to new and updated URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_reduced_scope: bool # If true, scheduled scans can have reduced scope to narrow the coverage to defined URLs.      Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., crawl_sequences_only: bool # If true, on-demand scans can only crawl navigation sequences to narrow the coverage.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_crawl_sequences_only: bool # If true, scheduled scans can only crawl navigation sequences to narrow the coverage.     Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., cancel_scan_on_nav_seq_failure: bool # If true, scans are canceled if one of the navigation sequences fails. Defaults to false.}\n@returns(201) {id: str, site: map{id: str, name: str, desc: str?, url: str(uri), host: str, has_form_login: bool, form_login_url: str(uri), form_login_check_pattern: str, form_login: [map], logout_detection_enabled: bool, has_sequence_login: bool, has_basic_auth: bool, basic_auth: any, headers: [map], cookies: [map], whitelist: any, blacklist: any, changed: str(date-time), changed_by: any, auth_enabled: bool, logout_condition: str, check_session_url: str, has_otp: bool, otp_secret: str, otp_secret_is_sensitive: bool, otp_algorithm: str, otp_digits: int, otp_field: str, otp_submit: str, otp_login_sequence_totp_value: str, otp_type: str, otp_url: str, is_mtls_active: bool, is_signature_active: bool, is_mle_active: bool, postman_authentication_enabled: bool, postman_check_session_folder: str, stack: [any], verified: bool, verification_token: str, verification_date: str(date-time), verification_method: str, verification_last_error: str, api_scan_settings: any, openapi_check_session_method: str, openapi_check_session_media_type: str, openapi_check_session_expired_payload: str?}, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: map{id: str, name: str, description: str?, builtin: str}, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [map], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}\n@errors {400, 401, 500}\n\n@endpoint GET /targets/{id}/\n@desc Retrieve Target\n@required {id: str}\n@returns(200) {id: str, site: map{id: str, name: str, desc: str?, url: str(uri), host: str, has_form_login: bool, form_login_url: str(uri), form_login_check_pattern: str, form_login: [map], logout_detection_enabled: bool, has_sequence_login: bool, has_basic_auth: bool, basic_auth: any, headers: [map], cookies: [map], whitelist: any, blacklist: any, changed: str(date-time), changed_by: any, auth_enabled: bool, logout_condition: str, check_session_url: str, has_otp: bool, otp_secret: str, otp_secret_is_sensitive: bool, otp_algorithm: str, otp_digits: int, otp_field: str, otp_submit: str, otp_login_sequence_totp_value: str, otp_type: str, otp_url: str, is_mtls_active: bool, is_signature_active: bool, is_mle_active: bool, postman_authentication_enabled: bool, postman_check_session_folder: str, stack: [any], verified: bool, verification_token: str, verification_date: str(date-time), verification_method: str, verification_last_error: str, api_scan_settings: any, openapi_check_session_method: str, openapi_check_session_media_type: str, openapi_check_session_expired_payload: str?}, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: map{id: str, name: str, description: str?, builtin: str}, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [map], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{id}/\n@desc Update Target\n@required {id: str, id: str # A unique Base58 value identifying this object., site: any # Core settings of the target.   Includes basic target information (like the name, description, and URL) and scanning information (like the authentication and navigation sequences)., lows: int # Number of unresolved vulnerability findings with low severity., mediums: int # Number of unresolved vulnerability findings with medium severity., highs: int # Number of unresoved vulnerability findings with high severity., criticals: int # Number of unresolved vulnerability findings with critical severity., risk: int, last_scan: any # Last scan done for the target., running_scan: any # Current scan running for the target., next_scan: any # Next scheduled scan for the target., assets: [map{id!: str, account!: str, name!: str, host!: str, desc!: str, stack: [any], verified: bool, verification_token!: str(uuid), verification_date!: str(date-time), verification_method!: str, verification_last_error!: str, changed!: str(date-time), changed_by!: any, headers!: [map], cookies: [map], include!: bool}], unlimited: bool # If true, the target has unlimited scans.   If false, the target scans consume credits.   Learn more about [unlimited scans vs scans with credits](https://help.probely.com/en/articles/6845523-unlimited-scans-vs-scans-with-credits)., allowed_scan_profiles: [map{id!: str, name: str, description: str, builtin!: str}] # [Scan profiles](https://help.probely.com/en/articles/1994962-built-in-scan-profiles-and-their-differences) allowed for the target., teams: [any], login_video: str, changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@optional {scan_profile: str # Identifier of the scan profile., type: str # Type of target.   Possible values are \"single\" for a web application and \"api\" for an API.   Defaults to \"single\"., report_type: str(default/executive_summary/owasp/pci/pci4/iso27001/hipaa) # Type of [scan report](https://help.probely.com/en/articles/2659844-types-of-compliance-reports-you-can-generate-with-probely) produced for the target:   (Defaults to `default`)   * `default` - Standard * `executive_summary` - Executive Summary * `owasp` - OWASP Top 10 * `pci` - PCI v3.2.1 * `pci4` - PCI v4.0.1 * `iso27001` - ISO 27001 * `hipaa` - HIPAA, report_fileformat: str(pdf/docx) # [Report format](https://help.probely.com/en/articles/6649585-how-to-switch-between-different-report-formats) for the target:   (Defaults to `pdf`)   * `pdf` - PDF file format. * `docx` - DOCX file format., labels: [any] # Labels of the target., scanning_agent: any # Scanning agent of the target. Learn more on [how to scan internal applications with a scanning agent](https://help.probely.com/en/articles/4615595-how-to-scan-internal-applications-with-a-scanning-agent)., include_deduplicated_endpoints: bool # If true, scans include deduplicated endpoints.   If false or null, scans exclude deduplicated endpoints.   A deduplicated endpoint has the same simhash as another scanned endpoint., blackout_period: any # Time window during which scans are temporarily interrupted., fail_fast: bool # If true, scans fail on recoverable errors.   If false, scans continue on recoverable errors.   Defaults to true., incremental: bool # If true, on-demand scans can be incremental to narrow the coverage to new and updated URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., reduced_scope: bool # If true, on-demand scans can have reduced scope to narrow the coverage to defined URLs.     Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_incremental: bool # If true, scheduled scans can be incremental to narrow the coverage to new and updated URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_reduced_scope: bool # If true, scheduled scans can have reduced scope to narrow the coverage to defined URLs.      Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., crawl_sequences_only: bool # If true, on-demand scans can only crawl navigation sequences to narrow the coverage.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_crawl_sequences_only: bool # If true, scheduled scans can only crawl navigation sequences to narrow the coverage.     Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., cancel_scan_on_nav_seq_failure: bool # If true, scans are canceled if one of the navigation sequences fails. Defaults to false.}\n@returns(200) {id: str, site: map{id: str, name: str, desc: str?, url: str(uri), host: str, has_form_login: bool, form_login_url: str(uri), form_login_check_pattern: str, form_login: [map], logout_detection_enabled: bool, has_sequence_login: bool, has_basic_auth: bool, basic_auth: any, headers: [map], cookies: [map], whitelist: any, blacklist: any, changed: str(date-time), changed_by: any, auth_enabled: bool, logout_condition: str, check_session_url: str, has_otp: bool, otp_secret: str, otp_secret_is_sensitive: bool, otp_algorithm: str, otp_digits: int, otp_field: str, otp_submit: str, otp_login_sequence_totp_value: str, otp_type: str, otp_url: str, is_mtls_active: bool, is_signature_active: bool, is_mle_active: bool, postman_authentication_enabled: bool, postman_check_session_folder: str, stack: [any], verified: bool, verification_token: str, verification_date: str(date-time), verification_method: str, verification_last_error: str, api_scan_settings: any, openapi_check_session_method: str, openapi_check_session_media_type: str, openapi_check_session_expired_payload: str?}, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: map{id: str, name: str, description: str?, builtin: str}, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [map], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{id}/\n@desc Partial Update Target\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., site: any # Core settings of the target.   Includes basic target information (like the name, description, and URL) and scanning information (like the authentication and navigation sequences)., lows: int # Number of unresolved vulnerability findings with low severity., mediums: int # Number of unresolved vulnerability findings with medium severity., highs: int # Number of unresoved vulnerability findings with high severity., criticals: int # Number of unresolved vulnerability findings with critical severity., risk: int, last_scan: any # Last scan done for the target., running_scan: any # Current scan running for the target., next_scan: any # Next scheduled scan for the target., assets: [map{id!: str, account!: str, name!: str, host!: str, desc!: str, stack: [any], verified: bool, verification_token!: str(uuid), verification_date!: str(date-time), verification_method!: str, verification_last_error!: str, changed!: str(date-time), changed_by!: any, headers!: [map], cookies: [map], include!: bool}], scan_profile: str # Identifier of the scan profile., type: str # Type of target.   Possible values are \"single\" for a web application and \"api\" for an API.   Defaults to \"single\"., unlimited: bool # If true, the target has unlimited scans.   If false, the target scans consume credits.   Learn more about [unlimited scans vs scans with credits](https://help.probely.com/en/articles/6845523-unlimited-scans-vs-scans-with-credits)., report_type: str(default/executive_summary/owasp/pci/pci4/iso27001/hipaa) # Type of [scan report](https://help.probely.com/en/articles/2659844-types-of-compliance-reports-you-can-generate-with-probely) produced for the target:   (Defaults to `default`)   * `default` - Standard * `executive_summary` - Executive Summary * `owasp` - OWASP Top 10 * `pci` - PCI v3.2.1 * `pci4` - PCI v4.0.1 * `iso27001` - ISO 27001 * `hipaa` - HIPAA, report_fileformat: str(pdf/docx) # [Report format](https://help.probely.com/en/articles/6649585-how-to-switch-between-different-report-formats) for the target:   (Defaults to `pdf`)   * `pdf` - PDF file format. * `docx` - DOCX file format., allowed_scan_profiles: [map{id!: str, name: str, description: str, builtin!: str}] # [Scan profiles](https://help.probely.com/en/articles/1994962-built-in-scan-profiles-and-their-differences) allowed for the target., labels: [any] # Labels of the target., scanning_agent: any # Scanning agent of the target. Learn more on [how to scan internal applications with a scanning agent](https://help.probely.com/en/articles/4615595-how-to-scan-internal-applications-with-a-scanning-agent)., include_deduplicated_endpoints: bool # If true, scans include deduplicated endpoints.   If false or null, scans exclude deduplicated endpoints.   A deduplicated endpoint has the same simhash as another scanned endpoint., teams: [any], blackout_period: any # Time window during which scans are temporarily interrupted., fail_fast: bool # If true, scans fail on recoverable errors.   If false, scans continue on recoverable errors.   Defaults to true., login_video: str, changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes., incremental: bool # If true, on-demand scans can be incremental to narrow the coverage to new and updated URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., reduced_scope: bool # If true, on-demand scans can have reduced scope to narrow the coverage to defined URLs.     Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_incremental: bool # If true, scheduled scans can be incremental to narrow the coverage to new and updated URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_reduced_scope: bool # If true, scheduled scans can have reduced scope to narrow the coverage to defined URLs.      Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., crawl_sequences_only: bool # If true, on-demand scans can only crawl navigation sequences to narrow the coverage.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_crawl_sequences_only: bool # If true, scheduled scans can only crawl navigation sequences to narrow the coverage.     Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., cancel_scan_on_nav_seq_failure: bool # If true, scans are canceled if one of the navigation sequences fails. Defaults to false.}\n@returns(200) {id: str, site: map{id: str, name: str, desc: str?, url: str(uri), host: str, has_form_login: bool, form_login_url: str(uri), form_login_check_pattern: str, form_login: [map], logout_detection_enabled: bool, has_sequence_login: bool, has_basic_auth: bool, basic_auth: any, headers: [map], cookies: [map], whitelist: any, blacklist: any, changed: str(date-time), changed_by: any, auth_enabled: bool, logout_condition: str, check_session_url: str, has_otp: bool, otp_secret: str, otp_secret_is_sensitive: bool, otp_algorithm: str, otp_digits: int, otp_field: str, otp_submit: str, otp_login_sequence_totp_value: str, otp_type: str, otp_url: str, is_mtls_active: bool, is_signature_active: bool, is_mle_active: bool, postman_authentication_enabled: bool, postman_check_session_folder: str, stack: [any], verified: bool, verification_token: str, verification_date: str(date-time), verification_method: str, verification_last_error: str, api_scan_settings: any, openapi_check_session_method: str, openapi_check_session_media_type: str, openapi_check_session_expired_payload: str?}, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: map{id: str, name: str, description: str?, builtin: str}, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [map], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{id}/\n@desc Delete Target\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{id}/api-auth/\n@desc Clear API Authentication Configuration\n@required {id: str}\n@returns(200) {id: str, site: any, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: str, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [any], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}\n@errors {400, 401, 500}\n\n@endpoint GET /targets/{id}/average_fix_time/\n@desc Average Fix Time Graph\n@required {id: str}\n@returns(200) {results: map{<vuln name>: str}}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{id}/basic-auth/\n@desc Clear Basic Authentication Configuration\n@required {id: str}\n@returns(200) {id: str, site: any, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: str, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [any], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}\n@errors {400, 401, 500}\n\n@endpoint POST /targets/{id}/check_api_login/\n@desc Test Log In to API\n@required {id: str, token_parameter_location: str(cookie/header) # Where to send the parameter name with the authentication token and the prefix:  * `cookie` - Cookie * `header` - Header}\n@optional {media_type: str(application/json/application/x-www-form-urlencoded) # Format of the payload:  * `application/json` - The payload is in JSON format in the request body. * `application/x-www-form-urlencoded` - The payload is encoded in the request URL., api_login_url: str # URL to make the authentication request to the API.   The maximum length is 2048 characters., api_login_payload: str # Payload to send in the authentication request.   The maximum length is 4096 characters., api_login_payload_is_sensitive: bool, api_login_token_field: str # Field containing the authentication token in the response to the authentication request.   The maximum length is 256 characters., token_prefix: str # Prefix to add to the authentication token.   For example, \"Bearer\" or \"JWT\".   The maximum length is 16 characters., token_parameter_name: str # Parameter name to send the authentication token.   For example, \"Authorization\".   The maximum length is 256 characters.}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{id}/download_api_schema_file/\n@desc Download API Schema File\n@required {id: str}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{id}/form-login/\n@desc Clear Login Form Configuration.\n@required {id: str}\n@returns(200) {id: str, site: any, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: str, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [any], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}\n@errors {400, 401, 500}\n\n@endpoint GET /targets/{id}/get_postman_collection_folders/\n@desc List Postman Collection Folders\n@required {id: str}\n@returns(200) {id: str, site: any, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: str, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [any], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}\n\n@endpoint GET /targets/{id}/integrations/azure-devops/\n@desc Retrieve Azure DevOps Target Config\n@required {id: str}\n@returns(200) {project: map, work_item_type: str, auto_sync: bool, auto_sync_closed: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{id}/integrations/azure-devops/\n@desc Update Azure DevOps Target Config\n@required {id: str, project: map, work_item_type: str}\n@optional {auto_sync: bool # Sync findings to Azure DevOps, auto_sync_closed: bool=false}\n@returns(200) {project: map, work_item_type: str, auto_sync: bool, auto_sync_closed: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{id}/integrations/azure-devops/\n@desc Patch Azure DevOps Target Config\n@required {id: str}\n@optional {project: map, work_item_type: str, auto_sync: bool # Sync findings to Azure DevOps, auto_sync_closed: bool=false}\n@returns(200) {project: map, work_item_type: str, auto_sync: bool, auto_sync_closed: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{id}/integrations/azure-devops/\n@desc Delete Azure DevOps Target Config\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{id}/integrations/jira-cloud/\n@desc Retrieve Jira Cloud Target Config\n@required {id: str}\n@returns(200) {auto_sync: bool, auto_sync_closed: bool, project_id: str, issue_type_id: str, status_mapping: map?, priority_mapping: map?}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{id}/integrations/jira-cloud/\n@desc Update Jira Cloud Target Config\n@required {id: str, project_id: str, issue_type_id: str}\n@optional {auto_sync: bool, auto_sync_closed: bool=false, status_mapping: map, priority_mapping: map}\n@returns(200) {auto_sync: bool, auto_sync_closed: bool, project_id: str, issue_type_id: str, status_mapping: map?, priority_mapping: map?}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{id}/integrations/jira-cloud/\n@desc Partial Update of Jira Cloud Target Config\n@required {id: str}\n@optional {auto_sync: bool, auto_sync_closed: bool=false, project_id: str, issue_type_id: str, status_mapping: map, priority_mapping: map}\n@returns(200) {auto_sync: bool, auto_sync_closed: bool, project_id: str, issue_type_id: str, status_mapping: map?, priority_mapping: map?}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{id}/integrations/jira-cloud/\n@desc Delete Jira Cloud Target Config\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{id}/integrations/jira-server/\n@desc Retrieve Jira Server Target instance data\n@required {id: str}\n@returns(200) {auto_sync: bool, auto_sync_closed: bool, project_id: str, issue_type_id: str, status_mapping: map?, priority_mapping: map?}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{id}/integrations/jira-server/\n@desc Update a Jira Server Target instance\n@required {id: str, project_id: str, issue_type_id: str}\n@optional {auto_sync: bool, auto_sync_closed: bool=false, status_mapping: map, priority_mapping: map}\n@returns(200) {auto_sync: bool, auto_sync_closed: bool, project_id: str, issue_type_id: str, status_mapping: map?, priority_mapping: map?}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{id}/integrations/jira-server/\n@desc Partial Update a Jira Server Target instance\n@required {id: str}\n@optional {auto_sync: bool, auto_sync_closed: bool=false, project_id: str, issue_type_id: str, status_mapping: map, priority_mapping: map}\n@returns(200) {auto_sync: bool, auto_sync_closed: bool, project_id: str, issue_type_id: str, status_mapping: map?, priority_mapping: map?}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{id}/integrations/jira-server/\n@desc Delete a Jira Server Target instance\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{id}/integrations/slack/\n@desc Retrieve Slack Configuration\n@required {id: str}\n@returns(200) {webhook_url: str, notify_scan_started: bool, notify_scan_completed: bool, notify_critical_findings: bool, notify_high_findings: bool, notify_medium_findings: bool, notify_low_findings: bool, notify_finding_fixed: bool, notify_login_failed: bool, notify_retest_completed: bool, notify_navseq_failed: bool, notify_finding_pending_review: bool}\n@errors {400, 401, 403, 404, 500}\n\n@endpoint PUT /targets/{id}/integrations/slack/\n@desc Update Slack Configuration\n@required {id: str}\n@optional {webhook_url: str, notify_scan_started: bool, notify_scan_completed: bool, notify_critical_findings: bool, notify_high_findings: bool, notify_medium_findings: bool, notify_low_findings: bool, notify_finding_fixed: bool, notify_login_failed: bool=false, notify_retest_completed: bool, notify_navseq_failed: bool, notify_finding_pending_review: bool}\n@returns(200) {webhook_url: str, notify_scan_started: bool, notify_scan_completed: bool, notify_critical_findings: bool, notify_high_findings: bool, notify_medium_findings: bool, notify_low_findings: bool, notify_finding_fixed: bool, notify_login_failed: bool, notify_retest_completed: bool, notify_navseq_failed: bool, notify_finding_pending_review: bool}\n@errors {400, 401, 403, 404, 500}\n\n@endpoint PATCH /targets/{id}/integrations/slack/\n@desc Partial Update Slack Configuration\n@required {id: str}\n@optional {webhook_url: str, notify_scan_started: bool, notify_scan_completed: bool, notify_critical_findings: bool, notify_high_findings: bool, notify_medium_findings: bool, notify_low_findings: bool, notify_finding_fixed: bool, notify_login_failed: bool=false, notify_retest_completed: bool, notify_navseq_failed: bool, notify_finding_pending_review: bool}\n@returns(200) {webhook_url: str, notify_scan_started: bool, notify_scan_completed: bool, notify_critical_findings: bool, notify_high_findings: bool, notify_medium_findings: bool, notify_low_findings: bool, notify_finding_fixed: bool, notify_login_failed: bool, notify_retest_completed: bool, notify_navseq_failed: bool, notify_finding_pending_review: bool}\n@errors {400, 401, 403, 404, 500}\n\n@endpoint DELETE /targets/{id}/integrations/slack/\n@desc Delete Slack Configuration\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{id}/login-video/\n@desc Retrieve Login Video\n@required {id: str}\n@returns(200) Binary video file (e.g. mp4)\n@errors {404}\n\n@endpoint DELETE /targets/{id}/logout-detection/\n@desc Clear Logout Detection Configuration\n@required {id: str}\n@returns(200) {id: str, site: any, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: str, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [any], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{id}/mle/\n@desc Retrieve MLE Configuration for Target\n@required {id: str}\n@returns(200) {configured: bool, enabled: bool, key_id: str?, scope: [str]?}\n@errors {403, 404}\n\n@endpoint PUT /targets/{id}/mle/\n@desc Create or Update MLE Configuration for Target\n@required {id: str}\n@returns(200) {configured: bool, enabled: bool, key_id: str?, scope: [str]?}\n@errors {400, 403, 404}\n\n@endpoint PATCH /targets/{id}/mle/\n@desc Update MLE Configuration for Target\n@required {id: str}\n@optional {enabled: bool # Enable or disable MLE for the target., key_id: str # Update the Key ID for MLE configuration., scope: [str(uri)] # Update the list of URLs where MLE is applied.   Each URL must include the scheme and hostname   (e.g., [\"https://api.example.com/v1/payments\"]).}\n@returns(200) {configured: bool, enabled: bool, key_id: str?, scope: [str]?}\n@errors {400, 403, 404}\n\n@endpoint DELETE /targets/{id}/mle/\n@desc Delete MLE Configuration for Target\n@required {id: str}\n@returns(204) No response body\n@errors {400, 403, 404}\n\n@endpoint POST /targets/{id}/move-team/\n@desc Move Target to Another Team\n@required {id: str, teams: [map{id!: str}] # Identifier of the team to move the targets to.}\n@returns(200) {id: str, name: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{id}/mtls/\n@desc Retrieve mTLS Configuration for Target\n@required {id: str}\n@returns(200) {configured: bool, enabled: bool}\n@errors {403, 404}\n\n@endpoint PUT /targets/{id}/mtls/\n@desc Create or Update mTLS Configuration for Target\n@required {id: str}\n@returns(200) {configured: bool, enabled: bool}\n@errors {400, 403, 404}\n\n@endpoint PATCH /targets/{id}/mtls/\n@desc Update mTLS Configuration for Target\n@required {id: str}\n@optional {enabled: bool # Enable or disable mTLS for the target.}\n@returns(200) {configured: bool, enabled: bool}\n@errors {400, 403, 404}\n\n@endpoint DELETE /targets/{id}/mtls/\n@desc Delete mTLS Configuration for Target\n@required {id: str}\n@returns(204) No response body\n@errors {400, 403, 404}\n\n@endpoint DELETE /targets/{id}/otp/\n@desc Clear 2FA Configuration\n@required {id: str}\n@returns(200) {id: str, site: any, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: str, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [any], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}\n@errors {400, 401, 500}\n\n@endpoint POST /targets/{id}/otp/{otp_url_token}/\n@desc Send OTP\n@required {id: str, otp_url_token: str, otp: str}\n@returns(200) {detail: str}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{id}/otp/reset/\n@desc Reset OTP URL\n@required {id: str}\n@returns(200) {detail: map{otp_url: str}}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{id}/postman-authentication/\n@desc Retrieve Postman Authentication Settings\n@required {id: str}\n@returns(200) {postman_auth_folder: str, postman_auth_var_mapping: any?, postman_authentication_enabled: bool, postman_authentication_configured: str, fail_fast: bool}\n@errors {400, 401, 500}\n\n@endpoint PUT /targets/{id}/postman-authentication/\n@desc Update Postman Authentication Settings\n@required {id: str, postman_authentication_configured: str # Indicates if Postman authentication is configured for the target.}\n@optional {postman_auth_folder: str # Postman folder to use for the authentication request.   The maximum length is 255 characters., postman_auth_var_mapping: any # Mapping of Postman variables found in the postman folders, which would be used for the authentication request., postman_authentication_enabled: bool, fail_fast: bool=false}\n@returns(200) {postman_auth_folder: str, postman_auth_var_mapping: any?, postman_authentication_enabled: bool, postman_authentication_configured: str, fail_fast: bool}\n@errors {400, 401, 500}\n\n@endpoint PATCH /targets/{id}/postman-authentication/\n@desc Partial Update Postman Authentication Settings\n@required {id: str}\n@optional {postman_auth_folder: str # Postman folder to use for the authentication request.   The maximum length is 255 characters., postman_auth_var_mapping: any # Mapping of Postman variables found in the postman folders, which would be used for the authentication request., postman_authentication_enabled: bool, postman_authentication_configured: str # Indicates if Postman authentication is configured for the target., fail_fast: bool=false}\n@returns(200) {postman_auth_folder: str, postman_auth_var_mapping: any?, postman_authentication_enabled: bool, postman_authentication_configured: str, fail_fast: bool}\n@errors {400, 401, 500}\n\n@endpoint DELETE /targets/{id}/postman-authentication/\n@desc Delete Postman Authentication Settings\n@required {id: str}\n@returns(204) Postman authentication settings deleted.\n@errors {400, 401, 500}\n\n@endpoint GET /targets/{id}/risk_trend/\n@desc Risk Trend Graph\n@required {id: str}\n@returns(200) {start: str, stop: str, step: str, results: str}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{id}/scan_now/\n@desc Start a scan\n@required {id: str}\n@optional {ignore_blackout_period: bool # If true, the scan ignores the blackout period defined in the target settings., scan_profile: str # Scan profile to use.   Use the endpoint [List Scan Profiles](#tag/Scan-Profiles/operation/scan_profiles_list) to get all the available scan profiles.   If no scan profile is specified, the scan profile will be the one specified in the target settings., reduced_scopes: [map{id!: str, url!: str(uri), enabled: bool}] # Configuration to reduce the scope of the scan.}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{id}/sequence-login/\n@desc Clear Login Sequence Configuration\n@required {id: str}\n@returns(200) {id: str, site: any, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: str, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [any], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}\n@errors {400, 401, 500}\n\n@endpoint GET /targets/{id}/severity_trend/\n@desc Severity Trend Graph\n@required {id: str}\n@returns(200) {start: str, stop: str, step: str, results: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{id}/signature/\n@desc Retrieve Message Signature Configuration Status\n@required {id: str}\n@returns(200) {configured: bool, enabled: bool, signature_method: str?}\n@errors {400, 401, 403, 404, 500}\n\n@endpoint PUT /targets/{id}/signature/\n@desc Configure or Replace Message Signature\n@required {id: str, signature_method: str # The signature method to configure. Must be one of: xpay, http-v1, jwt-v1.}\n@returns(200) {configured: bool, enabled: bool, signature_method: str?}\n@errors {400, 401, 403, 404, 500}\n\n@endpoint PATCH /targets/{id}/signature/\n@desc Update Message Signature Configuration\n@required {id: str}\n@optional {enabled: bool # Enable or disable message signature for the target.}\n@returns(200) {configured: bool, enabled: bool, signature_method: str?}\n@errors {400, 401, 403, 404, 500}\n\n@endpoint DELETE /targets/{id}/signature/\n@desc Delete Message Signature Configuration\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 403, 404, 500}\n\n@endpoint GET /targets/{id}/top_vulns/\n@desc Top Vulnerabilities Graph\n@required {id: str}\n@returns(200) {results: [int]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{id}/upload_api_schema_file/\n@desc Upload API Schema File\n@required {id: str}\n@returns(201) {id: str, site: map{id: str, name: str, desc: str?, url: str(uri), host: str, has_form_login: bool, form_login_url: str(uri), form_login_check_pattern: str, form_login: [map], logout_detection_enabled: bool, has_sequence_login: bool, has_basic_auth: bool, basic_auth: any, headers: [map], cookies: [map], whitelist: any, blacklist: any, changed: str(date-time), changed_by: any, auth_enabled: bool, logout_condition: str, check_session_url: str, has_otp: bool, otp_secret: str, otp_secret_is_sensitive: bool, otp_algorithm: str, otp_digits: int, otp_field: str, otp_submit: str, otp_login_sequence_totp_value: str, otp_type: str, otp_url: str, is_mtls_active: bool, is_signature_active: bool, is_mle_active: bool, postman_authentication_enabled: bool, postman_check_session_folder: str, stack: [any], verified: bool, verification_token: str, verification_date: str(date-time), verification_method: str, verification_last_error: str, api_scan_settings: any, openapi_check_session_method: str, openapi_check_session_media_type: str, openapi_check_session_expired_payload: str?}, lows: int?, mediums: int?, highs: int?, criticals: int?, risk: int?, last_scan: any, running_scan: any, next_scan: any, assets: [map], scan_profile: map{id: str, name: str, description: str?, builtin: str}, type: str, unlimited: bool, report_type: str, report_fileformat: str, allowed_scan_profiles: [map], labels: [map], scanning_agent: any?, include_deduplicated_endpoints: bool?, teams: [map], blackout_period: any, fail_fast: bool, login_video: str, changed: str(date-time), changed_by: any, incremental: bool, reduced_scope: bool, schedule_incremental: bool, schedule_reduced_scope: bool, crawl_sequences_only: bool, schedule_crawl_sequences_only: bool, cancel_scan_on_nav_seq_failure: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{scope}/findings/{id}/integrations/azure-devops/\n@desc Retrieve Azure DevOps Finding Config\n@required {id: str, scope: str}\n@returns(200) {selective_sync: bool, work_item_id: int?}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{scope}/findings/{id}/integrations/azure-devops/\n@desc Update Azure DevOps Finding Config\n@required {id: str, scope: str, work_item_id: int}\n@optional {selective_sync: bool}\n@returns(200) {selective_sync: bool, work_item_id: int?}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{scope}/findings/{id}/integrations/azure-devops/\n@desc Patch Azure DevOps Finding Config\n@required {id: str, scope: str}\n@optional {selective_sync: bool, work_item_id: int}\n@returns(200) {selective_sync: bool, work_item_id: int?}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{scope}/findings/{id}/integrations/jira-cloud/\n@desc Retrieve Jira Cloud Finding Config\n@required {id: str, scope: str}\n@returns(200) {selective_sync: bool, issue_id: str, link: str, key: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{scope}/findings/{id}/integrations/jira-cloud/\n@desc Update Jira Cloud Finding Config\n@required {id: str, scope: str, issue_id: str, link: str}\n@optional {selective_sync: bool, key: str}\n@returns(200) {selective_sync: bool, issue_id: str, link: str, key: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{scope}/findings/{id}/integrations/jira-cloud/\n@desc Partial Update of Jira Cloud Finding Config\n@required {id: str, scope: str}\n@optional {selective_sync: bool, issue_id: str, link: str, key: str}\n@returns(200) {selective_sync: bool, issue_id: str, link: str, key: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{scope}/findings/{id}/integrations/jira-server/\n@desc Retrieve Jira Server Finding instance\n@required {id: str, scope: str}\n@returns(200) {selective_sync: bool, issue_id: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{scope}/findings/{id}/integrations/jira-server/\n@desc Update a Jira Server Finding instance\n@required {id: str, scope: str, issue_id: str}\n@optional {selective_sync: bool}\n@returns(200) {selective_sync: bool, issue_id: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{scope}/findings/{id}/integrations/jira-server/\n@desc Partial Update of Jira Server Finding instance\n@required {id: str, scope: str}\n@optional {selective_sync: bool, issue_id: str}\n@returns(200) {selective_sync: bool, issue_id: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/assets/\n@desc List Extra Hosts\n@required {target_id: str # Identifier of the target.}\n@optional {include: str # Extra fields to include in response:  * target - Add target to response under `target` key, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/assets/\n@desc Create Extra Host\n@required {target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., verified: bool # If true, the domain is verified. Read-only., verification_token: str(uuid) # Token used to verify the domain. Read-only., verification_date: str(date-time) # Date and time of the verification of the domain, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\". Read-only., verification_method: str(file/back_office/existing_domain/dns_txt/dns/dns_cname/meta_tag/whitelist/email/aws_route53/cloudflare/waved/akamai) # Method used in the verification of the domain: (Read-only)   * `file` -  Verifies the domain against a text file in the root directory of the website. Learn more in [this article](https://help.probely.com/en/articles/3289281-how-to-verify-the-ownership-of-a-target-using-a-txt-file).  * `back_office` -  Automatically set if manually verified in the back-office. Read-only.  * `existing_domain` -  Automatically set if the upper-level domain is verified. For example, \"my.example.com\" is automatically verified if \"example.com\" is verified. Read-only.  * `dns_txt` -  Verifies the domain against a TXT record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/3285635-how-to-verify-the-ownership-of-a-target-using-dns-txt-records).  * `dns` -  Same as `dns_txt`.  * `dns_cname` -  Verifies the domain against a CNAME record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/5642359-how-to-verify-the-ownership-of-a-target-using-dns-cname-records).  * `meta_tag` -  Verifies the domain against a meta tag in the index page of the website. Learn more in [this article](https://help.probely.com/en/articles/5642393-how-to-verify-the-ownership-of-a-target-using-a-meta-tag).  * `whitelist` -  Automatically verifies if the domain is in the whitelist  * `email` -  Automatically verifies a domain if the user's email is in the same domain as the target  * `aws_route53` -  Automatically verifies a domain if the hostname exists as an AWS Route53 Zone.  * `cloudflare` -  Automatically verifies a domain if the host name exists and is verified as a CloudflareZone.  * `waved` -  Automatically verifies a domain if there is a waver agreement.  * `akamai` -  Automatically verifies a domain if the host name exists as an AkamaiHost., verification_last_error: str # Error of the last verification of the domain. Read-only., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes., host: str}\n@optional {include: str # Extra fields to include in response:  * target - Add target to response under `target` key, skip_reachability_check: str # If false or not defined, makes a request to the target to try reach it and raises an error if it fails.   If true, skips this validation., name: str # Name of the target or extra host.   The maximum length is 255 characters., desc: str # Description of the target., stack: [any] # Technologies identified in the target during scans.   The scanning engine uses them to fine-tune vulnerability tests and improve the explanation of how to fix vulnerabilities., headers: [map{value_is_sensitive: bool, name!: str, value!: str, allow_testing: bool, authentication: bool, authentication_secondary: bool}] # Custom headers to send., cookies: [map{value_is_sensitive: bool, name!: str, value!: str, allow_testing: bool, authentication: bool, authentication_secondary: bool}] # Custom cookies to send., include: bool # If true, the extra host is in the scope of the scan.   If false, the extra host is not in the scope of the scan.   Defaults to true.}\n@returns(201) {id: str, name: str, desc: str?, stack: [any], verified: bool, verification_token: str(uuid), verification_date: str(date-time), verification_method: str, verification_last_error: str, changed: str(date-time), changed_by: any, headers: [map], cookies: [map], include: bool, host: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/assets/{id}/\n@desc Retrieve Extra Host\n@required {id: str, target_id: str # Identifier of the target.}\n@optional {include: str # Extra fields to include in response:  * target - Add target to response under `target` key}\n@returns(200) {id: str, name: str, desc: str?, stack: [any], verified: bool, verification_token: str(uuid), verification_date: str(date-time), verification_method: str, verification_last_error: str, changed: str(date-time), changed_by: any, headers: [map], cookies: [map], include: bool, host: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{target_id}/assets/{id}/\n@desc Update Extra Host\n@required {id: str, target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., verified: bool # If true, the domain is verified. Read-only., verification_token: str(uuid) # Token used to verify the domain. Read-only., verification_date: str(date-time) # Date and time of the verification of the domain, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\". Read-only., verification_method: str(file/back_office/existing_domain/dns_txt/dns/dns_cname/meta_tag/whitelist/email/aws_route53/cloudflare/waved/akamai) # Method used in the verification of the domain: (Read-only)   * `file` -  Verifies the domain against a text file in the root directory of the website. Learn more in [this article](https://help.probely.com/en/articles/3289281-how-to-verify-the-ownership-of-a-target-using-a-txt-file).  * `back_office` -  Automatically set if manually verified in the back-office. Read-only.  * `existing_domain` -  Automatically set if the upper-level domain is verified. For example, \"my.example.com\" is automatically verified if \"example.com\" is verified. Read-only.  * `dns_txt` -  Verifies the domain against a TXT record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/3285635-how-to-verify-the-ownership-of-a-target-using-dns-txt-records).  * `dns` -  Same as `dns_txt`.  * `dns_cname` -  Verifies the domain against a CNAME record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/5642359-how-to-verify-the-ownership-of-a-target-using-dns-cname-records).  * `meta_tag` -  Verifies the domain against a meta tag in the index page of the website. Learn more in [this article](https://help.probely.com/en/articles/5642393-how-to-verify-the-ownership-of-a-target-using-a-meta-tag).  * `whitelist` -  Automatically verifies if the domain is in the whitelist  * `email` -  Automatically verifies a domain if the user's email is in the same domain as the target  * `aws_route53` -  Automatically verifies a domain if the hostname exists as an AWS Route53 Zone.  * `cloudflare` -  Automatically verifies a domain if the host name exists and is verified as a CloudflareZone.  * `waved` -  Automatically verifies a domain if there is a waver agreement.  * `akamai` -  Automatically verifies a domain if the host name exists as an AkamaiHost., verification_last_error: str # Error of the last verification of the domain. Read-only., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes., host: str}\n@optional {include: str # Extra fields to include in response:  * target - Add target to response under `target` key, name: str # Name of the target or extra host.   The maximum length is 255 characters., desc: str # Description of the target., stack: [any] # Technologies identified in the target during scans.   The scanning engine uses them to fine-tune vulnerability tests and improve the explanation of how to fix vulnerabilities., headers: [map{value_is_sensitive: bool, name!: str, value!: str, allow_testing: bool, authentication: bool, authentication_secondary: bool}] # Custom headers to send., cookies: [map{value_is_sensitive: bool, name!: str, value!: str, allow_testing: bool, authentication: bool, authentication_secondary: bool}] # Custom cookies to send., include: bool # If true, the extra host is in the scope of the scan.   If false, the extra host is not in the scope of the scan.   Defaults to true.}\n@returns(200) {id: str, name: str, desc: str?, stack: [any], verified: bool, verification_token: str(uuid), verification_date: str(date-time), verification_method: str, verification_last_error: str, changed: str(date-time), changed_by: any, headers: [map], cookies: [map], include: bool, host: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{target_id}/assets/{id}/\n@desc Partial Update Extra Host\n@required {id: str, target_id: str # Identifier of the target.}\n@optional {include: str # Extra fields to include in response:  * target - Add target to response under `target` key, id: str # A unique Base58 value identifying this object., name: str # Name of the target or extra host.   The maximum length is 255 characters., desc: str # Description of the target., stack: [any] # Technologies identified in the target during scans.   The scanning engine uses them to fine-tune vulnerability tests and improve the explanation of how to fix vulnerabilities., verified: bool # If true, the domain is verified. Read-only., verification_token: str(uuid) # Token used to verify the domain. Read-only., verification_date: str(date-time) # Date and time of the verification of the domain, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\". Read-only., verification_method: str(file/back_office/existing_domain/dns_txt/dns/dns_cname/meta_tag/whitelist/email/aws_route53/cloudflare/waved/akamai) # Method used in the verification of the domain: (Read-only)   * `file` -  Verifies the domain against a text file in the root directory of the website. Learn more in [this article](https://help.probely.com/en/articles/3289281-how-to-verify-the-ownership-of-a-target-using-a-txt-file).  * `back_office` -  Automatically set if manually verified in the back-office. Read-only.  * `existing_domain` -  Automatically set if the upper-level domain is verified. For example, \"my.example.com\" is automatically verified if \"example.com\" is verified. Read-only.  * `dns_txt` -  Verifies the domain against a TXT record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/3285635-how-to-verify-the-ownership-of-a-target-using-dns-txt-records).  * `dns` -  Same as `dns_txt`.  * `dns_cname` -  Verifies the domain against a CNAME record in the Domain Name System (DNS). Learn more in [this article](https://help.probely.com/en/articles/5642359-how-to-verify-the-ownership-of-a-target-using-dns-cname-records).  * `meta_tag` -  Verifies the domain against a meta tag in the index page of the website. Learn more in [this article](https://help.probely.com/en/articles/5642393-how-to-verify-the-ownership-of-a-target-using-a-meta-tag).  * `whitelist` -  Automatically verifies if the domain is in the whitelist  * `email` -  Automatically verifies a domain if the user's email is in the same domain as the target  * `aws_route53` -  Automatically verifies a domain if the hostname exists as an AWS Route53 Zone.  * `cloudflare` -  Automatically verifies a domain if the host name exists and is verified as a CloudflareZone.  * `waved` -  Automatically verifies a domain if there is a waver agreement.  * `akamai` -  Automatically verifies a domain if the host name exists as an AkamaiHost., verification_last_error: str # Error of the last verification of the domain. Read-only., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes., headers: [map{value_is_sensitive: bool, name!: str, value!: str, allow_testing: bool, authentication: bool, authentication_secondary: bool}] # Custom headers to send., cookies: [map{value_is_sensitive: bool, name!: str, value!: str, allow_testing: bool, authentication: bool, authentication_secondary: bool}] # Custom cookies to send., include: bool # If true, the extra host is in the scope of the scan.   If false, the extra host is not in the scope of the scan.   Defaults to true., host: str}\n@returns(200) {id: str, name: str, desc: str?, stack: [any], verified: bool, verification_token: str(uuid), verification_date: str(date-time), verification_method: str, verification_last_error: str, changed: str(date-time), changed_by: any, headers: [map], cookies: [map], include: bool, host: str}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{target_id}/assets/{id}/\n@desc Delete Extra Host\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/events/\n@desc List Target's Events\n@required {target_id: str # Identifier of the target.}\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/events/{id}/\n@desc Retrieve Target's Event\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(200) {id: str, event_type: str, occurred_at: str(date-time), object_type: str, content: str, webhooks: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/findings/\n@desc List Target's Findings\n@required {target_id: str # Identifier of the target.}\n@optional {approval_date: str(date) # Date of when the accepted vulnerability was approved.   For example, \"2023-08-09\", assignee: [str] # A unique Base58 value identifying this object., changed_after: str(date-time) # Date and time of when the vulnerability was changed, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", changed_before: str(date-time) # Date and time of when the vulnerability was changed, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", exclude: [str] # Fields to exclude from the response., expiration_date: str(date) # Date of when the accepted vulnerability expires before changing back to not fixed.   For example, \"2023-08-09\", include: str # Extra fields to include in response:  * last_found_scan - Add last_found_scan to response under `last_found_scan` key, label: [str] # A unique Base58 value identifying this object., label_logical_operator: str(and/or) # Logical operator to apply between labels:   (Defaults to `or`)   * `and` - and * `or` - or, lastfound_after: str(date-time) # Date and time of when the vulnerability was last found to filter results, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", lastfound_before: str(date-time) # Date and time of when the vulnerability was last found to filter results, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", length: int # Number of results to return per page., new: bool, ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., review_status: [str] # Some findings we're unsure are valid and need a manual validation step.  * `notrequired` - not required * `pending` - pending review * `rejected` - rejected after review * `accepted` - accepted after review, scan: [str] # A unique Base58 value identifying this object., search: str # A search term., severity: [int] # Severity of the vulnerability finding:     * `10` - low * `20` - medium * `30` - high * `40` - critical, snyk_sast: bool, state: [str] # State of the vulnerability finding:   (Read more about [the meaning of vulnerability findings states](https://help.probely.com/en/articles/6673828-what-is-the-meaning-of-a-finding-s-state))   * `notfixed` - Not Fixed * `invalid` - Invalid * `accepted` - Accepted * `fixed` - Fixed * `retesting` - Re-testing}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/findings/{finding_id}/logs/\n@desc List Findings Activity\n@required {finding_id: str # Finding ID, target_id: str # Identifier of the target.}\n@optional {length: int # Number of results to return per page., message_type: [str] # * `found` - Found * `invalid` - Invalid * `accepted` - Accepted Risk * `fixed` - Fixed * `note` - Note * `update` - Update * `assign` - Assign * `retest` - Retest * `retest_failed` - Retest Failed, ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint GET /targets/{target_id}/findings/{id}/\n@desc Retrieve Target's Finding\n@required {id: int, target_id: str # Identifier of the target.}\n@optional {include: str # Extra fields to include in response:  * last_found_scan - Add last_found_scan to response under `last_found_scan` key}\n@returns(200) {id: str, target: any, scans: str, labels: [map], fix: str, requests: [map], evidence: str, extra: str, definition: map{id: str, name: str, desc: str?, cwe_id: str?, cwe_name: str?}, url: str, path: str, method: str, insertion_point: str, parameter: str, value: str?, params: str, assignee: map{id: str, email: str(email), name: str}, state: str, severity: int, cvss_score: num(double)?, cvss_vector: str, last_found: str(date-time), retesting: bool, new: bool, review_status: str, review_reason: str, created_at: str(date-time)?, changed: str(date-time), changed_by: any, comment: str?, change_reason: str, expiration_date: str(date)?, approver_name: str, approval_date: str(date)?}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{target_id}/findings/{id}/\n@desc Update Target's Finding\n@required {id: int, target_id: str # Identifier of the target., id: str # Global ID in the format: -, target: any, scans: str # Scans that originated the vulnerability finding., labels: [map{id!: str, name!: str, color: str, changed_by!: any, changed!: str(date-time)}], fix: str # Description of how to fix the vulnerability., requests: [map{request: str, response: str}] # Pairs of requests and responses of the vulnerability finding., evidence: str # Evidence with proof of the vulnerability finding., extra: str # Extra details about the vulnerability finding., definition: map{id!: str, name: str, desc: str, cwe_id: str, cwe_name: str}, url: str # URL of the vulnerability finding. For example, \"http://www.example.com/user/show-details\". The maximum length is 66000 characters., path: str # URL path of the vulnerability finding. For example, \"user/show-details\"., method: str(get/post/trace/options/put/delete) # HTTP method used in the request:  * `get` - GET * `post` - POST * `trace` - TRACE * `options` - OPTIONS * `put` - PUT * `delete` - DELETE, insertion_point: str(cookie/parameter/arbitrary_url_param/header/url_folder/url_filename/json_parameter/request_body/multipart_parameter/graphql_parameter/non_standard_parameter) # Insertion point of the parameter:  * `cookie` - Cookie * `parameter` - Parameter * `arbitrary_url_param` - Parameter * `header` - Header * `url_folder` - URL Path * `url_filename` - URL Path * `json_parameter` - JSON Parameter * `request_body` - Request Body * `multipart_parameter` - Multipart Parameter * `graphql_parameter` - GraphQL Parameter * `non_standard_parameter` - Non Standard Parameter, parameter: str # Name of the inserted parameter.   The maximum length is 1024 characters., value: str # Value of the inserted parameter., params: str # Query parameters of the vulnerability finding, in JSON format. For example, \"{'name': ['Joe Smith'], 'phone': ['+919999999999', '+628888888888']}\", assignee: map{id!: str, email: str(email), name!: str}, cvss_score: num(double) # Score of the vulnerability finding according to the Common Vulnerability Scoring System (CVSS)., cvss_vector: str # Vector with the metrics of the score of the vulnerability finding according to the Common Vulnerability Scoring System (CVSS)., retesting: bool # If true, the vulnerability will be retested.   If, after the retest, the vulnerability is no longer found, the vulnerability finding is marked as fixed. Otherwise, it is marked as not fixed., new: bool # If true, this is a newly found vulnerability. If false, this vulnerability has been found in previous scans., created_at: str(date-time) # Timestamp of the Finding's creation., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@optional {state: str(notfixed/invalid/accepted/fixed) # State of the vulnerability finding:   (Read more about [the meaning of vulnerability findings states](https://help.probely.com/en/articles/6673828-what-is-the-meaning-of-a-finding-s-state))   * `notfixed` - Not Fixed * `invalid` - Invalid * `accepted` - Accepted * `fixed` - Fixed, severity: int(10/20/30/40) # Severity of the vulnerability finding:     * `10` - low * `20` - medium * `30` - high * `40` - critical, last_found: str(date-time) # Date and time of when the vulnerability was last found, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", review_status: str(notrequired/pending/rejected/accepted/) # Some findings we're unsure are valid and need a manual validation step.  * `notrequired` - not required * `pending` - pending review * `rejected` - rejected after review * `accepted` - accepted after review, review_reason: str # User's reason for finding's review., comment: str # Comment on the object., change_reason: str # Reason for changing the Finding state to 'invalid' or 'accepted'., expiration_date: str(date) # Expiration date of the acceptance. Required if the account setting 'Require expiration date on acceptance' is set., approver_name: str # Name of the person or entity approving the acceptance. Required if the account setting 'Require approval name on acceptance' is set., approval_date: str(date) # Date of the approval of the acceptance. Required if the account setting 'Require approval date on acceptance' is set.}\n@returns(200) {id: str, target: any, scans: str, labels: [map], fix: str, requests: [map], evidence: str, extra: str, definition: map{id: str, name: str, desc: str?, cwe_id: str?, cwe_name: str?}, url: str, path: str, method: str, insertion_point: str, parameter: str, value: str?, params: str, assignee: map{id: str, email: str(email), name: str}, state: str, severity: int, cvss_score: num(double)?, cvss_vector: str, last_found: str(date-time), retesting: bool, new: bool, review_status: str, review_reason: str, created_at: str(date-time)?, changed: str(date-time), changed_by: any, comment: str?, change_reason: str, expiration_date: str(date)?, approver_name: str, approval_date: str(date)?}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{target_id}/findings/{id}/\n@desc Partial Update Target's Finding\n@required {id: int, target_id: str # Identifier of the target.}\n@optional {id: int, target: str # Target scanned to find vulnerabilities., scans: str # Scans that originated the vulnerability finding., labels: [any] # Labels of the vulnerability finding., fix: str # Description of how to fix the vulnerability., requests: [map{request: str, response: str}] # Pairs of requests and responses of the vulnerability finding., evidence: str # Evidence with proof of the vulnerability finding., extra: str # Extra details about the vulnerability finding., definition: str # Definition of the vulnerability., url: str # URL of the vulnerability finding. For example, \"http://www.example.com/user/show-details\". The maximum length is 66000 characters., path: str # URL path of the vulnerability finding. For example, \"user/show-details\"., method: str(get/post/trace/options/put/delete) # HTTP method used in the request:  * `get` - GET * `post` - POST * `trace` - TRACE * `options` - OPTIONS * `put` - PUT * `delete` - DELETE, insertion_point: str(cookie/parameter/arbitrary_url_param/header/url_folder/url_filename/json_parameter/request_body/multipart_parameter/graphql_parameter/non_standard_parameter) # Insertion point of the parameter:  * `cookie` - Cookie * `parameter` - Parameter * `arbitrary_url_param` - Parameter * `header` - Header * `url_folder` - URL Path * `url_filename` - URL Path * `json_parameter` - JSON Parameter * `request_body` - Request Body * `multipart_parameter` - Multipart Parameter * `graphql_parameter` - GraphQL Parameter * `non_standard_parameter` - Non Standard Parameter, parameter: str # Name of the inserted parameter.   The maximum length is 1024 characters., value: str # Value of the inserted parameter., params: str # Query parameters of the vulnerability finding, in JSON format. For example, \"{'name': ['Joe Smith'], 'phone': ['+919999999999', '+628888888888']}\", assignee: str # User who is assigned to fix the vulnerability., state: str(notfixed/invalid/accepted/fixed) # State of the vulnerability finding:   (Read more about [the meaning of vulnerability findings states](https://help.probely.com/en/articles/6673828-what-is-the-meaning-of-a-finding-s-state))   * `notfixed` - Not Fixed * `invalid` - Invalid * `accepted` - Accepted * `fixed` - Fixed, severity: int(10/20/30/40) # Severity of the vulnerability finding:     * `10` - low * `20` - medium * `30` - high * `40` - critical, cvss_score: num(double) # Score of the vulnerability finding according to the Common Vulnerability Scoring System (CVSS)., cvss_vector: str # Vector with the metrics of the score of the vulnerability finding according to the Common Vulnerability Scoring System (CVSS)., last_found: str(date-time) # Date and time of when the vulnerability was last found, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", retesting: bool # If true, the vulnerability will be retested.   If, after the retest, the vulnerability is no longer found, the vulnerability finding is marked as fixed. Otherwise, it is marked as not fixed., new: bool # If true, this is a newly found vulnerability. If false, this vulnerability has been found in previous scans., review_status: str(notrequired/pending/rejected/accepted/) # Some findings we're unsure are valid and need a manual validation step.  * `notrequired` - not required * `pending` - pending review * `rejected` - rejected after review * `accepted` - accepted after review, review_reason: str # User's reason for finding's review., created_at: str(date-time) # Timestamp of the Finding's creation., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes., comment: str # Comment on the object., change_reason: str # Reason for changing the Finding state to 'invalid' or 'accepted'., expiration_date: str(date) # Expiration date of the acceptance. Required if the account setting 'Require expiration date on acceptance' is set., approver_name: str # Name of the person or entity approving the acceptance. Required if the account setting 'Require approval name on acceptance' is set., approval_date: str(date) # Date of the approval of the acceptance. Required if the account setting 'Require approval date on acceptance' is set.}\n@returns(200) {id: str, target: any, scans: str, labels: [map], fix: str, requests: [map], evidence: str, extra: str, definition: map{id: str, name: str, desc: str?, cwe_id: str?, cwe_name: str?}, url: str, path: str, method: str, insertion_point: str, parameter: str, value: str?, params: str, assignee: map{id: str, email: str(email), name: str}, state: str, severity: int, cvss_score: num(double)?, cvss_vector: str, last_found: str(date-time), retesting: bool, new: bool, review_status: str, review_reason: str, created_at: str(date-time)?, changed: str(date-time), changed_by: any, comment: str?, change_reason: str, expiration_date: str(date)?, approver_name: str, approval_date: str(date)?}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/findings/{id}/retest/\n@desc Retest Target's Finding\n@required {id: int, target_id: str # Identifier of the target.}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/findings/bulk/report/\n@desc Create Target's Findings Report\n@required {target_id: str # Identifier of the target., ids: [map{target_id!: str, finding_id!: int}] # List of composed keys identifying findings of targets.}\n@returns(200) {token: str}\n@errors {400, 401, 404, 500}\n@example_request {\"ids\":[1,5,23]}\n\n@endpoint POST /targets/{target_id}/findings/bulk/retest/\n@desc Bulk Retest Target's Findings\n@required {target_id: str # Identifier of the target., ids: [str] # List of object IDs.}\n@optional {ignore_blackout_period: bool # If true, the scan ignores the blackout period defined in the target settings., scan_profile: str # Scan profile to use.   Use the endpoint [List Scan Profiles](#tag/Scan-Profiles/operation/scan_profiles_list) to get all the available scan profiles.   If no scan profile is specified, the scan profile will be the one specified in the target settings., reduced_scopes: [map{id!: str, url!: str(uri), enabled: bool}] # Configuration to reduce the scope of the scan.}\n@returns(200) {ids: [str]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/findings/bulk/update/\n@desc Bulk Update Target's Findings\n@required {target_id: str # Identifier of the target., ids: [str] # List of object IDs., id: int, target: str # Target scanned to find vulnerabilities., scans: str # Scans that originated the vulnerability finding., fix: str # Description of how to fix the vulnerability., requests: [map{request: str, response: str}] # Pairs of requests and responses of the vulnerability finding., evidence: str # Evidence with proof of the vulnerability finding., extra: str # Extra details about the vulnerability finding., definition: str # Definition of the vulnerability., url: str # URL of the vulnerability finding. For example, \"http://www.example.com/user/show-details\". The maximum length is 66000 characters., path: str # URL path of the vulnerability finding. For example, \"user/show-details\"., method: str(get/post/trace/options/put/delete) # HTTP method used in the request:  * `get` - GET * `post` - POST * `trace` - TRACE * `options` - OPTIONS * `put` - PUT * `delete` - DELETE, insertion_point: str(cookie/parameter/arbitrary_url_param/header/url_folder/url_filename/json_parameter/request_body/multipart_parameter/graphql_parameter/non_standard_parameter) # Insertion point of the parameter:  * `cookie` - Cookie * `parameter` - Parameter * `arbitrary_url_param` - Parameter * `header` - Header * `url_folder` - URL Path * `url_filename` - URL Path * `json_parameter` - JSON Parameter * `request_body` - Request Body * `multipart_parameter` - Multipart Parameter * `graphql_parameter` - GraphQL Parameter * `non_standard_parameter` - Non Standard Parameter, parameter: str # Name of the inserted parameter.   The maximum length is 1024 characters., value: str # Value of the inserted parameter., params: str # Query parameters of the vulnerability finding, in JSON format. For example, \"{'name': ['Joe Smith'], 'phone': ['+919999999999', '+628888888888']}\", cvss_score: num(double) # Score of the vulnerability finding according to the Common Vulnerability Scoring System (CVSS)., cvss_vector: str # Vector with the metrics of the score of the vulnerability finding according to the Common Vulnerability Scoring System (CVSS)., retesting: bool # If true, the vulnerability will be retested.   If, after the retest, the vulnerability is no longer found, the vulnerability finding is marked as fixed. Otherwise, it is marked as not fixed., new: bool # If true, this is a newly found vulnerability. If false, this vulnerability has been found in previous scans., created_at: str(date-time) # Timestamp of the Finding's creation., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@optional {labels: [any] # Labels of the vulnerability finding., assignee: str # User who is assigned to fix the vulnerability., state: str(notfixed/invalid/accepted/fixed) # State of the vulnerability finding:   (Read more about [the meaning of vulnerability findings states](https://help.probely.com/en/articles/6673828-what-is-the-meaning-of-a-finding-s-state))   * `notfixed` - Not Fixed * `invalid` - Invalid * `accepted` - Accepted * `fixed` - Fixed, severity: int(10/20/30/40) # Severity of the vulnerability finding:     * `10` - low * `20` - medium * `30` - high * `40` - critical, last_found: str(date-time) # Date and time of when the vulnerability was last found, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", review_status: str(notrequired/pending/rejected/accepted/) # Some findings we're unsure are valid and need a manual validation step.  * `notrequired` - not required * `pending` - pending review * `rejected` - rejected after review * `accepted` - accepted after review, review_reason: str # User's reason for finding's review., comment: str # Comment on the object., change_reason: str # Reason for changing the Finding state to 'invalid' or 'accepted'., expiration_date: str(date) # Expiration date of the acceptance. Required if the account setting 'Require expiration date on acceptance' is set., approver_name: str # Name of the person or entity approving the acceptance. Required if the account setting 'Require approval name on acceptance' is set., approval_date: str(date) # Date of the approval of the acceptance. Required if the account setting 'Require approval date on acceptance' is set.}\n@returns(200) {ids: [str]}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/findings/report/\n@desc Retrieve Target's Findings Report\n@required {target_id: str}\n@returns(200) {id: str, name: str, date_time: str(date-time)?, recurrence: str, timezone: str, on_day_of_week: bool, scheduled_day_of_week: int?, week_index: str?, filters: map{severity: [int], state: [str], assignee: [str], label: [str], new: bool?, target_label: [str], target: [str], team: [str], search: str, assessment: str, findings: [str], report_type: str, report_fileformat: str, finding_target_ids: [map]}, report_type: str, report_fileformat: str, enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{target_id}/integrations/snyk-sast/code-projects/{id}/\n@desc Call auditlog tasks if applicable to query.\n@required {id: str, target_id: str(uuid)}\n@returns(204) No response body\n\n@endpoint GET /targets/{target_id}/logout/\n@desc List Logout Detectors\n@required {target_id: str # Identifier of the target.}\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/logout/\n@desc Create Logout Detector\n@required {target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., value: str # The value of the element for the logout detection.   The maximum length is 2048 characters.}\n@optional {type: str(text/url/sel/status_code/body_contains/header) # Type of element for the logout detection:  * `text` - A string of text that exists after a logout. * `url` - A redirect to a URL that occurs after a logout. * `sel` - A CSS selector that exists after a logout. * `status_code` - An HTTP status code returned after a logout. * `body_contains` - A string of text that exists in the body after a logout. * `header` - A specific header returned after a logout.}\n@returns(200) {id: str, type: str, value: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/logout/{id}/\n@desc Retrieve Logout Detector\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(200) {id: str, type: str, value: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{target_id}/logout/{id}/\n@desc Update Logout Detector\n@required {id: str, target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., value: str # The value of the element for the logout detection.   The maximum length is 2048 characters.}\n@optional {type: str(text/url/sel/status_code/body_contains/header) # Type of element for the logout detection:  * `text` - A string of text that exists after a logout. * `url` - A redirect to a URL that occurs after a logout. * `sel` - A CSS selector that exists after a logout. * `status_code` - An HTTP status code returned after a logout. * `body_contains` - A string of text that exists in the body after a logout. * `header` - A specific header returned after a logout.}\n@returns(200) {id: str, type: str, value: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{target_id}/logout/{id}/\n@desc Partial Update Logout Detector\n@required {id: str, target_id: str # Identifier of the target.}\n@optional {id: str # A unique Base58 value identifying this object., type: str(text/url/sel/status_code/body_contains/header) # Type of element for the logout detection:  * `text` - A string of text that exists after a logout. * `url` - A redirect to a URL that occurs after a logout. * `sel` - A CSS selector that exists after a logout. * `status_code` - An HTTP status code returned after a logout. * `body_contains` - A string of text that exists in the body after a logout. * `header` - A specific header returned after a logout., value: str # The value of the element for the logout detection.   The maximum length is 2048 characters.}\n@returns(200) {id: str, type: str, value: str}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{target_id}/logout/{id}/\n@desc Delete Logout Detector\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/reduced-scopes/\n@desc List Reduced Scopes\n@required {target_id: str # Identifier of the target.}\n@optional {enabled: bool, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/reduced-scopes/\n@desc Create Reduced Scope\n@required {target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., url: str(uri) # URL to scan. The maximum length is 2048 characters.}\n@optional {enabled: bool}\n@returns(201) {id: str, url: str(uri), enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/reduced-scopes/{id}/\n@desc Retrieve Reduced Scope\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(200) {id: str, url: str(uri), enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{target_id}/reduced-scopes/{id}/\n@desc Update Reduced Scope\n@required {id: str, target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., url: str(uri) # URL to scan. The maximum length is 2048 characters.}\n@optional {enabled: bool}\n@returns(200) {id: str, url: str(uri), enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{target_id}/reduced-scopes/{id}/\n@desc Partial Update Reduced Scope\n@required {id: str, target_id: str # Identifier of the target.}\n@optional {id: str # A unique Base58 value identifying this object., url: str(uri) # URL to scan. The maximum length is 2048 characters., enabled: bool}\n@returns(200) {id: str, url: str(uri), enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{target_id}/reduced-scopes/{id}/\n@desc Delete Reduced Scope\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/scan/\n@desc Retrieve Target's Current Scan\n@required {target_id: str # Identifier of the target.}\n@optional {exclude: [str] # Fields to exclude from the response., length: int # Number of results to return per page., page: int # A page number within the paginated result set.}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/scan/cancel/\n@desc Cancel Target's Current Scan\n@required {target_id: str # Identifier of the target.}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/scan/pause/\n@desc Pause Target's Current Scan\n@required {target_id: str # Identifier of the target.}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/scan/resume/\n@desc Resume Target's Current Scan\n@required {target_id: str # Identifier of the target.}\n@optional {ignore_blackout_period: bool # If true, the scan ignores the blackout period defined in the target settings.}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/scans/\n@desc List Target's Scans\n@required {target_id: str # Identifier of the target.}\n@optional {completed__gt: str(date-time) # Date and time from which scans completed (exclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., completed__gte: str(date-time) # Date and time from which scans completed (inclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., completed__lt: str(date-time) # Date and time until which the scans completed (exclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., completed__lte: str(date-time) # Date and time until which the scans completed (inclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., label: [str] # A unique Base58 value identifying this object., length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., partial: bool, scan_profile: [str] # Identifier of the scan profile to filter results., search: str # A search term., started__gt: str(date-time) # Date and time from which the scans started (exclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., started__gte: str(date-time) # Date and time from which the scans started (inclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., started__lt: str(date-time) # Date and time from which the scans started (exclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., started__lte: str(date-time) # Date and time until which the scans started (inclusively) to filter results, in ISO 8601 UTC format.   For example, “2023-08-09T13:27:43.8208302\"., started_after: str(date-time) # Date and time of when the scan started to filter results, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", started_before: str(date-time) # Date and time of when the scan started to filter results, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\", status: [str] # Status of the scan:  * `canceled` - Canceled * `canceling` - Canceling * `completed` - Completed * `completed_with_errors` - Completed with errors - DEPRECATED * `failed` - Failed * `paused` - Paused * `pausing` - Pausing * `queued` - Queued * `resuming` - Resuming * `started` - Started * `under_review` - Under Review * `finishing_up` - Finishing up, target: [str] # Scan target., team: [str] # A unique Base58 value identifying this object., warning: [str] # Identifiers of warnings to filter results.   Multiple choices are possible by repeating the query_param.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/scans/{id}/\n@desc Retrieve Scan\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{target_id}/scans/{id}/\n@desc Update Scan\n@required {id: str, target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., target: any, status: str(canceled/canceling/completed/completed_with_errors/failed/paused/pausing/queued/resuming/started/under_review/finishing_up) # Status of the scan:  * `canceled` - Canceled * `canceling` - Canceling * `completed` - Completed * `completed_with_errors` - Completed with errors - DEPRECATED * `failed` - Failed * `paused` - Paused * `pausing` - Pausing * `queued` - Queued * `resuming` - Resuming * `started` - Started * `under_review` - Under Review * `finishing_up` - Finishing up, started: str(date-time) # Date and time of when the scan started., completed: str(date-time) # Date and time of when the scan was completed., scan_profile: str # Identifier of the scan profile., lows: int # Number of vulnerability findings with low severity., mediums: int # Number of vulnerability findings with medium severity., highs: int # Number of vulnerability findings with high severity., criticals: int # Number of vulnerability findings with critical severity., created: str(date-time), unlimited: bool # If true, the scan had unlimited credits. If false, the scan consumed credits. Learn more about [unlimited scans vs scans with credits](https://help.probely.com/en/articles/6845523-unlimited-scans-vs-scans-with-credits)., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes., stack: [any] # Technologies found in the scan. The scanning engine uses them to fine-tune vulnerability tests and texts about how to fix the vulnerabilities., crawler: any # Information on the crawler execution., fingerprinter: any # Information on the fingerprinter execution., scanner: any # Information on the scanner execution., target_options: any # Options of the target for the scan., incremental: bool # If true, the scan was incremental to narrow the coverage to new and updated URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant)., reduced_scope: bool # If true, the scan used a reduced scope to narrow the coverage to defined URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant)., crawl_sequences_only: bool # If true, the scan only crawled navigation sequences to narrow the coverage.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant)., ignore_blackout_period: bool # If true, the scan ignored the blackout period defined in the target settings., sast_job_id: str, sast_job_status: str, login_video: str, warnings: [map{id!: str, name!: str, message: str, detail: any}] # Scan Warnings list., scheduled: bool # Scan started by scheduling.}\n@optional {has_sequence_navigation: bool # If true, the scan includes sequence navigations.   Learn more about [How to set up Navigation Sequences?](https://help.probely.com/en/articles/6657065-how-to-set-up-navigation-sequences)., runtime: str # Total time the scan has been actively running.   For example, \"02 00:00:10.123456\"., duration: str # Total time from the start of the scan to its completion, or to the moment of the query, if not completed.  For example, \"02 00:00:10.123456\"., user_data: str # Store scan metadata.}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 404, 500}\n@example_request {\"id\":\"MyThjkIs2Wca\",\"target\":{\"id\":\"MyThjkIs2Wca\",\"name\":\"\",\"site\":{\"id\":\"MyThjkIs2Wca\",\"name\":\"[PwC] Example Site\",\"desc\":\"\",\"url\":\"https://www.example.pt/\",\"host\":\"www.example.pt\",\"has_form_login\":false,\"form_login_url\":\"https://example.com\",\"form_login_check_pattern\":\"\",\"form_login\":[{\"name\":\"username\",\"value\":\"testuser1\"},{\"name\":\"password\",\"value\":\"testuserpassword\"}],\"logout_detection_enabled\":false,\"has_sequence_login\":true,\"has_sequence_navigation\":false,\"has_basic_auth\":false,\"basic_auth\":{\"username\":\"\",\"password\":\"\"},\"headers\":[],\"cookies\":[],\"whitelist\":[],\"blacklist\":[],\"changed\":\"2023-10-20T20:44:12.556924Z\",\"changed_by\":{\"id\":\"-sDw5jjjtJ3Y\",\"email\":\"testuser@example.pt\",\"name\":\"testuser\"},\"auth_enabled\":false,\"logout_condition\":\"any\",\"check_session_url\":\"\",\"has_otp\":false,\"otp_secret\":\"\",\"otp_algorithm\":\"SHA1\",\"otp_digits\":6,\"otp_field\":\"\",\"otp_submit\":\"\",\"otp_login_sequence_totp_value\":\"\",\"otp_type\":\"totp\",\"otp_url\":\"\",\"stack\":[{\"id\":\"MyThjkIs2Wca\",\"name\":\"IIS\",\"desc\":\"\"},{\"id\":\"MyThjkIs2Wca\",\"name\":\"Microsoft ASP.NET\",\"desc\":\"\"},{\"id\":\"MyThjkIs2Wca\",\"name\":\"Windows Server\",\"desc\":\"\"}],\"verified\":false,\"verification_token\":\"07080d0e-1234-ABCD-1234-fcbb57e2fe0c\",\"verification_date\":null,\"verification_method\":\"\",\"verification_last_error\":\"\",\"api_scan_settings\":null},\"type\":\"single\",\"desc\":\"\",\"labels\":[{\"id\":\"MyThjkIs2Wca\",\"name\":\"PwC\",\"color\":\"\",\"changed_by\":{\"id\":\"MyThjkIs2Wca\",\"email\":\"\",\"name\":\"Example\"},\"changed\":\"2022-06-02T09:31:29.238031Z\"}],\"has_assets\":false,\"report_fileformat\":\"docx\",\"scanning_agent\":null,\"teams\":[{\"id\":\"MyThjkIs2Wca\",\"name\":\"Example Team\"}],\"blackout_period\":{\"begin\":\"02:00:00\",\"cease\":\"03:00:00\",\"weekdays\":[1],\"enabled\":true,\"timezone\":\"Africa/Lagos\",\"changed\":\"2023-10-30T18:11:32.548246Z\",\"changed_by\":{\"id\":\"-sDw5JJJtV3Y\",\"email\":\"testuser@example.pt\",\"name\":\"Testuser\"}}},\"status\":\"completed\",\"started\":\"2024-01-25T01:05:08.102608Z\",\"completed\":\"2024-01-25T01:07:34.570500Z\",\"scan_profile\":{\"id\":\"lightning\",\"name\":\"Lightning\",\"description\":\"Fast scan that checks vulnerabilities related to SSL/TLS, HTTP security headers, and cookies attributes.\",\"builtin\":true},\"lows\":5,\"mediums\":1,\"highs\":0,\"created\":\"2024-01-25T01:05:05.894103Z\",\"unlimited\":true,\"changed\":\"2024-01-25T01:07:45.896140Z\",\"changed_by\":{\"id\":\"-sDw5iRCtV3Y\",\"email\":\"tesuser@example.pt\",\"name\":\"Testuser\"},\"stack\":[],\"crawler\":{\"state\":\"ended\",\"status\":[4,4],\"warning\":[{\"code\":\"login_failed\",\"message\":\"Cannot login, please review your login settings.\"},{\"code\":\"target_status\",\"message\":\"The target is responding with an HTTP 500 code. Please make sure that this is intended. If Snyk API & Web's requests are being throttled, ignored, or rejected, this will result in poor scan results.\"}],\"error\":[],\"full_status\":{\"type\":\"feedback\",\"ts\":1706720605.0290248,\"iid\":\"c144f028-9110-XXXX-1234-5d2b10161f43\",\"aid\":\"b3448314-41c8-XXXX-1234-fd1af2a9f1fb\",\"stage\":\"crawler\",\"module\":\"anansi\",\"subtype\":\"status\",\"data\":{\"type\":\"feedback\",\"allExtraHosts\":[],\"countTimeoutEndpoints\":0,\"crawlingEndpoints\":[],\"countLoginFailed\":1,\"lastLogin\":[{\"status\":\"failed\",\"timestamp\":1706720567048}],\"status\":{\"500\":4},\"outOfScopeHostsCount\":{},\"allHostnames\":[\"example.com\"],\"version\":2,\"countNetworkErrorEndpoints\":0,\"total\":4,\"lastCrawledEndpoints\":[{\"jobId\":2,\"status\":500,\"method\":\"GET\",\"url\":\"https://example.com/\"},{\"jobId\":3,\"status\":500,\"method\":\"GET\",\"url\":\"https://example.com/\"},{\"jobId\":4,\"status\":500,\"method\":\"GET\",\"url\":\"https://example.com/\"}],\"doingLogin\":false,\"done\":4,\"rejected\":0,\"countLoginSuccess\":0,\"statusByHost\":{\"example.com\":{\"500\":4}}}}},\"fingerprinter\":{\"state\":\"ended\",\"count\":1,\"warning\":[],\"error\":[]},\"scanner\":{\"state\":\"ended\",\"status\":[1,1],\"warning\":[],\"error\":[],\"full_status\":{\"type\":\"feedback\",\"aid\":\"494b2a40-5e8d-4d6c-808b-ac81194917d4\",\"subtype\":\"status\",\"stage\":\"scanner\",\"module\":\"zap\",\"data\":{\"done\":79,\"total\":400,\"scannerState\":{\"numberRequestBeingScanned\":2,\"currentAverageRtt\":16.444445,\"averageRtt\":16.444445,\"nStatus3xx\":\"0\",\"nStatus4xx\":\"0\",\"nStatus5xx\":\"0\",\"nConnectionErrors\":\"0\",\"nTimeouts\":\"0\",\"nRequests\":\"9\",\"sampleOfRequestBeingScanned\":[{\"httpMethod\":\"GET\",\"url\":\"http://127.0.0.1:9999/dynamicResponseGenerator/XXX__122__XXX?x1=aaaaaa&x2=aaaaaa&x3=aaaaaa&x4=aaaaaa&x5=aaaaaa&x6=aaaaaa\"},{\"httpMethod\":\"GET\",\"url\":\"http://127.0.0.1:9999/dynamicResponseGenerator/XXX__120__XXX?x1=aaaaaa&x2=aaaaaa&x3=aaaaaa&x4=aaaaaa&x5=aaaaaa&x6=aaaaaa\"}]}}}},\"has_sequence_navigation\":false,\"incremental\":false,\"reduced_scope\":true,\"crawl_sequences_only\":false,\"ignore_blackout_period\":false,\"user_data\":null}\n\n@endpoint PATCH /targets/{target_id}/scans/{id}/\n@desc Partial Update Scan\n@required {id: str, target_id: str # Identifier of the target.}\n@optional {id: str # A unique Base58 value identifying this object., target: any, status: str(canceled/canceling/completed/completed_with_errors/failed/paused/pausing/queued/resuming/started/under_review/finishing_up) # Status of the scan:  * `canceled` - Canceled * `canceling` - Canceling * `completed` - Completed * `completed_with_errors` - Completed with errors - DEPRECATED * `failed` - Failed * `paused` - Paused * `pausing` - Pausing * `queued` - Queued * `resuming` - Resuming * `started` - Started * `under_review` - Under Review * `finishing_up` - Finishing up, started: str(date-time) # Date and time of when the scan started., completed: str(date-time) # Date and time of when the scan was completed., scan_profile: str # Identifier of the scan profile., lows: int # Number of vulnerability findings with low severity., mediums: int # Number of vulnerability findings with medium severity., highs: int # Number of vulnerability findings with high severity., criticals: int # Number of vulnerability findings with critical severity., created: str(date-time), unlimited: bool # If true, the scan had unlimited credits. If false, the scan consumed credits. Learn more about [unlimited scans vs scans with credits](https://help.probely.com/en/articles/6845523-unlimited-scans-vs-scans-with-credits)., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes., stack: [any] # Technologies found in the scan. The scanning engine uses them to fine-tune vulnerability tests and texts about how to fix the vulnerabilities., crawler: any # Information on the crawler execution., fingerprinter: any # Information on the fingerprinter execution., scanner: any # Information on the scanner execution., target_options: any # Options of the target for the scan., has_sequence_navigation: bool # If true, the scan includes sequence navigations.   Learn more about [How to set up Navigation Sequences?](https://help.probely.com/en/articles/6657065-how-to-set-up-navigation-sequences)., incremental: bool # If true, the scan was incremental to narrow the coverage to new and updated URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant)., reduced_scope: bool # If true, the scan used a reduced scope to narrow the coverage to defined URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant)., crawl_sequences_only: bool # If true, the scan only crawled navigation sequences to narrow the coverage.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant)., ignore_blackout_period: bool # If true, the scan ignored the blackout period defined in the target settings., runtime: str # Total time the scan has been actively running.   For example, \"02 00:00:10.123456\"., duration: str # Total time from the start of the scan to its completion, or to the moment of the query, if not completed.  For example, \"02 00:00:10.123456\"., sast_job_id: str, sast_job_status: str, user_data: str # Store scan metadata., login_video: str, warnings: [map{id!: str, name!: str, message: str, detail: any}] # Scan Warnings list., scheduled: bool # Scan started by scheduling.}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 404, 500}\n@example_request {\"id\":\"MyThjkIs2Wca\",\"target\":{\"id\":\"MyThjkIs2Wca\",\"name\":\"\",\"site\":{\"id\":\"MyThjkIs2Wca\",\"name\":\"[PwC] Example Site\",\"desc\":\"\",\"url\":\"https://www.example.pt/\",\"host\":\"www.example.pt\",\"has_form_login\":false,\"form_login_url\":\"https://example.com\",\"form_login_check_pattern\":\"\",\"form_login\":[{\"name\":\"username\",\"value\":\"testuser1\"},{\"name\":\"password\",\"value\":\"testuserpassword\"}],\"logout_detection_enabled\":false,\"has_sequence_login\":true,\"has_sequence_navigation\":false,\"has_basic_auth\":false,\"basic_auth\":{\"username\":\"\",\"password\":\"\"},\"headers\":[],\"cookies\":[],\"whitelist\":[],\"blacklist\":[],\"changed\":\"2023-10-20T20:44:12.556924Z\",\"changed_by\":{\"id\":\"-sDw5jjjtJ3Y\",\"email\":\"testuser@example.pt\",\"name\":\"testuser\"},\"auth_enabled\":false,\"logout_condition\":\"any\",\"check_session_url\":\"\",\"has_otp\":false,\"otp_secret\":\"\",\"otp_algorithm\":\"SHA1\",\"otp_digits\":6,\"otp_field\":\"\",\"otp_submit\":\"\",\"otp_login_sequence_totp_value\":\"\",\"otp_type\":\"totp\",\"otp_url\":\"\",\"stack\":[{\"id\":\"MyThjkIs2Wca\",\"name\":\"IIS\",\"desc\":\"\"},{\"id\":\"MyThjkIs2Wca\",\"name\":\"Microsoft ASP.NET\",\"desc\":\"\"},{\"id\":\"MyThjkIs2Wca\",\"name\":\"Windows Server\",\"desc\":\"\"}],\"verified\":false,\"verification_token\":\"07080d0e-1234-ABCD-1234-fcbb57e2fe0c\",\"verification_date\":null,\"verification_method\":\"\",\"verification_last_error\":\"\",\"api_scan_settings\":null},\"type\":\"single\",\"desc\":\"\",\"labels\":[{\"id\":\"MyThjkIs2Wca\",\"name\":\"PwC\",\"color\":\"\",\"changed_by\":{\"id\":\"MyThjkIs2Wca\",\"email\":\"\",\"name\":\"Example\"},\"changed\":\"2022-06-02T09:31:29.238031Z\"}],\"has_assets\":false,\"report_fileformat\":\"docx\",\"scanning_agent\":null,\"teams\":[{\"id\":\"MyThjkIs2Wca\",\"name\":\"Example Team\"}],\"blackout_period\":{\"begin\":\"02:00:00\",\"cease\":\"03:00:00\",\"weekdays\":[1],\"enabled\":true,\"timezone\":\"Africa/Lagos\",\"changed\":\"2023-10-30T18:11:32.548246Z\",\"changed_by\":{\"id\":\"-sDw5JJJtV3Y\",\"email\":\"testuser@example.pt\",\"name\":\"Testuser\"}}},\"status\":\"completed\",\"started\":\"2024-01-25T01:05:08.102608Z\",\"completed\":\"2024-01-25T01:07:34.570500Z\",\"scan_profile\":{\"id\":\"lightning\",\"name\":\"Lightning\",\"description\":\"Fast scan that checks vulnerabilities related to SSL/TLS, HTTP security headers, and cookies attributes.\",\"builtin\":true},\"lows\":5,\"mediums\":1,\"highs\":0,\"created\":\"2024-01-25T01:05:05.894103Z\",\"unlimited\":true,\"changed\":\"2024-01-25T01:07:45.896140Z\",\"changed_by\":{\"id\":\"-sDw5iRCtV3Y\",\"email\":\"tesuser@example.pt\",\"name\":\"Testuser\"},\"stack\":[],\"crawler\":{\"state\":\"ended\",\"status\":[4,4],\"warning\":[{\"code\":\"login_failed\",\"message\":\"Cannot login, please review your login settings.\"},{\"code\":\"target_status\",\"message\":\"The target is responding with an HTTP 500 code. Please make sure that this is intended. If Snyk API & Web's requests are being throttled, ignored, or rejected, this will result in poor scan results.\"}],\"error\":[],\"full_status\":{\"type\":\"feedback\",\"ts\":1706720605.0290248,\"iid\":\"c144f028-9110-XXXX-1234-5d2b10161f43\",\"aid\":\"b3448314-41c8-XXXX-1234-fd1af2a9f1fb\",\"stage\":\"crawler\",\"module\":\"anansi\",\"subtype\":\"status\",\"data\":{\"type\":\"feedback\",\"allExtraHosts\":[],\"countTimeoutEndpoints\":0,\"crawlingEndpoints\":[],\"countLoginFailed\":1,\"lastLogin\":[{\"status\":\"failed\",\"timestamp\":1706720567048}],\"status\":{\"500\":4},\"outOfScopeHostsCount\":{},\"allHostnames\":[\"example.com\"],\"version\":2,\"countNetworkErrorEndpoints\":0,\"total\":4,\"lastCrawledEndpoints\":[{\"jobId\":2,\"status\":500,\"method\":\"GET\",\"url\":\"https://example.com/\"},{\"jobId\":3,\"status\":500,\"method\":\"GET\",\"url\":\"https://example.com/\"},{\"jobId\":4,\"status\":500,\"method\":\"GET\",\"url\":\"https://example.com/\"}],\"doingLogin\":false,\"done\":4,\"rejected\":0,\"countLoginSuccess\":0,\"statusByHost\":{\"example.com\":{\"500\":4}}}}},\"fingerprinter\":{\"state\":\"ended\",\"count\":1,\"warning\":[],\"error\":[]},\"scanner\":{\"state\":\"ended\",\"status\":[1,1],\"warning\":[],\"error\":[],\"full_status\":{\"type\":\"feedback\",\"aid\":\"494b2a40-5e8d-4d6c-808b-ac81194917d4\",\"subtype\":\"status\",\"stage\":\"scanner\",\"module\":\"zap\",\"data\":{\"done\":79,\"total\":400,\"scannerState\":{\"numberRequestBeingScanned\":2,\"currentAverageRtt\":16.444445,\"averageRtt\":16.444445,\"nStatus3xx\":\"0\",\"nStatus4xx\":\"0\",\"nStatus5xx\":\"0\",\"nConnectionErrors\":\"0\",\"nTimeouts\":\"0\",\"nRequests\":\"9\",\"sampleOfRequestBeingScanned\":[{\"httpMethod\":\"GET\",\"url\":\"http://127.0.0.1:9999/dynamicResponseGenerator/XXX__122__XXX?x1=aaaaaa&x2=aaaaaa&x3=aaaaaa&x4=aaaaaa&x5=aaaaaa&x6=aaaaaa\"},{\"httpMethod\":\"GET\",\"url\":\"http://127.0.0.1:9999/dynamicResponseGenerator/XXX__120__XXX?x1=aaaaaa&x2=aaaaaa&x3=aaaaaa&x4=aaaaaa&x5=aaaaaa&x6=aaaaaa\"}]}}}},\"has_sequence_navigation\":false,\"incremental\":false,\"reduced_scope\":true,\"crawl_sequences_only\":false,\"ignore_blackout_period\":false,\"user_data\":null}\n\n@endpoint POST /targets/{target_id}/scans/{id}/cancel/\n@desc Cancel Scan\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/scans/{id}/endpoints/\n@desc Export Coverage Report\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(200) CSV file with scanned endpoints\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/scans/{id}/pause/\n@desc Pause Scan\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/scans/{id}/report/\n@desc Download Scan Report\n@required {id: str, target_id: str}\n@optional {report_type: str(default/executive_summary/hipaa/iso27001/owasp/pci/pci4)}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/scans/{id}/resume/\n@desc Resume Scan\n@required {id: str, target_id: str # Identifier of the target.}\n@optional {ignore_blackout_period: bool # If true, the scan ignores the blackout period defined in the target settings.}\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 404, 500}\n@example_request {\"id\":\"MyThjkIs2Wca\",\"target\":{\"id\":\"MyThjkIs2Wca\",\"name\":\"\",\"site\":{\"id\":\"MyThjkIs2Wca\",\"name\":\"[PwC] Example Site\",\"desc\":\"\",\"url\":\"https://www.example.pt/\",\"host\":\"www.example.pt\",\"has_form_login\":false,\"form_login_url\":\"https://example.com\",\"form_login_check_pattern\":\"\",\"form_login\":[{\"name\":\"username\",\"value\":\"testuser1\"},{\"name\":\"password\",\"value\":\"testuserpassword\"}],\"logout_detection_enabled\":false,\"has_sequence_login\":true,\"has_sequence_navigation\":false,\"has_basic_auth\":false,\"basic_auth\":{\"username\":\"\",\"password\":\"\"},\"headers\":[],\"cookies\":[],\"whitelist\":[],\"blacklist\":[],\"changed\":\"2023-10-20T20:44:12.556924Z\",\"changed_by\":{\"id\":\"-sDw5jjjtJ3Y\",\"email\":\"testuser@example.pt\",\"name\":\"testuser\"},\"auth_enabled\":false,\"logout_condition\":\"any\",\"check_session_url\":\"\",\"has_otp\":false,\"otp_secret\":\"\",\"otp_algorithm\":\"SHA1\",\"otp_digits\":6,\"otp_field\":\"\",\"otp_submit\":\"\",\"otp_login_sequence_totp_value\":\"\",\"otp_type\":\"totp\",\"otp_url\":\"\",\"stack\":[{\"id\":\"MyThjkIs2Wca\",\"name\":\"IIS\",\"desc\":\"\"},{\"id\":\"MyThjkIs2Wca\",\"name\":\"Microsoft ASP.NET\",\"desc\":\"\"},{\"id\":\"MyThjkIs2Wca\",\"name\":\"Windows Server\",\"desc\":\"\"}],\"verified\":false,\"verification_token\":\"07080d0e-1234-ABCD-1234-fcbb57e2fe0c\",\"verification_date\":null,\"verification_method\":\"\",\"verification_last_error\":\"\",\"api_scan_settings\":null},\"type\":\"single\",\"desc\":\"\",\"labels\":[{\"id\":\"MyThjkIs2Wca\",\"name\":\"PwC\",\"color\":\"\",\"changed_by\":{\"id\":\"MyThjkIs2Wca\",\"email\":\"\",\"name\":\"Example\"},\"changed\":\"2022-06-02T09:31:29.238031Z\"}],\"has_assets\":false,\"report_fileformat\":\"docx\",\"scanning_agent\":null,\"teams\":[{\"id\":\"MyThjkIs2Wca\",\"name\":\"Example Team\"}],\"blackout_period\":{\"begin\":\"02:00:00\",\"cease\":\"03:00:00\",\"weekdays\":[1],\"enabled\":true,\"timezone\":\"Africa/Lagos\",\"changed\":\"2023-10-30T18:11:32.548246Z\",\"changed_by\":{\"id\":\"-sDw5JJJtV3Y\",\"email\":\"testuser@example.pt\",\"name\":\"Testuser\"}}},\"status\":\"completed\",\"started\":\"2024-01-25T01:05:08.102608Z\",\"completed\":\"2024-01-25T01:07:34.570500Z\",\"scan_profile\":{\"id\":\"lightning\",\"name\":\"Lightning\",\"description\":\"Fast scan that checks vulnerabilities related to SSL/TLS, HTTP security headers, and cookies attributes.\",\"builtin\":true},\"lows\":5,\"mediums\":1,\"highs\":0,\"created\":\"2024-01-25T01:05:05.894103Z\",\"unlimited\":true,\"changed\":\"2024-01-25T01:07:45.896140Z\",\"changed_by\":{\"id\":\"-sDw5iRCtV3Y\",\"email\":\"tesuser@example.pt\",\"name\":\"Testuser\"},\"stack\":[],\"crawler\":{\"state\":\"ended\",\"status\":[4,4],\"warning\":[{\"code\":\"login_failed\",\"message\":\"Cannot login, please review your login settings.\"},{\"code\":\"target_status\",\"message\":\"The target is responding with an HTTP 500 code. Please make sure that this is intended. If Snyk API & Web's requests are being throttled, ignored, or rejected, this will result in poor scan results.\"}],\"error\":[],\"full_status\":{\"type\":\"feedback\",\"ts\":1706720605.0290248,\"iid\":\"c144f028-9110-XXXX-1234-5d2b10161f43\",\"aid\":\"b3448314-41c8-XXXX-1234-fd1af2a9f1fb\",\"stage\":\"crawler\",\"module\":\"anansi\",\"subtype\":\"status\",\"data\":{\"type\":\"feedback\",\"allExtraHosts\":[],\"countTimeoutEndpoints\":0,\"crawlingEndpoints\":[],\"countLoginFailed\":1,\"lastLogin\":[{\"status\":\"failed\",\"timestamp\":1706720567048}],\"status\":{\"500\":4},\"outOfScopeHostsCount\":{},\"allHostnames\":[\"example.com\"],\"version\":2,\"countNetworkErrorEndpoints\":0,\"total\":4,\"lastCrawledEndpoints\":[{\"jobId\":2,\"status\":500,\"method\":\"GET\",\"url\":\"https://example.com/\"},{\"jobId\":3,\"status\":500,\"method\":\"GET\",\"url\":\"https://example.com/\"},{\"jobId\":4,\"status\":500,\"method\":\"GET\",\"url\":\"https://example.com/\"}],\"doingLogin\":false,\"done\":4,\"rejected\":0,\"countLoginSuccess\":0,\"statusByHost\":{\"example.com\":{\"500\":4}}}}},\"fingerprinter\":{\"state\":\"ended\",\"count\":1,\"warning\":[],\"error\":[]},\"scanner\":{\"state\":\"ended\",\"status\":[1,1],\"warning\":[],\"error\":[],\"full_status\":{\"type\":\"feedback\",\"aid\":\"494b2a40-5e8d-4d6c-808b-ac81194917d4\",\"subtype\":\"status\",\"stage\":\"scanner\",\"module\":\"zap\",\"data\":{\"done\":79,\"total\":400,\"scannerState\":{\"numberRequestBeingScanned\":2,\"currentAverageRtt\":16.444445,\"averageRtt\":16.444445,\"nStatus3xx\":\"0\",\"nStatus4xx\":\"0\",\"nStatus5xx\":\"0\",\"nConnectionErrors\":\"0\",\"nTimeouts\":\"0\",\"nRequests\":\"9\",\"sampleOfRequestBeingScanned\":[{\"httpMethod\":\"GET\",\"url\":\"http://127.0.0.1:9999/dynamicResponseGenerator/XXX__122__XXX?x1=aaaaaa&x2=aaaaaa&x3=aaaaaa&x4=aaaaaa&x5=aaaaaa&x6=aaaaaa\"},{\"httpMethod\":\"GET\",\"url\":\"http://127.0.0.1:9999/dynamicResponseGenerator/XXX__120__XXX?x1=aaaaaa&x2=aaaaaa&x3=aaaaaa&x4=aaaaaa&x5=aaaaaa&x6=aaaaaa\"}]}}}},\"has_sequence_navigation\":false,\"incremental\":false,\"reduced_scope\":true,\"crawl_sequences_only\":false,\"ignore_blackout_period\":false,\"user_data\":null}\n\n@endpoint GET /targets/{target_id}/scans/dates/\n@desc List Scan Dates\n@required {target_id: str # Identifier of the target.}\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/scans/retrieve_page/\n@desc Retrieve Page Number for Scan Date\n@required {target_id: str # Identifier of the target.}\n@returns(200) {page: int}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/scheduledscans/\n@desc List Target's Scheduled Scans\n@required {target_id: str # Identifier of the target.}\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/scheduledscans/\n@desc Create Target's Scheduled Scan\n@required {target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., target: any, date_time: str(date-time) # Date and time of next scan scheduled., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes., blackout_period: any # Time window during which scans are temporarily interrupted., unlimited: str}\n@optional {recurrence: str(h/d/w/m/q/) # Scheduled scan recurrence.  * `h` - Hourly * `d` - Daily * `w` - Weekly * `m` - Monthly * `q` - Quarterly, timezone: str # Timezone in which `date_time` will run. Expects values from TZ Database. Case sensitive. E.g: `US/Central`, `WET`.  Defaults to `UTC`., run_on_day_of_week: bool # Schedule scan to run on specific monthly day of week (for monthly/quarterly recurrence)., scheduled_day_of_week: int(1/2/3/4/5/6/7) # Day of week to run scan on - monday to sunday (for run on day of week option).  * `1` - Monday * `2` - Tuesday * `3` - Wednesday * `4` - Thursday * `5` - Friday * `6` - Saturday * `7` - Sunday, week_index: str(first/second/third/fourth/last/) # Which week of the month to run scan on (with `run_on_day_of_week` enabled).  * `first` - First * `second` - Second * `third` - Third * `fourth` - Fourth * `last` - Last, partial_scan: bool # Future scans set as partial scans, use in conjunction with `incremental` and `reduced_scope`., override_target_settings: bool # Override scan target's scan settings, use in conjunction with `override_target_settings`., incremental: bool # Future scans set to incremental, use in conjunction with `partial_scan` and `override_target_settings`., reduced_scope: bool # Future scans set as reduced scope, use in conjunction with `partial_scan` and `override_target_settings`., scan_profile: str # Scan profile to use.   Use the endpoint [List Scan Profiles](#tag/Scan-Profiles/operation/scan_profiles_list) to get all the available scan profiles.   If no scan profile is specified, the scan profile will be the one specified in the target settings.}\n@returns(201) {id: str, target: any, date_time: str(date-time), recurrence: str, changed: str(date-time), changed_by: any, blackout_period: any, timezone: str, run_on_day_of_week: bool, scheduled_day_of_week: int?, week_index: str?, partial_scan: bool, override_target_settings: bool, incremental: bool, reduced_scope: bool, scan_profile: str?, unlimited: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/scheduledscans/{id}/\n@desc Retrieve Target's Scheduled Scan\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(200) {id: str, target: any, date_time: str(date-time), recurrence: str, changed: str(date-time), changed_by: any, blackout_period: any, timezone: str, run_on_day_of_week: bool, scheduled_day_of_week: int?, week_index: str?, partial_scan: bool, override_target_settings: bool, incremental: bool, reduced_scope: bool, scan_profile: str?, unlimited: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{target_id}/scheduledscans/{id}/\n@desc Update Target's Scheduled Scan\n@required {id: str, target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., target: any, date_time: str(date-time) # Date and time of next scan scheduled., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes., blackout_period: any # Time window during which scans are temporarily interrupted., unlimited: str}\n@optional {recurrence: str(h/d/w/m/q/) # Scheduled scan recurrence.  * `h` - Hourly * `d` - Daily * `w` - Weekly * `m` - Monthly * `q` - Quarterly, timezone: str # Timezone in which `date_time` will run. Expects values from TZ Database. Case sensitive. E.g: `US/Central`, `WET`.  Defaults to `UTC`., run_on_day_of_week: bool # Schedule scan to run on specific monthly day of week (for monthly/quarterly recurrence)., scheduled_day_of_week: int(1/2/3/4/5/6/7) # Day of week to run scan on - monday to sunday (for run on day of week option).  * `1` - Monday * `2` - Tuesday * `3` - Wednesday * `4` - Thursday * `5` - Friday * `6` - Saturday * `7` - Sunday, week_index: str(first/second/third/fourth/last/) # Which week of the month to run scan on (with `run_on_day_of_week` enabled).  * `first` - First * `second` - Second * `third` - Third * `fourth` - Fourth * `last` - Last, partial_scan: bool # Future scans set as partial scans, use in conjunction with `incremental` and `reduced_scope`., override_target_settings: bool # Override scan target's scan settings, use in conjunction with `override_target_settings`., incremental: bool # Future scans set to incremental, use in conjunction with `partial_scan` and `override_target_settings`., reduced_scope: bool # Future scans set as reduced scope, use in conjunction with `partial_scan` and `override_target_settings`., scan_profile: str # Scan profile to use.   Use the endpoint [List Scan Profiles](#tag/Scan-Profiles/operation/scan_profiles_list) to get all the available scan profiles.   If no scan profile is specified, the scan profile will be the one specified in the target settings.}\n@returns(200) {id: str, target: any, date_time: str(date-time), recurrence: str, changed: str(date-time), changed_by: any, blackout_period: any, timezone: str, run_on_day_of_week: bool, scheduled_day_of_week: int?, week_index: str?, partial_scan: bool, override_target_settings: bool, incremental: bool, reduced_scope: bool, scan_profile: str?, unlimited: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{target_id}/scheduledscans/{id}/\n@desc Partial Update Target's Scheduled Scan\n@required {id: str, target_id: str # Identifier of the target.}\n@optional {id: str # A unique Base58 value identifying this object., target: any, date_time: str(date-time) # Date and time of next scan scheduled., recurrence: str(h/d/w/m/q/) # Scheduled scan recurrence.  * `h` - Hourly * `d` - Daily * `w` - Weekly * `m` - Monthly * `q` - Quarterly, changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes., blackout_period: any # Time window during which scans are temporarily interrupted., timezone: str # Timezone in which `date_time` will run. Expects values from TZ Database. Case sensitive. E.g: `US/Central`, `WET`.  Defaults to `UTC`., run_on_day_of_week: bool # Schedule scan to run on specific monthly day of week (for monthly/quarterly recurrence)., scheduled_day_of_week: int(1/2/3/4/5/6/7) # Day of week to run scan on - monday to sunday (for run on day of week option).  * `1` - Monday * `2` - Tuesday * `3` - Wednesday * `4` - Thursday * `5` - Friday * `6` - Saturday * `7` - Sunday, week_index: str(first/second/third/fourth/last/) # Which week of the month to run scan on (with `run_on_day_of_week` enabled).  * `first` - First * `second` - Second * `third` - Third * `fourth` - Fourth * `last` - Last, partial_scan: bool # Future scans set as partial scans, use in conjunction with `incremental` and `reduced_scope`., override_target_settings: bool # Override scan target's scan settings, use in conjunction with `override_target_settings`., incremental: bool # Future scans set to incremental, use in conjunction with `partial_scan` and `override_target_settings`., reduced_scope: bool # Future scans set as reduced scope, use in conjunction with `partial_scan` and `override_target_settings`., scan_profile: str # Scan profile to use.   Use the endpoint [List Scan Profiles](#tag/Scan-Profiles/operation/scan_profiles_list) to get all the available scan profiles.   If no scan profile is specified, the scan profile will be the one specified in the target settings., unlimited: str}\n@returns(200) {id: str, target: any, date_time: str(date-time), recurrence: str, changed: str(date-time), changed_by: any, blackout_period: any, timezone: str, run_on_day_of_week: bool, scheduled_day_of_week: int?, week_index: str?, partial_scan: bool, override_target_settings: bool, incremental: bool, reduced_scope: bool, scan_profile: str?, unlimited: str}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{target_id}/scheduledscans/{id}/\n@desc Delete Target's Scheduled Scan\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/scheduledscans/expanded/\n@desc List Target's Scheduled Scans (Expanded)\n@required {target_id: str # Identifier of the target.}\n@returns(200) {results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/sequences/\n@desc List Sequences\n@required {target_id: str # Identifier of the target.}\n@optional {enabled: bool, include: str(content/target) # Extra fields to include in response:  * content - Add content to response under `content` key * target - Add target to response under `target` key, length: int # Number of results to return per page., name: str, ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term., type: str(login/navigation) # * `login` - Login * `navigation` - Navigation}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/sequences/\n@desc Create Sequence\n@required {target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., name: str, index: int, content: str # Contents of a sequence of browser navigation steps recorded by Snyk API and Web Sequence Recorder}\n@optional {include: str # Extra fields to include in response:  * target - Add target to response under `target` key, requires_authentication: bool, type: str(login/navigation) # * `login` - Login * `navigation` - Navigation, enabled: bool, custom_field_mappings: [map{name!: str, value!: str, value_is_sensitive: bool}]}\n@returns(201) {id: str, name: str?, requires_authentication: bool, type: str, enabled: bool, index: int?, custom_field_mappings: [map], content: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/sequences/{id}/\n@desc Retrieve Sequence\n@required {id: str, target_id: str # Identifier of the target.}\n@optional {include: str(content/target) # Extra fields to include in response:  * content - Add content to response under `content` key * target - Add target to response under `target` key}\n@returns(200) {id: str, name: str?, requires_authentication: bool, type: str, enabled: bool, index: int?, custom_field_mappings: [map], content: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{target_id}/sequences/{id}/\n@desc Update Sequence\n@required {id: str, target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., name: str, index: int, content: str # Contents of a sequence of browser navigation steps recorded by Snyk API and Web Sequence Recorder}\n@optional {include: str # Extra fields to include in response:  * target - Add target to response under `target` key, requires_authentication: bool, type: str(login/navigation) # * `login` - Login * `navigation` - Navigation, enabled: bool, custom_field_mappings: [map{name!: str, value!: str, value_is_sensitive: bool}]}\n@returns(200) {id: str, name: str?, requires_authentication: bool, type: str, enabled: bool, index: int?, custom_field_mappings: [map], content: str}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{target_id}/sequences/{id}/\n@desc Partial Update Sequence\n@required {id: str, target_id: str # Identifier of the target.}\n@optional {include: str # Extra fields to include in response:  * target - Add target to response under `target` key, id: str # A unique Base58 value identifying this object., name: str, requires_authentication: bool, type: str(login/navigation) # * `login` - Login * `navigation` - Navigation, enabled: bool, index: int, custom_field_mappings: [map{name!: str, value!: str, value_is_sensitive: bool}], content: str # Contents of a sequence of browser navigation steps recorded by Snyk API and Web Sequence Recorder}\n@returns(200) {id: str, name: str?, requires_authentication: bool, type: str, enabled: bool, index: int?, custom_field_mappings: [map], content: str}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{target_id}/sequences/{id}/\n@desc Delete Sequence\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/sequences/{id}/order/\n@desc Re-order Sequences\n@required {id: str, target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., name: str, index: int, content: str}\n@optional {requires_authentication: bool, type: str(login/navigation) # * `login` - Login * `navigation` - Navigation, enabled: bool, custom_field_mappings: [map{name!: str, value!: str, value_is_sensitive: bool}]}\n@returns(200) {id: str, name: str?, requires_authentication: bool, type: str, enabled: bool, index: int?, custom_field_mappings: [map], content: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/webhooks/\n@desc List Target's Webhooks\n@required {target_id: str # Identifier of the target.}\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/{target_id}/webhooks/\n@desc Create Target's Webhook\n@required {target_id: str # Identifier of the target., id: str # A unique Base58 value identifying this object., name: str # Name of the webhook., url: str(uri), created: str(date-time), created_by: any, changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@optional {check_cert: bool # If true, verify the HTTPS certificate of the webhook URL. Defaults to true., api_version: str # API version of the webhook.  * `v1` - V1}\n@returns(200) {id: str, event_type: str, occurred_at: str(date-time), object_type: str, content: str, webhooks: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/{target_id}/webhooks/{id}/\n@desc Retrieve Target's Webhook\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(200) {id: str, event_type: str, occurred_at: str(date-time), object_type: str, content: str, webhooks: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /targets/{target_id}/webhooks/{id}/\n@desc Update Target's Webhook\n@required {id: str, target_id: str # Identifier of the target.r of the target., id: str # A unique Base58 value identifying this object., name: str # Name of the webhook., url: str(uri), created: str(date-time), created_by: any, changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@optional {check_cert: bool # If true, verify the HTTPS certificate of the webhook URL. Defaults to true., api_version: str # API version of the webhook.  * `v1` - V1}\n@returns(200) {id: str, event_type: str, occurred_at: str(date-time), object_type: str, content: str, webhooks: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /targets/{target_id}/webhooks/{id}/\n@desc Partial Update Target's Webhook\n@required {id: str, target_id: str # Identifier of the target.}\n@optional {id: str # A unique Base58 value identifying this object., name: str # Name of the webhook., url: str(uri), check_cert: bool # If true, verify the HTTPS certificate of the webhook URL. Defaults to true., api_version: str # API version of the webhook.  * `v1` - V1, created: str(date-time), created_by: any, changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@returns(200) {id: str, event_type: str, occurred_at: str(date-time), object_type: str, content: str, webhooks: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /targets/{target_id}/webhooks/{id}/\n@desc Delete Target's Webhook\n@required {id: str, target_id: str # Identifier of the target.}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/all/average_fix_time/\n@desc Average Fix Time Graph\n@returns(200) {results: map{<vuln name>: str}}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/all/needs_attention_pie/\n@desc Targets with open vulnerabilities pie chart data\n@returns(200) {results: [[any]]}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/all/needs_attention_top/\n@desc Targets with top number of open vulnerabilities\n@returns(200)\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/all/risk_trend/\n@desc Risk Trend Graph\n@returns(200) {start: str, stop: str, step: str, results: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/all/scans/\n@desc List all Scans of Target\n@returns(200) {id: str, target: any, status: str, started: str(date-time)?, completed: str(date-time)?, scan_profile: str, lows: int?, mediums: int?, highs: int?, criticals: int?, created: str(date-time), unlimited: bool, changed: str(date-time), changed_by: any, stack: [any], crawler: any, fingerprinter: any, scanner: any, target_options: any, has_sequence_navigation: bool, incremental: bool, reduced_scope: bool, crawl_sequences_only: bool, ignore_blackout_period: bool, runtime: str, duration: str, sast_job_id: str?, sast_job_status: str?, user_data: str, login_video: str, warnings: [map], scheduled: bool}\n@errors {400, 401, 500}\n\n@endpoint GET /targets/all/scheduledscans/expanded/\n@desc Account Scheduled Scans\n@returns(200) {results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/all/severity_trend/\n@desc Severity Trend Graph\n@returns(200) {start: str, stop: str, step: str, results: str}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/all/top_vulns/\n@desc Top Vulnerabilities Graph\n@returns(200) {results: [int]}\n@errors {400, 401, 404, 500}\n\n@endpoint GET /targets/assets/\n@desc List Account's Extra Hosts\n@optional {id: [str] # Identifiers of Extra Hosts to filter results. Multiple choices are possible by repeating the query_param., is_id_404_validation: bool=false # If true, triggers custom response for `id` filter validation.   If any `id` filter is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term., target: [str] # Extra Host's target to filter results. Multiple choices are possible by repeating the query_param.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/bulk/delete/\n@desc Bulk Delete Targets\n@required {ids: [str]}\n@optional {is_id_404_validation: bool=false # If true, triggers custom response for `ids` payload validation.   If any `ids` payload is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```}\n@returns(200) {ids: [str]}\n@errors {400, 401, 500}\n\n@endpoint POST /targets/bulk/move-team/\n@desc Move Targets to Another Team\n@required {teams: [map{id!: str}] # Identifier of the team to move the targets to., ids: [str] # Identifiers of the targets to move, separated by commas.}\n@returns(200) {teams: [map], ids: [str]}\n@errors {400, 401, 500}\n\n@endpoint POST /targets/bulk/update/\n@desc Bulk Update Targets\n@required {ids: [str] # List of object IDs., id: str # A unique Base58 value identifying this object., site: any # Core settings of the target.   Includes basic target information (like the name, description, and URL) and scanning information (like the authentication and navigation sequences)., lows: int # Number of unresolved vulnerability findings with low severity., mediums: int # Number of unresolved vulnerability findings with medium severity., highs: int # Number of unresoved vulnerability findings with high severity., criticals: int # Number of unresolved vulnerability findings with critical severity., risk: int, last_scan: any # Last scan done for the target., running_scan: any # Current scan running for the target., next_scan: any # Next scheduled scan for the target., assets: [map{id!: str, account!: str, name!: str, host!: str, desc!: str, stack: [any], verified: bool, verification_token!: str(uuid), verification_date!: str(date-time), verification_method!: str, verification_last_error!: str, changed!: str(date-time), changed_by!: any, headers!: [map], cookies: [map], include!: bool}], unlimited: bool # If true, the target has unlimited scans.   If false, the target scans consume credits.   Learn more about [unlimited scans vs scans with credits](https://help.probely.com/en/articles/6845523-unlimited-scans-vs-scans-with-credits)., allowed_scan_profiles: [map{id!: str, name: str, description: str, builtin!: str}] # [Scan profiles](https://help.probely.com/en/articles/1994962-built-in-scan-profiles-and-their-differences) allowed for the target., teams: [any], login_video: str, changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@optional {is_id_404_validation: bool=false # If true, triggers custom response for `ids` payload validation.   If any `ids` payload is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```, scan_profile: str # Identifier of the scan profile., type: str # Type of target.   Possible values are \"single\" for a web application and \"api\" for an API.   Defaults to \"single\"., report_type: str(default/executive_summary/owasp/pci/pci4/iso27001/hipaa) # Type of [scan report](https://help.probely.com/en/articles/2659844-types-of-compliance-reports-you-can-generate-with-probely) produced for the target:   (Defaults to `default`)   * `default` - Standard * `executive_summary` - Executive Summary * `owasp` - OWASP Top 10 * `pci` - PCI v3.2.1 * `pci4` - PCI v4.0.1 * `iso27001` - ISO 27001 * `hipaa` - HIPAA, report_fileformat: str(pdf/docx) # [Report format](https://help.probely.com/en/articles/6649585-how-to-switch-between-different-report-formats) for the target:   (Defaults to `pdf`)   * `pdf` - PDF file format. * `docx` - DOCX file format., labels: [any] # Labels of the target., scanning_agent: any # Scanning agent of the target. Learn more on [how to scan internal applications with a scanning agent](https://help.probely.com/en/articles/4615595-how-to-scan-internal-applications-with-a-scanning-agent)., include_deduplicated_endpoints: bool # If true, scans include deduplicated endpoints.   If false or null, scans exclude deduplicated endpoints.   A deduplicated endpoint has the same simhash as another scanned endpoint., blackout_period: any # Time window during which scans are temporarily interrupted., fail_fast: bool # If true, scans fail on recoverable errors.   If false, scans continue on recoverable errors.   Defaults to true., incremental: bool # If true, on-demand scans can be incremental to narrow the coverage to new and updated URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., reduced_scope: bool # If true, on-demand scans can have reduced scope to narrow the coverage to defined URLs.     Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_incremental: bool # If true, scheduled scans can be incremental to narrow the coverage to new and updated URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_reduced_scope: bool # If true, scheduled scans can have reduced scope to narrow the coverage to defined URLs.      Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., crawl_sequences_only: bool # If true, on-demand scans can only crawl navigation sequences to narrow the coverage.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_crawl_sequences_only: bool # If true, scheduled scans can only crawl navigation sequences to narrow the coverage.     Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., cancel_scan_on_nav_seq_failure: bool # If true, scans are canceled if one of the navigation sequences fails. Defaults to false.}\n@returns(200) {ids: [str]}\n@errors {400, 401, 500}\n\n@endpoint GET /targets/download/\n@desc Export Targets\n@returns(200) No response body\n@errors {400, 401, 500}\n\n@endpoint GET /targets/sequences/\n@desc List Account's Sequences\n@optional {enabled: bool, id: [str] # Identifiers of Asset Sequence to filter results. Multiple choices are possible by repeating the query_param., include: str # Extra fields to include in response:  * content - Add content to response under `content` key, is_id_404_validation: bool=false # If true, triggers custom response for `id` filter validation.   If any `id` filter is invalid, returns a 404 with the following content:   ``` {     \"detail\": \"Not Found\",     \"is_id_404_validation\": true,     \"invalid_ids\": [         \"9vebyEVLNoZX\",         \"6CuzJtJmMp48\"     ] } ```, length: int # Number of results to return per page., name: str, ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term., target: [str] # A unique Base58 value identifying this object., type: str(login/navigation) # * `login` - Login * `navigation` - Navigation}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /targets/upload/\n@desc Import Targets\n@required {id: str # A unique Base58 value identifying this object., site: any # Core settings of the target.   Includes basic target information (like the name, description, and URL) and scanning information (like the authentication and navigation sequences)., lows: int # Number of unresolved vulnerability findings with low severity., mediums: int # Number of unresolved vulnerability findings with medium severity., highs: int # Number of unresoved vulnerability findings with high severity., criticals: int # Number of unresolved vulnerability findings with critical severity., risk: int, last_scan: any # Last scan done for the target., running_scan: any # Current scan running for the target., next_scan: any # Next scheduled scan for the target., assets: [map{id!: str, account!: str, name!: str, host!: str, desc!: str, stack: [any], verified: bool, verification_token!: str(uuid), verification_date!: str(date-time), verification_method!: str, verification_last_error!: str, changed!: str(date-time), changed_by!: any, headers!: [map], cookies: [map], include!: bool}], allowed_scan_profiles: [map{id!: str, name: str, description: str, builtin!: str}] # [Scan profiles](https://help.probely.com/en/articles/1994962-built-in-scan-profiles-and-their-differences) allowed for the target., login_video: str, changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@optional {scan_profile: str # Identifier of the scan profile., type: str # Type of target.   Possible values are \"single\" for a web application and \"api\" for an API.   Defaults to \"single\"., unlimited: bool # If true, the target has unlimited scans.   If false, the target scans consume credits.   Learn more about [unlimited scans vs scans with credits](https://help.probely.com/en/articles/6845523-unlimited-scans-vs-scans-with-credits)., report_type: str(default/executive_summary/owasp/pci/pci4/iso27001/hipaa) # Type of [scan report](https://help.probely.com/en/articles/2659844-types-of-compliance-reports-you-can-generate-with-probely) produced for the target:   (Defaults to `default`)   * `default` - Standard * `executive_summary` - Executive Summary * `owasp` - OWASP Top 10 * `pci` - PCI v3.2.1 * `pci4` - PCI v4.0.1 * `iso27001` - ISO 27001 * `hipaa` - HIPAA, report_fileformat: str(pdf/docx) # [Report format](https://help.probely.com/en/articles/6649585-how-to-switch-between-different-report-formats) for the target:   (Defaults to `pdf`)   * `pdf` - PDF file format. * `docx` - DOCX file format., labels: [any] # Labels of the target., scanning_agent: any # Scanning agent of the target. Learn more on [how to scan internal applications with a scanning agent](https://help.probely.com/en/articles/4615595-how-to-scan-internal-applications-with-a-scanning-agent)., include_deduplicated_endpoints: bool # If true, scans include deduplicated endpoints.   If false or null, scans exclude deduplicated endpoints.   A deduplicated endpoint has the same simhash as another scanned endpoint., teams: [map{id: str, name!: str}], blackout_period: any # Time window during which scans are temporarily interrupted., fail_fast: bool # If true, scans fail on recoverable errors.   If false, scans continue on recoverable errors.   Defaults to true., incremental: bool # If true, on-demand scans can be incremental to narrow the coverage to new and updated URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., reduced_scope: bool # If true, on-demand scans can have reduced scope to narrow the coverage to defined URLs.     Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_incremental: bool # If true, scheduled scans can be incremental to narrow the coverage to new and updated URLs.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_reduced_scope: bool # If true, scheduled scans can have reduced scope to narrow the coverage to defined URLs.      Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., crawl_sequences_only: bool # If true, on-demand scans can only crawl navigation sequences to narrow the coverage.   Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., schedule_crawl_sequences_only: bool # If true, scheduled scans can only crawl navigation sequences to narrow the coverage.     Learn more about [partial scans](https://help.probely.com/en/articles/5721020-what-are-partial-scans-and-why-are-they-relevant).   Defaults to false., cancel_scan_on_nav_seq_failure: bool # If true, scans are canceled if one of the navigation sequences fails. Defaults to false.}\n@returns(201) {target_ids: [str], scan_ids: [str]}\n@errors {400, 401, 500}\n\n@endgroup\n\n@group teams\n@endpoint GET /teams/\n@desc List Teams\n@optional {can_create_target: bool, can_move: bool, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term., user: [str]}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /teams/\n@desc Create Team\n@required {id: str # A unique Base58 value identifying this object., name: str # Name of the team.   Maximum length is 255 characters., num_api_keys: int # Number of API Keys added to the team., num_users: int # Number of users in the team., num_targets: int # Number of targets added to the team., num_available_targets: int # Number of available targets.}\n@optional {quota: int(int64) # Number of targets the team can create., reserve: bool # If true, the account has target slots reserved for the team to ensure the fulfillment of the team's quota.   Defaults to false., targets: [any] # Targets of the team., scanning_agents: [any] # Scanning agents of the team.   Learn more about [How to scan internal applications with a Scanning Agent?](https://help.probely.com/en/articles/4615595-how-to-scan-internal-applications-with-a-scanning-agent).}\n@returns(201) {id: str, name: str, num_api_keys: int, num_users: int, num_targets: int, quota: int(int64)?, reserve: bool, targets: [any], scanning_agents: [any], num_available_targets: int}\n@errors {400, 401, 500}\n\n@endpoint GET /teams/{id}/\n@desc Retrieve Team\n@required {id: str}\n@returns(200) {id: str, name: str, num_api_keys: int, num_users: int, num_targets: int, quota: int(int64)?, reserve: bool, targets: [any], scanning_agents: [any], num_available_targets: int}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /teams/{id}/\n@desc Update Team\n@required {id: str, id: str # A unique Base58 value identifying this object., name: str # Name of the team.   Maximum length is 255 characters., num_api_keys: int # Number of API Keys added to the team., num_users: int # Number of users in the team., num_targets: int # Number of targets added to the team., num_available_targets: int # Number of available targets.}\n@optional {quota: int(int64) # Number of targets the team can create., reserve: bool # If true, the account has target slots reserved for the team to ensure the fulfillment of the team's quota.   Defaults to false., targets: [any] # Targets of the team., scanning_agents: [any] # Scanning agents of the team.   Learn more about [How to scan internal applications with a Scanning Agent?](https://help.probely.com/en/articles/4615595-how-to-scan-internal-applications-with-a-scanning-agent).}\n@returns(200) {id: str, name: str, num_api_keys: int, num_users: int, num_targets: int, quota: int(int64)?, reserve: bool, targets: [any], scanning_agents: [any], num_available_targets: int}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /teams/{id}/\n@desc Partial Update Team\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., name: str # Name of the team.   Maximum length is 255 characters., num_api_keys: int # Number of API Keys added to the team., num_users: int # Number of users in the team., num_targets: int # Number of targets added to the team., quota: int(int64) # Number of targets the team can create., reserve: bool # If true, the account has target slots reserved for the team to ensure the fulfillment of the team's quota.   Defaults to false., targets: [any] # Targets of the team., scanning_agents: [any] # Scanning agents of the team.   Learn more about [How to scan internal applications with a Scanning Agent?](https://help.probely.com/en/articles/4615595-how-to-scan-internal-applications-with-a-scanning-agent)., num_available_targets: int # Number of available targets.}\n@returns(200) {id: str, name: str, num_api_keys: int, num_users: int, num_targets: int, quota: int(int64)?, reserve: bool, targets: [any], scanning_agents: [any], num_available_targets: int}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /teams/{id}/\n@desc Delete Team\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /teams/available-slots/\n@desc Retrieve the Number of Free Slots for Targets in the Team\n@returns(200) {slots: int}\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group user-roles\n@endpoint GET /user-roles/\n@desc List User Roles\n@optional {account: bool, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., role: [str] # A unique Base58 value identifying this object., target: [str], team: [str], user: [str] # A unique Base58 value identifying this object.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 403, 500}\n\n@endpoint POST /user-roles/\n@desc Create User Role\n@required {user: map{id!: str}, role: map{id!: str}, scope: map{tier!: str, team: map, target: map}}\n@returns(201) {id: str, user: map{id: str, email: str(email), name: str}, role: map{id: str, name: str, permissions: [map], custom: bool, description: str?}, scope: map{tier: str, target: map{id: str, name: str, url: str(uri)}, team: map{id: str, name: str}}}\n@errors {400, 401, 403, 500}\n\n@endpoint GET /user-roles/{id}/\n@desc Retrieve User Role\n@required {id: str}\n@returns(200) {id: str, user: map{id: str, email: str(email), name: str}, role: map{id: str, name: str, permissions: [map], custom: bool, description: str?}, scope: map{tier: str, target: map{id: str, name: str, url: str(uri)}, team: map{id: str, name: str}}}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /user-roles/{id}/\n@desc Update User Role\n@required {id: str, id: str, user: map{id!: str}, role: map{id!: str}, scope: map{tier!: str, team: map, target: map}}\n@returns(200) {id: str, user: map{id: str, email: str(email), name: str}, role: map{id: str, name: str, permissions: [map], custom: bool, description: str?}, scope: map{tier: str, target: map{id: str, name: str, url: str(uri)}, team: map{id: str, name: str}}}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /user-roles/{id}/\n@desc Partial Update User Role\n@required {id: str}\n@optional {id: str, user: map{id!: str}, role: map{id!: str}, scope: map{tier!: str, team: map, target: map}}\n@returns(200) {id: str, user: map{id: str, email: str(email), name: str}, role: map{id: str, name: str, permissions: [map], custom: bool, description: str?}, scope: map{tier: str, target: map{id: str, name: str, url: str(uri)}, team: map{id: str, name: str}}}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /user-roles/{id}/\n@desc Delete User Role\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint POST /user-roles/bulk/create/\n@desc Bulk Create User Roles\n@returns(201)\n@errors {400, 401, 500}\n\n@endpoint POST /user-roles/bulk/delete/\n@desc Bulk Delete User Roles\n@required {ids: [str]}\n@returns(200) {ids: [str]}\n@errors {400, 401, 404, 500}\n\n@endpoint POST /user-roles/bulk/operations/\n@desc Bulk Operations User Roles\n@optional {create: [map{user!: map, role!: map, scope!: map}], update: [map{id!: str, user!: map, role!: map, scope!: map}], delete: [map{id!: str}]}\n@returns(200) {create: [map], update: [map], delete: map{ids: [str]}}\n@errors {400, 401, 500}\n\n@endpoint POST /user-roles/bulk/update/\n@desc Bulk Update User Roles\n@returns(201)\n@errors {400, 401, 500}\n\n@endgroup\n\n@group users\n@endpoint GET /users/\n@desc List Users\n@optional {account: bool, active: bool, exclude: [str] # Fields to exclude from the response., exclude_target: [str], exclude_team: [str], label: [str] # A unique Base58 value identifying this object., label_logical_operator: str(and/or) # Logical operator to apply between user labels:   (Defaults to `or`)   * `and` - and * `or` - or, length: int # Number of results to return per page., mfa_enabled: bool, no_access: bool, ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., role: [str] # A unique Base58 value identifying this object., search: str # A search term., target: [str], team: [str]}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /users/\n@desc Create User\n@required {id: str # A unique Base58 value identifying this object., email: str(email) # Email of the user., name: str # Name of the user., is_billing_admin: bool # If true, the user has permissions to manage billing. Read-only., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., labels: [map{id!: str, name!: str, color: str, changed_by!: any, changed!: str(date-time)}], last_login: str(date-time) # Date and time of the last login of the user, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", is_apiuser: bool # If true, it is an app that interacts with Snyk API & Web through the API.   If false, it is a human who interacts with Snyk API & Web through our web interface.   Defaults to false.\", mfa_enabled: bool # If true, the user has MFA (Multi-Factor Authentication) enabled at login.   Defaults to true.}\n@optional {title: str(ceo/cto/cso/seceng/dev/devop/manager/other/) # Job title:  * `ceo` - Chief Executive Officer * `cto` - Chief Technology Officer * `cso` - Chief Security Officer * `seceng` - Security engineer * `dev` - Developer * `devop` - Developer Operations * `manager` - Manager * `other` - Other, active: bool=true # If true, the user can authenticate to Snyk API & Web to interact with apps and the API.   If false, the user's access to Snyk API & Web's apps and API is blocked.   Defaults to true., user_roles: [map{role!: map, scope!: map}]}\n@returns(201) {id: str, email: str(email), name: str, title: str, is_billing_admin: bool, changed_by: any, changed: str(date-time), active: bool, labels: [map], user_roles: [map], last_login: str(date-time)?, is_apiuser: bool, mfa_enabled: bool}\n@errors {400, 401, 500}\n\n@endpoint GET /users/{id}/\n@desc Retrieve User\n@required {id: str}\n@returns(200) {id: str, email: str(email), name: str, title: str, is_billing_admin: bool, changed_by: any, changed: str(date-time), active: bool, labels: [map], user_roles: [map], last_login: str(date-time)?, is_apiuser: bool, mfa_enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /users/{id}/\n@desc Update User\n@required {id: str, id: str # A unique Base58 value identifying this object., email: str(email) # Email of the user., name: str # Name of the user., is_billing_admin: bool # If true, the user has permissions to manage billing. Read-only., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., labels: [map{id!: str, name!: str, color: str, changed_by!: any, changed!: str(date-time)}], user_roles: [map{role!: map, scope!: map}], last_login: str(date-time) # Date and time of the last login of the user, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", is_apiuser: bool # If true, it is an app that interacts with Snyk API & Web through the API.   If false, it is a human who interacts with Snyk API & Web through our web interface.   Defaults to false.\", mfa_enabled: bool # If true, the user has MFA (Multi-Factor Authentication) enabled at login.   Defaults to true.}\n@optional {title: str(ceo/cto/cso/seceng/dev/devop/manager/other/) # Job title:  * `ceo` - Chief Executive Officer * `cto` - Chief Technology Officer * `cso` - Chief Security Officer * `seceng` - Security engineer * `dev` - Developer * `devop` - Developer Operations * `manager` - Manager * `other` - Other, active: bool=true # If true, the user can authenticate to Snyk API & Web to interact with apps and the API.   If false, the user's access to Snyk API & Web's apps and API is blocked.   Defaults to true.}\n@returns(200) {id: str, email: str(email), name: str, title: str, is_billing_admin: bool, changed_by: any, changed: str(date-time), active: bool, labels: [map], user_roles: [map], last_login: str(date-time)?, is_apiuser: bool, mfa_enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /users/{id}/\n@desc Partial Update User\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., email: str(email) # Email of the user., name: str # Name of the user., title: str(ceo/cto/cso/seceng/dev/devop/manager/other/) # Job title:  * `ceo` - Chief Executive Officer * `cto` - Chief Technology Officer * `cso` - Chief Security Officer * `seceng` - Security engineer * `dev` - Developer * `devop` - Developer Operations * `manager` - Manager * `other` - Other, is_billing_admin: bool # If true, the user has permissions to manage billing. Read-only., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., active: bool=true # If true, the user can authenticate to Snyk API & Web to interact with apps and the API.   If false, the user's access to Snyk API & Web's apps and API is blocked.   Defaults to true., labels: [map{id!: str, name!: str, color: str, changed_by!: any, changed!: str(date-time)}], user_roles: [map{role!: map, scope!: map}], last_login: str(date-time) # Date and time of the last login of the user, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", is_apiuser: bool # If true, it is an app that interacts with Snyk API & Web through the API.   If false, it is a human who interacts with Snyk API & Web through our web interface.   Defaults to false.\", mfa_enabled: bool # If true, the user has MFA (Multi-Factor Authentication) enabled at login.   Defaults to true.}\n@returns(200) {id: str, email: str(email), name: str, title: str, is_billing_admin: bool, changed_by: any, changed: str(date-time), active: bool, labels: [map], user_roles: [map], last_login: str(date-time)?, is_apiuser: bool, mfa_enabled: bool}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /users/{id}/\n@desc Disable User\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endpoint GET /users/{user_id}/targets/\n@desc List Targets\n@required {user_id: str}\n@optional {enabled: bool, exclude_team: [str] # Names of the teams to exclude from results, as a query string.   For example, \"exclude_team=Frontend\" or \"exclude_team=Frontend&exclude_team=Backend\"., id: [str] # Identifiers of targets to filter results. Multiple choices are possible by repeating the query_param., label: [str] # Target label IDs to filter results, as a query string., label_logical_operator: str(and/or) # Logical operator to apply between target labels.   (Defaults to `or`)   * `and` - and * `or` - or, length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., risk: [str] # Target risk to filter results:  * `None` - Not applicable. * `0` - No risk. * `10` - Low risk. * `20` - Medium risk. * `30` - High risk. * `40` - Critical risk., role: [str], scan_profile: [str] # Identifier of the scan profile to filter results., search: str # A search term., team: [str] # Names of the teams to filter results, as a query string.   For example, \"team=Frontend\" or \"team=Frontend&team=Backend\"., type: [str], unlimited: bool # If true, filter results by targets with unlimited scans.   If false, filter results by targets that use credits., verified: bool}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /users/bulk/update/\n@desc Bulk Update Users\n@required {ids: [str] # List of object IDs., id: str # A unique Base58 value identifying this object., email: str(email) # Email of the user., name: str # Name of the user., is_billing_admin: bool # If true, the user has permissions to manage billing. Read-only., changed_by: any # User who last made changes., changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., labels: [map{id!: str, name!: str, color: str, changed_by!: any, changed!: str(date-time)}], user_roles: [map{role!: map, scope!: map}], last_login: str(date-time) # Date and time of the last login of the user, in ISO 8601 UTC format. For example, \"2023-08-09T13:27:43.8208302\", is_apiuser: bool # If true, it is an app that interacts with Snyk API & Web through the API.   If false, it is a human who interacts with Snyk API & Web through our web interface.   Defaults to false.\", mfa_enabled: bool # If true, the user has MFA (Multi-Factor Authentication) enabled at login.   Defaults to true.}\n@optional {title: str(ceo/cto/cso/seceng/dev/devop/manager/other/) # Job title:  * `ceo` - Chief Executive Officer * `cto` - Chief Technology Officer * `cso` - Chief Security Officer * `seceng` - Security engineer * `dev` - Developer * `devop` - Developer Operations * `manager` - Manager * `other` - Other, active: bool=true # If true, the user can authenticate to Snyk API & Web to interact with apps and the API.   If false, the user's access to Snyk API & Web's apps and API is blocked.   Defaults to true.}\n@returns(200) {ids: [str]}\n@errors {400, 401, 500}\n\n@endgroup\n\n@group webhooks\n@endpoint GET /webhooks/\n@desc List Account's Webhooks\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endpoint POST /webhooks/\n@desc Create Account's Webhook\n@required {id: str # A unique Base58 value identifying this object., name: str # Name of the webhook., url: str(uri), created: str(date-time), created_by: any, changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@optional {check_cert: bool # If true, verify the HTTPS certificate of the webhook URL. Defaults to true., api_version: str # API version of the webhook.  * `v1` - V1}\n@returns(201) {id: str, name: str, url: str(uri), check_cert: bool, api_version: str, created: str(date-time), created_by: any, changed: str(date-time), changed_by: any}\n@errors {400, 401, 500}\n\n@endpoint GET /webhooks/{id}/\n@desc Retrieve Account's Webhook\n@required {id: str}\n@returns(200) {id: str, name: str, url: str(uri), check_cert: bool, api_version: str, created: str(date-time), created_by: any, changed: str(date-time), changed_by: any}\n@errors {400, 401, 404, 500}\n\n@endpoint PUT /webhooks/{id}/\n@desc Update Account's Webhook\n@required {id: str, id: str # A unique Base58 value identifying this object., name: str # Name of the webhook., url: str(uri), created: str(date-time), created_by: any, changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@optional {check_cert: bool # If true, verify the HTTPS certificate of the webhook URL. Defaults to true., api_version: str # API version of the webhook.  * `v1` - V1}\n@returns(200) {id: str, name: str, url: str(uri), check_cert: bool, api_version: str, created: str(date-time), created_by: any, changed: str(date-time), changed_by: any}\n@errors {400, 401, 404, 500}\n\n@endpoint PATCH /webhooks/{id}/\n@desc Partial Update Account's Webhook\n@required {id: str}\n@optional {id: str # A unique Base58 value identifying this object., name: str # Name of the webhook., url: str(uri), check_cert: bool # If true, verify the HTTPS certificate of the webhook URL. Defaults to true., api_version: str # API version of the webhook.  * `v1` - V1, created: str(date-time), created_by: any, changed: str(date-time) # Date and time of the last change, in ISO 8601 UTC format.   For example, \"2023-08-09T13:27:43.8208302\"., changed_by: any # User who last made changes.}\n@returns(200) {id: str, name: str, url: str(uri), check_cert: bool, api_version: str, created: str(date-time), created_by: any, changed: str(date-time), changed_by: any}\n@errors {400, 401, 404, 500}\n\n@endpoint DELETE /webhooks/{id}/\n@desc Delete Account's Webhook\n@required {id: str}\n@returns(204) No response body\n@errors {400, 401, 404, 500}\n\n@endgroup\n\n@group wizard\n@endpoint GET /wizard/targets\n@desc List Wizard Targets\n@optional {length: int # Number of results to return per page., ordering: str # Which field to use when ordering the results., page: int # A page number within the paginated result set., search: str # A search term.}\n@returns(200) {count: int, page_total: int, page: int, length: int, results: [map]}\n@errors {400, 401, 500}\n\n@endgroup\n\n@end\n"}