> ## 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.

# Get v1dataforseocatalog



## OpenAPI

````yaml https://api.surnex.io/.well-known/openapi.json get /v1/dataforseo/catalog
openapi: 3.1.0
info:
  title: Surnex API
  version: 0.2.0
servers:
  - url: https://api.surnex.io
security: []
paths:
  /v1/dataforseo/catalog:
    get:
      tags:
        - v1
      parameters:
        - schema:
            type: string
            minLength: 1
          required: false
          name: service
          in: query
        - schema:
            anyOf:
              - type: boolean
              - type: string
                enum:
                  - 'true'
              - type: string
                enum:
                  - 'false'
          required: false
          name: discover
          in: query
        - schema:
            type: string
            enum:
              - static
              - discovered
              - mixed
          required: false
          name: discovery_source
          in: query
        - schema:
            type: string
            minLength: 1
            maxLength: 128
          required: false
          name: search
          in: query
        - schema:
            type: string
            minLength: 1
            description: Service category used for grouping and filtering
          required: false
          description: Service category used for grouping and filtering
          name: category
          in: query
        - schema:
            anyOf:
              - type: boolean
              - type: string
                enum:
                  - 'true'
              - type: string
                enum:
                  - 'false'
          required: false
          name: refresh_discovery
          in: query
        - schema:
            type: string
            enum:
              - discovery_source
            description: >-
              Optional grouping key for response sections. When set, services
              are additionally bucketed into `groups` without removing
              `services`. Group keys are emitted in this order when present:
              `static`, `discovered`, `mixed`.
          required: false
          description: >-
            Optional grouping key for response sections. When set, services are
            additionally bucketed into `groups` without removing `services`.
            Group keys are emitted in this order when present: `static`,
            `discovered`, `mixed`.
          name: group_by
          in: query
      responses:
        '200':
          description: >-
            DataForSEO operation catalog. Group keys are deterministic
            (`static`, `discovered`, `mixed` when `group_by=discovery_source`).
          content:
            application/json:
              schema:
                type: object
                properties:
                  services:
                    type: array
                    items:
                      type: object
                      properties:
                        service:
                          type: string
                          minLength: 1
                        title:
                          type: string
                          minLength: 1
                        category:
                          type: string
                          minLength: 1
                          description: Service category used for grouping and filtering
                        description:
                          type: string
                        examples:
                          type: array
                          items:
                            type: string
                        discovery_source:
                          type: string
                          enum:
                            - static
                            - discovered
                            - mixed
                          description: CatalogDiscoverySource
                        operations:
                          type: array
                          items:
                            type: object
                            properties:
                              service:
                                type: string
                                minLength: 1
                              operation_path:
                                type: string
                                minLength: 1
                              path_template:
                                type: string
                                minLength: 1
                              method:
                                type: string
                                enum:
                                  - GET
                                  - POST
                                description: HTTPMethod
                              mode:
                                type: string
                                enum:
                                  - live
                                  - task_post
                                  - task_get
                                  - tasks_ready
                                  - tasks_fixed
                                description: DataForSeoOperationMode
                              description:
                                type: string
                              discovery_source:
                                type: string
                                enum:
                                  - static
                                  - discovered
                            required:
                              - service
                              - operation_path
                              - path_template
                              - method
                              - mode
                              - description
                      required:
                        - service
                        - title
                        - category
                        - description
                        - examples
                        - operations
                  total_services:
                    type: integer
                    minimum: 0
                  groups:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: object
                        properties:
                          service:
                            type: string
                            minLength: 1
                          title:
                            type: string
                            minLength: 1
                          category:
                            type: string
                            minLength: 1
                            description: Service category used for grouping and filtering
                          description:
                            type: string
                          examples:
                            type: array
                            items:
                              type: string
                          discovery_source:
                            type: string
                            enum:
                              - static
                              - discovered
                              - mixed
                            description: CatalogDiscoverySource
                          operations:
                            type: array
                            items:
                              type: object
                              properties:
                                service:
                                  type: string
                                  minLength: 1
                                operation_path:
                                  type: string
                                  minLength: 1
                                path_template:
                                  type: string
                                  minLength: 1
                                method:
                                  type: string
                                  enum:
                                    - GET
                                    - POST
                                  description: HTTPMethod
                                mode:
                                  type: string
                                  enum:
                                    - live
                                    - task_post
                                    - task_get
                                    - tasks_ready
                                    - tasks_fixed
                                  description: DataForSeoOperationMode
                                description:
                                  type: string
                                discovery_source:
                                  type: string
                                  enum:
                                    - static
                                    - discovered
                              required:
                                - service
                                - operation_path
                                - path_template
                                - method
                                - mode
                                - description
                        required:
                          - service
                          - title
                          - category
                          - description
                          - examples
                          - operations
                    description: >-
                      Grouped service buckets keyed by selected `group_by`
                      value. Omitted when `group_by` is not requested.
                  supports_custom_paths:
                    type: boolean
                  supports_any_dataforseo_path:
                    type: boolean
                  generated_at:
                    type: string
                  discovery_context:
                    type: object
                    properties:
                      requested_discovery:
                        type: boolean
                      force_refresh_requested:
                        type: boolean
                      source:
                        type: string
                        enum:
                          - none
                          - cache
                          - provider
                          - mixed
                      discovered_at:
                        type:
                          - string
                          - 'null'
                      cache_key:
                        type: string
                      cache_ttl_seconds:
                        type: integer
                        exclusiveMinimum: 0
                      cache_available:
                        type: boolean
                      cache_hit:
                        type: boolean
                      provider_calls:
                        type: integer
                        minimum: 0
                    required:
                      - requested_discovery
                      - force_refresh_requested
                      - source
                      - discovered_at
                      - cache_key
                      - cache_ttl_seconds
                      - cache_available
                      - cache_hit
                      - provider_calls
                required:
                  - services
                  - total_services
                  - supports_custom_paths
                  - supports_any_dataforseo_path
                  - generated_at
                  - discovery_context
              examples:
                catalog:
                  value:
                    discovery_context:
                      requested_discovery: false
                      force_refresh_requested: false
                      source: none
                      discovered_at: null
                      cache_key: dataforseo:catalog:discovered:v1
                      cache_ttl_seconds: 900
                      cache_available: true
                      cache_hit: false
                      provider_calls: 0
                    services:
                      - service: serp
                        category: serp
                        discovery_source: mixed
                        title: SERP API
                        description: Search engine results across web and vertical engines
                        examples:
                          - google
                          - bing
                        operations:
                          - service: serp
                            operation_path: /serp/google/organic/live
                            path_template: /serp/{se}/{type}/live
                            method: POST
                            mode: live
                            description: Live organic results
                            discovery_source: static
                    groups:
                      mixed:
                        - service: serp
                          category: serp
                          discovery_source: mixed
                          title: SERP API
                          description: >-
                            Search engine results across web and vertical
                            engines
                          examples:
                            - google
                            - bing
                          operations:
                            - service: serp
                              operation_path: /serp/google/organic/live
                              path_template: /serp/{se}/{type}/live
                              method: POST
                              mode: live
                              description: Live organic results
                              discovery_source: static
                    total_services: 1
                    supports_custom_paths: true
                    supports_any_dataforseo_path: true
                    generated_at: '2026-02-24T00:00:00Z'
        '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:
                              - service
                            message: unsupported service "unknown_service"
                            code: custom
        '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

````