openapi: 3.1.0 info: title: PDCP agents enumerations API version: '1.0' summary: ProjectDiscovery Cloud Platform description: For more details, checkout https://docs.projectdiscovery.io/api-reference/editor/scan servers: - url: https://api.projectdiscovery.io description: Production - url: https://api.dev.projectdiscovery.io description: Development - url: http://localhost:8085 description: Localhost security: - X-API-Key: [] tags: - name: enumerations paths: /v1/asset/enumerate: get: summary: Get Enumeration List tags: - enumerations responses: '200': $ref: '#/components/responses/EnumerateResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate parameters: - schema: type: integer in: query name: offset description: The number of items to skip before starting to collect the result set - schema: type: integer in: query name: limit description: The numbers of items to return - schema: type: string in: query name: search description: search keyword in enumeration list - schema: type: string in: query name: enum_type description: types of enumeration list (comma seperated) - schema: type: string in: query name: sort_asc description: comma separated ascending sorting e.g sort_asc=created_at,name - schema: type: string in: query name: sort_desc description: comma separated descending sorting e.g sort_desc=created_at,name - schema: type: string in: query name: status description: comma separated filter enumeration result by status - schema: type: string enum: - last_day - last_week - last_month - last_3_months - last_6_months - last_12_months - all_time default: all_time in: query name: time description: time range to get enumerations from - schema: type: string format: date in: query name: start_date description: time filter start date - schema: type: string format: date in: query name: end_date description: time filter end date - schema: type: string in: query name: custom_filter description: custom query to filter. double encode the query string. - schema: type: boolean in: query name: is_internal description: filter by internal enumerations - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id security: - X-API-Key: [] description: Get enumeration list post: summary: Create Enumeration tags: - enumerations responses: '200': description: OK content: application/json: schema: type: object properties: id: type: string truncated-scan-targets: type: integer is-public: type: boolean bulk_ids: type: array items: type: string failed_domains: type: object additionalProperties: type: string description: Map of domain to failure reason '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: post-v1-asset-enumerate requestBody: content: application/json: schema: type: object properties: root_domains: type: array items: type: string enrichment_inputs: type: array items: type: string cloudlist_config_ids: type: array items: type: string name: type: string steps: type: array items: type: string enum: - dns_resolve - dns_bruteforce - dns_permute - port_scan - http_probe - http_screenshot - endpoint_crawling - dns_passive - tls_scan - uncover_assets - dns_scraping enumeration_ports: type: string alerting_config_ids: type: array items: type: string disable_global_alert_config: type: boolean exclude_targets: type: array items: type: string enumeration_config: type: object properties: follow-redirect: type: boolean ports: type: string automatic_vuln_scans: type: boolean per_domain_enumeration: type: boolean agent_id: type: string agent_tags: type: array items: type: string agent_networks: type: array items: type: string agent_behavior: type: string enum: - distribute - mirror default: distribute agent_auto_discover: type: boolean exclusions: type: array items: type: string description: Combined inclusion and exclusion patterns for discovery scope. Exclusion patterns (e.g. `*.staging.company.com`) filter out matching targets. Inclusion patterns use a `+` prefix (e.g. `+prod-*.company.com`) to restrict discovery to only matching targets (allowlist mode). When inclusion patterns are present, targets must match at least one inclusion pattern and not match any exclusion pattern. Supports exact domains, wildcard patterns, IP addresses, and CIDR ranges. security: - X-API-Key: [] description: Create a new enumeration parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id delete: summary: Delete Assets in bulk tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: delete-v1-asset-enumerates requestBody: content: application/json: schema: type: object required: - asset_ids properties: asset_ids: type: array items: type: string security: - X-API-Key: [] description: Delete enumeration by enumerate ids parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id /v1/asset/enumerate/{enumerate_id}: parameters: - schema: type: string name: enumerate_id in: path required: true get: summary: Get Enumeration tags: - enumerations responses: '200': $ref: '#/components/responses/GetEnumerateIdContentsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate-enumerate_id security: - X-API-Key: [] description: Get enumeration by enumerate_id parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id patch: summary: Update Enumeration tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: patch-v1-asset-enumerate-enumerate_id requestBody: content: application/json: schema: type: object properties: name: type: string security: - X-API-Key: [] description: Update enumeration by enumerate_id parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id delete: summary: Delete Enumeration tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: delete-v1-asset-enumerate-enumerate_id security: - X-API-Key: [] description: Delete enumeration by enumerate_id parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id /v1/asset/enumerate/{enumerate_id}/contents: parameters: - schema: type: string name: enumerate_id in: path required: true get: summary: Get Enumeration Contents tags: - enumerations responses: '200': $ref: '#/components/responses/GetEnumerateIdContents' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate-enumerate_id-contents parameters: - schema: type: integer default: 0 in: query name: offset description: The number of items to skip before starting to collect the result set - schema: type: integer default: 100 in: query name: limit description: The numbers of items to return - schema: type: boolean in: query name: is_tech description: Return records that have technologies - schema: type: boolean in: query name: is_favicon description: Return the records that have favicon - schema: type: string name: search in: query description: Search on the content name - schema: type: string in: query name: labels description: Filter by comma separated labels, e.g-> labels=p1,p2 - schema: type: boolean in: query name: is_new description: Filter by new content - schema: type: string in: query name: host description: Filter by comma separated hosts, e.g-> host=p1,p2 - schema: type: string in: query name: port description: Filter by comma separated ports, e.g-> port=p1,p2 - schema: type: string in: query name: status_code description: Filter by comma separated status codes, e.g-> status_code=p1,p2 - schema: type: string in: query name: title description: Filter by comma separated titles, e.g-> title=p1,p2 - schema: type: string in: query name: content_length description: Filter by comma separated content lengths, e.g-> content_length=p1,p2 - schema: type: string in: query name: cname description: cname to filter - schema: type: string in: query name: domain description: Filter by comma separated domain names, e.g-> domain=domain1.com,domain2.com - schema: type: string in: query name: technologies description: technologies to filter - schema: type: string in: query name: ip description: ips to filter - schema: type: string in: query name: sort_asc description: comma separated ascending sorting e.g sort_asc=created_at,name - schema: type: string in: query name: sort_desc description: comma separated descending sorting e.g sort_desc=created_at,name - schema: type: boolean in: query name: is_screenshot description: asset with screenshots - schema: $ref: '#/components/schemas/TimeRangeQueryParameter' default: all_time in: query name: time description: time filter to select - schema: type: string format: date in: query name: start_date description: time filter start date - schema: type: string format: date in: query name: end_date description: time filter end date - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - schema: type: string in: query name: custom_filter description: custom query to filter. double encode the query string. - schema: type: string in: query name: favicon description: Filter by comma separated favicons, e.g-> favicon=p1,p2 - schema: type: boolean in: query name: only_dns description: Query only dns FQDN records - schema: type: boolean in: query name: only_ip description: Query only dns IP records - schema: type: boolean in: query name: is_internal description: filter by is_internal (internal vs external hosts) security: - X-API-Key: [] description: Get enumeration content by enumerate_id /v1/asset/enumerate/contents: get: summary: Get All Enumeration Contents tags: - enumerations responses: '200': $ref: '#/components/responses/GetEnumerateIdContents' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate-contents parameters: - schema: type: integer default: 0 in: query name: offset description: The number of items to skip before starting to collect the result set - schema: $ref: '#/components/schemas/TimeRangeQueryParameter' default: all_time in: query name: time description: time filter to select - schema: type: integer default: 100 in: query name: limit description: The numbers of items to return - schema: type: boolean in: query name: is_tech description: Return records that have technologies - schema: type: boolean in: query name: is_favicon description: Return the records that have favicon - schema: type: string name: search in: query description: Search on the content name - schema: type: string in: query name: labels description: Filter by comma separated labels, e.g-> labels=p1,p2 - schema: type: boolean in: query name: is_new description: Filter by new content - schema: type: string in: query name: host description: Filter by comma separated labels, e.g-> host=p1,p2 - schema: type: string in: query name: port description: Filter by port separated labels, e.g-> port=p1,p2 - schema: type: string in: query name: status_code description: Filter by status code separated labels, e.g-> status_code=p1,p2 - schema: type: string in: query name: title description: Filter by title separated labels, e.g-> title=p1,p2 - schema: type: string in: query name: content_length description: Filter by content length separated labels, e.g-> content_length=p1,p2 - schema: type: string in: query name: domain description: Filter by domain names separated labels, e.g-> domain=domain1.com,domain2.com - schema: type: string in: query name: cname description: cname to filter - schema: type: string in: query name: technologies description: technologies to filter - schema: type: string in: query name: ip description: ips to filter - schema: type: string in: query name: sort_asc description: comma separated ascending sorting e.g sort_asc=created_at,name - schema: type: string in: query name: sort_desc description: comma separated descending sorting e.g sort_desc=created_at,name - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - schema: type: string in: query name: custom_filter description: custom query to filter. double encode the query string. - schema: type: boolean in: query name: is_screenshot description: asset with screenshots - schema: type: string in: query name: favicon description: Filter by comma separated favicons, e.g-> favicon=p1,p2 - schema: type: boolean in: query name: only_dns description: Query only dns FQDN records - schema: type: boolean in: query name: only_ip description: Query only dns IP records - schema: type: boolean in: query name: is_internal description: filter by is_internal (internal vs external hosts) security: - X-API-Key: [] description: Get All enumeration content /v1/asset/enumerate/{enumerate_id}/stop: parameters: - schema: type: string name: enumerate_id in: path required: true post: summary: Stop Enumeration tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: post-v1-asset-enumerate-enumerate_id-stop security: - X-API-Key: [] description: Stop a running enumeration parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id /v1/asset/enumerate/{enumerate_id}/rescan: parameters: - schema: type: string name: enumerate_id in: path required: true post: summary: Rescan Enumeration operationId: post-v1-asset-enumerate-enumerate_id-rescan tags: - enumerations responses: '200': description: OK content: application/json: schema: type: object required: - id properties: id: type: string truncated-scan-targets: type: integer '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: Re-run a existing enumeration parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id /v1/asset/enumerate/{enum_id}/export: parameters: - schema: type: string name: enum_id in: path required: true - schema: type: boolean in: query name: async get: summary: Export Enumeration tags: - enumerations responses: '200': description: OK content: application/octet-stream: schema: type: string '201': description: Created content: application/json: schema: type: object properties: export_id: type: string required: - export_id '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-enumerate-id-export parameters: - schema: $ref: '#/components/schemas/EnumExportFormats' in: query name: format - schema: type: string in: query name: search description: Search by string - schema: type: string in: query name: labels description: Filter by comma separated labels, e.g-> labels=p1,p2 - schema: type: boolean in: query name: is_new description: Filter by new content - schema: type: string in: query name: host description: Filter by comma separated hosts, e.g-> host=p1,p2 - schema: type: string in: query name: domains description: Filter by comma separated domains, e.g-> domains=p1,p2 - schema: type: string in: query name: port description: Filter by comma separated ports, e.g-> port=p1,p2 - schema: type: string in: query name: status_code description: Filter by comma separated status codes, e.g-> status_code=p1,p2 - schema: type: string in: query name: title description: Filter by comma separated titles, e.g-> title=p1,p2 - schema: type: string in: query name: content_length description: Filter by comma separated content lengths, e.g-> content_length=p1,p2 - schema: type: string in: query name: cname description: cname to filter - schema: type: string in: query name: technologies description: technologies to filter - schema: type: string in: query name: ip description: ips to filter - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - schema: type: string in: query name: custom_filter description: custom query to filter. double encode the query string. - schema: type: boolean in: query name: is_screenshot description: Return records that have screenshots - schema: type: boolean in: query name: is_tech description: Return records that have technologies - schema: type: boolean in: query name: is_favicon description: Return the records that have favicon - schema: $ref: '#/components/schemas/TimeRangeQueryParameter' default: all_time in: query name: time description: time filter to select - schema: type: string format: date in: query name: start_date description: time filter start date - schema: type: string format: date in: query name: end_date description: time filter end date - schema: type: string in: query name: favicon description: Filter by comma separated favicons, e.g-> favicon=p1,p2 - schema: type: boolean in: query name: only_dns description: Query only dns FQDN records - schema: type: boolean in: query name: only_ip description: Query only dns IP records security: - X-API-Key: [] description: Export the list of discovered assets for an enumeration. /v1/asset/enumerate/group: post: summary: Create an asset group tags: - enumerations responses: '200': description: OK content: application/json: schema: type: object required: - id properties: id: type: string '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: $ref: '#/components/requestBodies/CreateAssetGroupRequest' operationId: post-v1-asset-enumerate-group parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id security: - X-API-Key: [] description: Create an asset group from existing enumeration data using filters /v1/asset/enumerate/group/{group_id}: parameters: - schema: type: string name: group_id in: path required: true delete: summary: Delete an asset group tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: delete-v1-asset-enumerate-group parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id security: - X-API-Key: [] description: Delete an asset group by id patch: summary: Update an asset group tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: $ref: '#/components/requestBodies/UpdateAssetGroupRequest' operationId: patch-v1-asset-enumerate-group parameters: - schema: type: string enum: - append - replace default: append in: query name: update_type description: Append vs Replace update_type. Default is append - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id security: - X-API-Key: [] description: Update an asset group by customising the filters /v1/enumeration/schedule: get: summary: Get Enumeration Schedules tags: - enumerations responses: '200': $ref: '#/components/responses/GetEnumerationScheduleResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-enumeration-schedule security: - X-API-Key: [] description: Get enumeration re-scan schedule parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id post: summary: Set Enumeration Schedule operationId: post-v1-enumeration-schedule tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: $ref: '#/components/requestBodies/SetEnumerationScheduleRequest' security: - X-API-Key: [] description: Set enumeration re-scan frequency parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id delete: summary: Delete Enumeration Schedule operationId: delete-v1-enumeration-schedule tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' parameters: - schema: type: string in: query name: enumeration_id description: enumeration_id of the schedule to be deleted required: true - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id security: - X-API-Key: [] description: Delete a re-scan schedule /v1/asset/enumerate/{enumerate_id}/stats: parameters: - schema: type: string name: enumerate_id in: path required: true - schema: $ref: '#/components/schemas/TimeRangeQueryParameter' default: all_time in: query name: time description: time filter to select - schema: type: string format: date in: query name: start_date description: time filter start date - schema: type: string format: date in: query name: end_date description: time filter end date - schema: type: boolean in: query name: only_dns description: Query only dns FQDN records - schema: type: boolean in: query name: only_ip description: Query only dns IP records - schema: type: boolean in: query name: is_internal description: filter by is_internal (internal vs external hosts) get: summary: Get enumeration stats tags: - enumerations responses: '200': $ref: '#/components/responses/EnumerationStatsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate-enumerate_id-stats parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id /v1/asset/domain/{domain_name}/stats: parameters: - schema: type: string name: domain_name in: path required: true - schema: $ref: '#/components/schemas/TimeRangeQueryParameter' default: all_time in: query name: time description: time filter to select - schema: type: string format: date in: query name: start_date description: time filter start date - schema: type: string format: date in: query name: end_date description: time filter end date get: summary: Get domain stats tags: - enumerations responses: '200': $ref: '#/components/responses/EnumerationStatsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-domain-domain_name-stats parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id /v1/asset/enumerate/stats: parameters: - schema: $ref: '#/components/schemas/TimeRangeQueryParameter' default: all_time in: query name: time description: time filter to select - schema: type: string format: date in: query name: start_date description: time filter start date - schema: type: string format: date in: query name: end_date description: time filter end date - schema: type: boolean in: query name: only_dns description: Query only dns FQDN records - schema: type: boolean in: query name: only_ip description: Query only dns IP records get: summary: Get all enumeration stats tags: - enumerations responses: '200': $ref: '#/components/responses/EnumerationStatsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate-stats parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id /v1/asset/enumerate/{enumerate_id}/config: parameters: - schema: type: string name: enumerate_id in: path required: true get: summary: Get enumeration config tags: - enumerations responses: '200': description: Shared Response content: application/json: schema: $ref: '#/components/schemas/EnumerationConfig' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate-enumerate_id-config parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id /v1/asset/enumerate/filters: get: summary: Group assets by filters tags: - enumerations responses: '200': $ref: '#/components/responses/GetEnumerateFiltersResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate-filters parameters: - in: query name: offset schema: type: integer description: The number of items to skip before starting to collect the result set - in: query name: limit schema: type: integer description: The numbers of items to return - in: query name: host schema: type: string - in: query name: port schema: type: string - in: query name: ip schema: type: string - in: query name: cname schema: type: string - in: query name: technologies schema: type: string - in: query name: status_code schema: type: string - in: query name: content_length schema: type: string - in: query name: domain schema: type: string - in: query name: title schema: type: string - in: query name: webserver schema: type: string - in: query name: favicon schema: type: string - in: query name: labels schema: type: string - schema: $ref: '#/components/schemas/EnumerateFilterTypes' in: query name: group_by description: Group by type. e.g. - host, port, favicon. required: true - schema: type: string enum: - cname - content_length - favicon - host - ip - port - status_code - technologies - title - webserver in: query name: sort_asc description: supported sort fields - schema: type: string enum: - cname - content_length - favicon - host - ip - port - status_code - technologies - title - webserver in: query name: sort_desc description: supported sort fields - schema: $ref: '#/components/schemas/TimeRangeQueryParameter' default: all_time in: query name: time description: time filter to select - schema: type: string format: date in: query name: start_date description: time filter start date - schema: type: string format: date in: query name: end_date description: time filter end date - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - schema: type: boolean in: query name: is_screenshot - schema: type: boolean in: query name: is_tech - schema: type: boolean in: query name: is_favicon description: Filter items with favicon - schema: type: boolean in: query name: only_dns description: Query only dns FQDN records - schema: type: boolean in: query name: only_ip description: Query only dns IP records - schema: type: string in: query name: custom_filter description: Filter by custom filter. Double encode the query string. /v1/asset/enumerate/{enumerate_id}/filters: parameters: - schema: type: string name: enumerate_id in: path required: true get: summary: Group assets by filters for an enumeration tags: - enumerations responses: '200': $ref: '#/components/responses/GetEnumerateFiltersResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate-id-filters parameters: - in: query name: offset schema: type: integer description: The number of items to skip before starting to collect the result set - in: query name: limit schema: type: integer description: The numbers of items to return - in: query name: host schema: type: string - in: query name: port schema: type: string - in: query name: ip schema: type: string - in: query name: cname schema: type: string - in: query name: technologies schema: type: string - in: query name: status_code schema: type: string - in: query name: content_length schema: type: string - in: query name: domain schema: type: string - in: query name: title schema: type: string - in: query name: webserver schema: type: string - in: query name: labels schema: type: string - in: query name: favicon schema: type: string - schema: $ref: '#/components/schemas/EnumerateFilterTypes' in: query name: group_by description: Group by type. e.g. - host, port, favicon. required: true - schema: type: string enum: - cname - content_length - favicon - host - ip - port - status_code - technologies - title - webserver - labels in: query name: sort_asc description: supported sort fields - schema: type: string enum: - cname - content_length - favicon - host - ip - port - status_code - technologies - title - webserver - labels in: query name: sort_desc description: supported sort fields - schema: $ref: '#/components/schemas/TimeRangeQueryParameter' default: all_time in: query name: time description: time filter to select - schema: type: string format: date in: query name: start_date description: time filter start date - schema: type: string format: date in: query name: end_date description: time filter end date - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - schema: type: boolean in: query name: is_screenshot - schema: type: boolean in: query name: is_tech - schema: type: boolean in: query name: is_favicon description: Filter items with favicon - schema: type: boolean in: query name: only_dns description: Query only dns FQDN records - schema: type: boolean in: query name: only_ip description: Query only dns IP records - schema: type: boolean in: query name: is_internal description: filter by is_internal (internal vs external hosts) - schema: type: string in: query name: custom_filter description: Filter by custom filter. Double encode the query string. /v1/asset/domain/{domain_name}/filters: parameters: - schema: type: string name: domain_name in: path required: true get: summary: Group assets by filters for an domain tags: - enumerations responses: '200': $ref: '#/components/responses/GetEnumerateFiltersResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-domain-domain-name-filters parameters: - in: query name: offset schema: type: integer description: The number of items to skip before starting to collect the result set - in: query name: limit schema: type: integer description: The numbers of items to return - in: query name: host schema: type: string - in: query name: port schema: type: string - in: query name: ip schema: type: string - in: query name: cname schema: type: string - in: query name: technologies schema: type: string - in: query name: status_code schema: type: string - in: query name: content_length schema: type: string - in: query name: domain schema: type: array items: type: string - in: query name: title schema: type: string - in: query name: webserver schema: type: string - in: query name: labels schema: type: string - in: query name: favicon schema: type: string - schema: $ref: '#/components/schemas/EnumerateFilterTypes' in: query name: group_by description: Group by type. e.g. - host, port, favicon. required: true - schema: type: string enum: - cname - content_length - favicon - host - ip - port - status_code - technologies - title - webserver - labels in: query name: sort_asc description: supported sort fields - schema: type: string enum: - cname - content_length - favicon - host - ip - port - status_code - technologies - title - webserver - labels in: query name: sort_desc description: supported sort fields - schema: $ref: '#/components/schemas/TimeRangeQueryParameter' default: all_time in: query name: time description: time filter to select - schema: type: string format: date in: query name: start_date description: time filter start date - schema: type: string format: date in: query name: end_date description: time filter end date - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - schema: type: boolean in: query name: is_screenshot /v1/asset/enumerate/export: parameters: - schema: type: boolean in: query name: async get: summary: Export Enumeration of user tags: - enumerations responses: '200': description: OK content: application/octet-stream: schema: type: string '201': description: Created content: application/json: schema: type: object properties: export_id: type: string required: - export_id '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-enumerate-export parameters: - schema: $ref: '#/components/schemas/EnumExportFormats' in: query name: format - schema: type: string name: search in: query description: Search on the content name - schema: type: string in: query name: labels description: Filter by comma separated labels, e.g-> labels=p1,p2 - schema: type: boolean in: query name: is_new description: Filter by new content - schema: type: string in: query name: host description: Filter by comma separated labels, e.g-> host=p1,p2 - schema: type: string in: query name: port description: Filter by port separated labels, e.g-> port=p1,p2 - schema: type: string in: query name: status_code description: Filter by status code separated labels, e.g-> status_code=p1,p2 - schema: type: string in: query name: title description: Filter by title separated labels, e.g-> title=p1,p2 - schema: type: string in: query name: content_length description: Filter by content length separated labels, e.g-> content_length=p1,p2 - schema: type: string in: query name: domain description: Filter by domain names separated labels, e.g-> domain=domain1.com,domain2.com - schema: type: string in: query name: cname description: cname to filter - schema: type: string in: query name: technologies description: technologies to filter - schema: type: string in: query name: sort_asc description: comma separated ascending sorting e.g sort_asc=created_at,name - schema: type: string in: query name: sort_desc - schema: $ref: '#/components/schemas/TimeRangeQueryParameter' default: all_time in: query name: time description: time filter to select - schema: type: string format: date in: query name: start_date description: time filter start date - schema: type: string format: date in: query name: end_date description: time filter end date - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - schema: type: string in: query name: custom_filter description: custom query to filter. double encode the query string. - schema: type: boolean in: query name: is_screenshot - schema: type: string in: query name: ip description: ips to filter - schema: type: string in: query name: favicon description: Filter by comma separated favicons, e.g-> favicon=p1,p2 - schema: type: boolean in: query name: only_dns description: Query only dns FQDN records - schema: type: boolean in: query name: only_ip description: Query only dns IP records security: - X-API-Key: [] description: Export the list of discovered assets for all enumerations. /v1/asset/domain/{domain_name}: parameters: - schema: type: string name: domain_name in: path required: true get: summary: Get Enumeration Domain Contents tags: - enumerations responses: '200': $ref: '#/components/responses/GetEnumerateIdContents' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-domain-domain_name-contents parameters: - schema: type: integer default: 0 in: query name: offset description: The number of items to skip before starting to collect the result set - schema: type: integer default: 100 in: query name: limit description: The numbers of items to return - schema: type: boolean in: query name: is_tech description: Return records that have technologies - schema: type: boolean in: query name: is_favicon description: Return the records that have favicon - schema: type: string name: search in: query description: Search on the content name - schema: type: string in: query name: labels description: Filter by comma separated labels, e.g-> labels=p1,p2 - schema: type: boolean in: query name: is_new description: Filter by new content - schema: type: string in: query name: host description: Filter by comma separated hosts, e.g-> host=p1,p2 - schema: type: string in: query name: port description: Filter by comma separated ports, e.g-> port=p1,p2 - schema: type: string in: query name: status_code description: Filter by comma separated status codes, e.g-> status_code=p1,p2 - schema: type: string in: query name: title description: Filter by comma separated titles, e.g-> title=p1,p2 - schema: type: string in: query name: content_length description: Filter by comma separated content lengths, e.g-> content_length=p1,p2 - schema: type: string in: query name: cname description: cname to filter - schema: type: string in: query name: technologies description: technologies to filter - schema: type: string in: query name: ip description: ips to filter - schema: type: string in: query name: sort_asc description: comma separated ascending sorting e.g sort_asc=created_at,name - schema: type: string in: query name: sort_desc description: comma separated descending sorting e.g sort_desc=created_at,name - schema: type: boolean in: query name: is_screenshot description: asset with screenshots - schema: $ref: '#/components/schemas/TimeRangeQueryParameter' default: all_time in: query name: time description: time filter to select - schema: type: string format: date in: query name: start_date description: time filter start date - schema: type: string format: date in: query name: end_date description: time filter end date - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - schema: type: string in: query name: custom_filter description: custom query to filter. double encode the query string. - schema: type: string in: query name: favicon description: Filter by comma separated favicons, e.g-> favicon=p1,p2 security: - X-API-Key: [] description: Get enumeration content by domain_name /v1/asset/domain/{domain_name}/export: parameters: - schema: type: string name: domain_name in: path required: true - schema: type: boolean in: query name: async get: summary: Export Enumeration of user by domain tags: - enumerations responses: '200': description: OK content: application/octet-stream: schema: type: string '201': description: Created content: application/json: schema: type: object properties: export_id: type: string required: - export_id '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-domain-domain_name-export parameters: - schema: $ref: '#/components/schemas/EnumExportFormats' in: query name: format - schema: type: string name: search in: query description: Search on the content name - schema: type: string in: query name: labels description: Filter by comma separated labels, e.g-> labels=p1,p2 - schema: type: boolean in: query name: is_new description: Filter by new content - schema: type: string in: query name: host description: Filter by comma separated labels, e.g-> host=p1,p2 - schema: type: string in: query name: port description: Filter by port separated labels, e.g-> port=p1,p2 - schema: type: string in: query name: status_code description: Filter by status code separated labels, e.g-> status_code=p1,p2 - schema: type: string in: query name: title description: Filter by title separated labels, e.g-> title=p1,p2 - schema: type: string in: query name: content_length description: Filter by content length separated labels, e.g-> content_length=p1,p2 - schema: type: string in: query name: domain description: Filter by domain names separated labels, e.g-> domain=domain1.com,domain2.com - schema: type: string in: query name: cname description: cname to filter - schema: type: string in: query name: technologies description: technologies to filter - schema: type: string in: query name: sort_asc description: comma separated ascending sorting e.g sort_asc=created_at,name - schema: type: string in: query name: sort_desc - schema: $ref: '#/components/schemas/TimeRangeQueryParameter' default: all_time in: query name: time description: time filter to select - schema: type: string format: date in: query name: start_date description: time filter start date - schema: type: string format: date in: query name: end_date description: time filter end date - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - schema: type: string in: query name: custom_filter description: custom query to filter. double encode the query string. - schema: type: boolean in: query name: is_screenshot - schema: type: string in: query name: ip description: ips to filter - schema: type: string in: query name: favicon description: Filter by comma separated favicons, e.g-> favicon=p1,p2 security: - X-API-Key: [] description: Export enumeration content by domain components: responses: GetEnumerationScheduleResponse: description: Example response content: application/json: schema: type: object required: - message - schedules properties: message: type: string schedules: type: array items: $ref: '#/components/schemas/EnumerationSchedule' GetEnumerateFiltersResponse: description: Example response content: application/json: schema: type: object required: - message - current_page - result_count - total_results - total_pages - data properties: message: type: string current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer data: type: array items: $ref: '#/components/schemas/EnumerateFiltersItem' ErrorResponse: description: Example response content: application/json: schema: type: object required: - message properties: message: type: string kind: type: string code: type: string error: type: string error_id: type: string param: type: string status: type: integer GetEnumerateIdContentsResponse: description: Example response content: application/json: schema: type: object required: - message - data properties: message: type: string data: $ref: '#/components/schemas/EnumerateData' EnumerateResponse: description: Example response content: application/json: schema: type: object required: - current_page - result_count - total_results - total_pages - data properties: current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer data: type: array items: $ref: '#/components/schemas/EnumerateData' EnumerationStatsResponse: description: Example response content: application/json: schema: type: object required: - asset_stats properties: asset_stats: $ref: '#/components/schemas/AssetStats' enumeration_stats: $ref: '#/components/schemas/EnumerationCounts' GetEnumerateIdContents: description: Example response content: application/json: schema: type: object required: - current_page - result_count - total_results - total_pages - message - data properties: current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer message: type: string data: type: array items: $ref: '#/components/schemas/EnumerationContent' MessageResponse: description: Example response content: application/json: schema: type: object required: - message properties: message: type: string schemas: EnumerationLaunchConfig: title: EnumerationLaunchConfig type: object properties: follow-redirect: type: boolean ports: type: string EnumExportFormats: title: EnumExportFormats type: string enum: - raw - json - csv EnumerateFilterTypes: title: EnumerateFilterTypes type: string enum: - host - port - ip - cname - technologies - status_code - content_length - title - webserver - favicon - domain - labels AssetFilters: title: AssetFilters type: object additionalProperties: false properties: is_tech: type: boolean description: Return records that have technologies is_favicon: type: boolean description: Return the records that have favicon is_new: type: boolean description: Filter by new content labels: type: string description: Filter by comma separated labels, e.g-> labels=p1,p2 host: type: string description: Filter by comma separated hosts, e.g-> host=p1,p2 port: type: string description: Filter by comma separated ports, e.g-> port=p1,p2 status_code: type: string description: Filter by comma separated status codes, e.g-> status_code=p1,p2 content_length: type: string description: Filter by comma separated content lengths, e.g-> content_length=p1,p2 title: type: string description: Filter by comma separated titles, e.g-> title=p1,p2 domain: type: array description: Filter by comma separated domain names, e.g-> domain=domain1.com,domain2.com items: type: string cname: type: string description: Filter by comma separated cnames, e.g-> cname=p1,p2 technologies: type: string description: Filter by comma separated technologies, e.g-> technologies=p1,p2 ip: type: string description: Filter by comma separated ips, e.g-> ip=p1,p2 is_screenshot: type: boolean description: Return the records with screenshots time: $ref: '#/components/schemas/TimeRangeQueryParameter' description: Filter by time range start_date: type: string format: date description: Filter by start date end_date: type: string format: date description: Filter by end date custom_filter: type: string description: Filter by custom filter. Double encode the query string. search: type: string description: Search on the content name enumeration_ids: type: array items: type: string description: Filter by enumeration ids only_dns: type: boolean description: Query only dns FQDN records only_ip: type: boolean description: Query only dns IP records AssetStats: title: AssetStats type: object properties: host: type: integer format: int64 new_assets: type: integer format: int64 total_assets: type: integer format: int64 technologies: type: integer format: int64 domains: type: integer format: int64 port: type: integer format: int64 screenshots: type: integer format: int64 vulnerabilities: type: integer format: int64 is_internal: type: integer format: int64 description: Count of internal assets is_external: type: integer format: int64 description: Count of external assets required: - domains - host - port - total_assets - new_assets - technologies - vulnerabilities - screenshots EnumerateData: title: EnumerateData type: object required: - id - name - status - created_at properties: id: type: string name: type: string status: type: string failure_reason: type: string completed_at: type: string format: date-time enumeration_time: type: string format: duration enumeration_type: type: string enumeration_stats: $ref: '#/components/schemas/EnumerationStats' created_at: type: string format: date-time updated_at: type: string format: date-time root_domains: type: array items: type: string exclusions: type: array items: type: string description: Combined inclusion (prefixed with +) and exclusion patterns for discovery scope enrichment_hosts_count: type: integer is_rescan: type: boolean rescan_count: type: integer cloudlist_config_ids: type: array items: type: string cloudlist_provider_name: type: string enumeration_time_elapsed: type: string total_assets: type: integer format: int64 new_assets: type: integer format: int64 domain_names: type: array items: type: string schedule: $ref: '#/components/schemas/EnumerationSchedule' is_public: type: boolean asset_group_filters: type: object $ref: '#/components/schemas/AssetFilters' body: type: string agent_id: type: string agent_tags: type: array items: type: string agent_networks: type: array items: type: string agent_behavior: type: string enum: - distribute - mirror default: distribute agent_auto_discover: type: boolean automatic_vuln_scans: type: boolean is_internal: type: boolean EnumerationContentTechnologyDetails: title: EnumerationContentTechnologyDetails type: object properties: description: type: string website: type: string icon: type: string categories: type: array items: type: string TimeRangeQueryParameter: title: TimeRangeQueryParameter type: string enum: - last_day - last_week - last_month - last_3_months - last_6_months - last_12_months - all_time SchedulerFrequency: title: SchedulerFrequency type: string enum: - hourly - daily - weekly - monthly - custom description: Allowed frequencies for the scheduler EnumerationConfig: title: EnumerationConfig type: object properties: name: type: string root_domains: type: array items: type: string enrichment_inputs: type: array items: type: string steps: type: array items: type: string enum: - dns_resolve - dns_bruteforce - dns_permute - port_scan - http_probe - http_screenshot - endpoint_crawling - dns_passive - tls_scan - uncover_assets - dns_scraping enum_ports: type: string enumeration_config: $ref: '#/components/schemas/EnumerationLaunchConfig' alerting_config_ids: type: array items: type: string subfinder_config_ids: type: array items: type: string exclusions: type: array items: type: string description: Combined inclusion (prefixed with +) and exclusion patterns for discovery scope automatic_vuln_scans: type: boolean EnumerationContent: title: EnumerationContent type: object required: - enumeration_id - name - created_at - id - is_new properties: enumeration_id: type: string name: type: string created_at: type: string updated_at: type: string id: type: integer format: int64 labels: type: array items: type: string cname: type: array items: type: string host: type: string port: type: integer ip: type: array items: type: string status_code: type: integer content_length: type: integer vulnerabilities: type: integer format: int64 title: type: string technologies: type: array items: type: string webserver: type: string method: type: string is_new: type: boolean type: type: string asset_hash: type: string technology_details: type: object additionalProperties: $ref: '#/components/schemas/EnumerationContentTechnologyDetails' screenshot_path: type: string favicon: type: string favicon_body: type: string cdn_name: type: string chain_status_codes: type: array items: type: string domain_name: type: string redirect_location: type: string asn: as_number: type: string as_country: type: string as_name: type: string as_range: type: array items: type: string type: object properties: as_country: type: string as_name: type: string as_number: type: string as_range: type: array items: type: string tls_serial_number: type: string tls_subject_org: type: string tls_issuer_org: type: string tls_expired: type: boolean tls_not_before: type: string format: date-time tls_self_signed: type: boolean tls_mismatched: type: boolean tls_revoked: type: boolean tls_untrusted: type: boolean tls_subject_cn: type: string tls_subject_an: type: array items: type: string body: type: string tls_not_after: type: string format: date-time enumeration_name: type: string extended_metadata: type: object source_type: type: string source: type: array items: $ref: '#/components/schemas/EnumerationSourceValue' is_internal: type: boolean EnumerationSchedule: title: EnumerationSchedule type: object required: - enumeration_id - scan_frequency - schedule_last_run - schedule_next_run properties: enumeration_id: type: string scan_frequency: type: string schedule_last_run: type: string schedule_next_run: type: string start_time: type: string format: time hourly_frequency: type: integer custom_weekdays: type: array description: 'Array of integer denoting the weekdays on which the scan is supposed to run. 0-6 denoting Sunday-Saturday.' items: type: integer minimum: 0 maximum: 6 EnumerationSourceValue: type: object required: - source - metadata properties: source: type: string metadata: type: object additionalProperties: type: string EnumerationStats: title: EnumerationStats type: object required: - hosts - http - endpoints - ports - total_assets properties: hosts: type: integer format: int64 http: type: integer format: int64 endpoints: type: integer format: int64 ports: type: integer format: int64 total_assets: type: integer format: int64 total_asset_groups: type: integer format: int64 EnumerateFiltersItem: title: EnumerateFiltersItem type: object required: - value - count properties: labels: type: string value: type: string port: type: integer technologies: type: integer categories: type: array items: type: string description: type: string website: type: string cpe: type: string icon: type: string favicon_body: type: string count: type: integer updated_at: type: string format: date-time EnumerationCounts: description: Example response title: EnumerationCounts type: object properties: total_enumeration: type: integer format: int64 total_unique_enumeration: type: integer format: int64 total_uploaded_enumeration: type: integer format: int64 total_discovery_enumeration: type: integer format: int64 total_cloud_enumeration: type: integer format: int64 requestBodies: SetEnumerationScheduleRequest: content: application/json: schema: type: object required: - enumeration_id - scan_frequency properties: enumeration_id: type: string scan_frequency: $ref: '#/components/schemas/SchedulerFrequency' start_time: type: string format: time hourly_frequency: type: integer minimum: 1 maximum: 24 custom_weekdays: type: array description: '0-6 denoting Sunday-Saturday. It accepts an array of weekday' items: type: integer minimum: 0 maximum: 6 CreateAssetGroupRequest: content: application/json: schema: type: object required: - filters properties: filters: $ref: '#/components/schemas/AssetFilters' name: type: string UpdateAssetGroupRequest: content: application/json: schema: type: object required: - filters properties: filters: $ref: '#/components/schemas/AssetFilters' name: type: string securitySchemes: X-API-Key: name: X-API-Key type: apiKey in: header x-internal: false