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

# Post v1geosnapshots



## OpenAPI

````yaml https://api.surnex.io/.well-known/openapi.json post /v1/geo/snapshots
openapi: 3.1.0
info:
  title: Surnex API
  version: 0.2.0
servers:
  - url: https://api.surnex.io
security: []
paths:
  /v1/geo/snapshots:
    post:
      tags:
        - v1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                platform:
                  type: string
                  enum:
                    - google
                    - chat_gpt
                location_code:
                  type: integer
                language_code:
                  type: string
                  minLength: 2
                targets:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - domain
                          - keyword
                      value:
                        type: string
                        minLength: 1
                    required:
                      - type
                      - value
                    description: GeoSnapshotTarget
                  minItems: 1
                  maxItems: 10
                options:
                  type: object
                  properties:
                    include_top_domains:
                      type: boolean
                      default: false
                    include_top_pages:
                      type: boolean
                      default: false
                    include_evidence_rows:
                      type: boolean
                      default: false
                    evidence_target:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - domain
                            - keyword
                        value:
                          type: string
                          minLength: 1
                      required:
                        - type
                        - value
                      description: GeoSnapshotTarget
                    limit:
                      type: integer
                      exclusiveMinimum: 0
                      maximum: 1000
                  default:
                    include_top_domains: false
                    include_top_pages: false
                    include_evidence_rows: false
              required:
                - platform
                - location_code
                - language_code
                - targets
              description: CreateGeoSnapshotRequest
      responses:
        '200':
          description: Snapshot creation accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  snapshot_id:
                    type: string
                    format: uuid
                  status:
                    type: string
                    enum:
                      - queued
                      - running
                      - complete
                      - partial
                      - failed
                required:
                  - snapshot_id
                  - status
                description: CreateGeoSnapshotResponse
              examples:
                queued:
                  value:
                    snapshot_id: f47ac10b-58cc-4372-a567-0e02b2c3d479
                    status: queued
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      request_id:
                        type: string
                      details:
                        type: object
                        properties: {}
                        default: {}
                        additionalProperties: {}
                    required:
                      - code
                      - message
                      - request_id
                required:
                  - error
                description: ErrorResponse
              examples:
                badRequest:
                  value:
                    error:
                      code: VALIDATION_ERROR
                      message: Invalid request
                      request_id: req_123
                      details:
                        issues:
                          - path:
                              - platform
                            message: Invalid enum value
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      request_id:
                        type: string
                      details:
                        type: object
                        properties: {}
                        default: {}
                        additionalProperties: {}
                    required:
                      - code
                      - message
                      - request_id
                required:
                  - error
                description: ErrorResponse
              examples:
                unauthorized:
                  value:
                    error:
                      code: UNAUTHORIZED
                      message: Unauthorized
                      request_id: req_123
                      details:
                        reason: missing_or_invalid_api_key
        '502':
          description: Provider discovery failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      request_id:
                        type: string
                      details:
                        type: object
                        properties: {}
                        default: {}
                        additionalProperties: {}
                    required:
                      - code
                      - message
                      - request_id
                required:
                  - error
                description: ErrorResponse
              examples:
                providerUnavailable:
                  value:
                    error:
                      code: PROVIDER_ERROR
                      message: Failed to discover DataForSEO operations
                      request_id: req_123
                      details:
                        service: serp
                        provider_error:
                          code: BAD_REQUEST
                          message: Discovery endpoint failed
      security:
        - bearerAuth: []
        - apiKeyAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: 'Authorization: Bearer sk_...'
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````