> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectdiscovery.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Scan

> Trigger a scan



## OpenAPI

````yaml post /v1/scans
openapi: 3.1.0
info:
  title: PDCP 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: []
paths:
  /v1/scans:
    post:
      tags:
        - scans
      summary: Create Scan
      description: Trigger a scan
      operationId: post-v1-scans
      parameters:
        - schema:
            type: string
          in: header
          description: >-
            Retrieve the Team ID from:
            https://cloud.projectdiscovery.io/settings/team
          name: X-Team-Id
      requestBody:
        $ref: '#/components/requestBodies/TriggerUserScanRequest'
      responses:
        '200':
          $ref: '#/components/responses/TriggerUserScanResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '401':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
        - X-API-Key: []
components:
  requestBodies:
    TriggerUserScanRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              targets:
                type: array
                items:
                  type: string
              templates:
                type: array
                items:
                  type: string
              assets:
                type: array
                items:
                  type: string
              private_templates:
                type: array
                items:
                  $ref: '#/components/schemas/PrivateTemplates'
              name:
                type: string
              recommended:
                type: boolean
              all:
                type: boolean
              alerting_config_ids:
                type: array
                items:
                  type: string
              scan_config_ids:
                type: array
                items:
                  type: string
              reporting_config_ids:
                type: array
                items:
                  type: string
              early_templates:
                type: array
                items:
                  type: string
              exclude_targets:
                type: array
                items:
                  type: string
              enumeration_ids:
                type: array
                items:
                  $ref: '#/components/schemas/EnumerationIds'
              schedule_only:
                type: boolean
              disable_global_alert_config:
                type: boolean
              disable_global_report_config:
                type: boolean
              disable_global_scan_config:
                type: boolean
              socks5_proxy:
                type: string
              agent_id:
                type: string
              agent_tags:
                type: array
                items:
                  type: string
              agent_networks:
                type: array
                items:
                  type: string
              agent_behavior:
                enum:
                  - distribute
                  - mirror
                default: distribute
              automatic_scan:
                type: boolean
              scan_all_assets:
                type: boolean
              exclusions:
                type: array
                items:
                  type: string
                description: >-
                  Combined inclusion and exclusion patterns for scan scope.
                  Exclusion patterns (e.g. `*.staging.company.com`) filter out
                  matching targets. Inclusion patterns use a `+` prefix (e.g.
                  `+prod-*.company.com`) to restrict scanning 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.
              asset_filters:
                $ref: '#/components/schemas/AssetFilters'
  responses:
    TriggerUserScanResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - message
            properties:
              id:
                type: string
              message:
                type: string
              truncated-scan-targets:
                type: integer
        application/xml:
          schema:
            type: object
            properties:
              message:
                type: string
              id:
                type: string
        multipart/form-data:
          schema:
            type: object
            properties:
              message:
                type: string
              id:
                type: string
            required:
              - message
        text/html:
          schema:
            type: object
            properties:
              message:
                type: string
              id:
                type: string
            required:
              - message
    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
  schemas:
    PrivateTemplates:
      title: PrivateTemplates
      type: object
      properties:
        name:
          type: string
        contents:
          type: string
      required:
        - name
        - contents
    EnumerationIds:
      title: EnumerationIds
      type: object
      required:
        - id
      properties:
        id:
          type: string
    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
    TimeRangeQueryParameter:
      title: TimeRangeQueryParameter
      type: string
      enum:
        - last_day
        - last_week
        - last_month
        - last_3_months
        - last_6_months
        - last_12_months
        - all_time
  securitySchemes:
    X-API-Key:
      name: X-API-Key
      type: apiKey
      in: header

````