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



## OpenAPI

````yaml https://api.surnex.io/.well-known/openapi.json get /v1/dataforseo/catalog/templates
openapi: 3.1.0
info:
  title: Surnex API
  version: 0.2.0
servers:
  - url: https://api.surnex.io
security: []
paths:
  /v1/dataforseo/catalog/templates:
    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'
            default: true
          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:
              - GET
              - POST
            description: HTTPMethod
          required: false
          description: HTTPMethod
          name: method
          in: query
        - schema:
            type: string
            enum:
              - live
              - task_post
              - task_get
              - tasks_ready
              - tasks_fixed
            description: DataForSeoOperationMode
          required: false
          description: DataForSeoOperationMode
          name: mode
          in: query
        - schema:
            type: string
            enum:
              - service
              - method
              - mode
              - discovery_source
            description: >-
              Optional grouping key for response sections. When set, template
              entries are bucketed into `groups` without removing `templates`.
              Service keys are alphabetical; method keys are `GET|POST`; mode
              keys are `live|task_post|task_get|tasks_ready|tasks_fixed`;
              discovery source keys are `static`, `discovered`, or `mixed`.
          required: false
          description: >-
            Optional grouping key for response sections. When set, template
            entries are bucketed into `groups` without removing `templates`.
            Service keys are alphabetical; method keys are `GET|POST`; mode keys
            are `live|task_post|task_get|tasks_ready|tasks_fixed`; discovery
            source keys are `static`, `discovered`, or `mixed`.
          name: group_by
          in: query
        - schema:
            type: integer
            exclusiveMinimum: 0
            maximum: 250
            default: 100
          required: false
          name: limit
          in: query
        - schema:
            type:
              - integer
              - 'null'
            minimum: 0
            default: 0
          required: false
          name: offset
          in: query
      responses:
        '200':
          description: >-
            Operation templates for UI builders with path-variable hints and
            execution scaffolding. Designed for low-friction operation pickers
            and request construction.
          content:
            application/json:
              schema:
                type: object
                properties:
                  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
                  templates:
                    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
                        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
                        discovery_source:
                          type: string
                          enum:
                            - static
                            - discovered
                        path_variables:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                minLength: 1
                              segment_index:
                                type: integer
                                minimum: 0
                              description:
                                type: string
                              example:
                                type: string
                              required:
                                type: boolean
                            required:
                              - name
                              - segment_index
                              - description
                              - example
                              - required
                        tags:
                          type: array
                          items:
                            type: string
                        execution_hint:
                          type: object
                          properties:
                            supports_request_body:
                              type: boolean
                            supports_request_query:
                              type: boolean
                            request_body_template:
                              type: object
                              additionalProperties: {}
                            request_query_template:
                              type: object
                              additionalProperties:
                                anyOf:
                                  - type: string
                                  - type: number
                                  - type: boolean
                                  - type: 'null'
                                  - type: 'null'
                            notes:
                              type: array
                              items:
                                type: string
                          required:
                            - supports_request_body
                            - supports_request_query
                            - request_body_template
                            - request_query_template
                            - notes
                      required:
                        - service
                        - title
                        - category
                        - description
                        - operation_path
                        - path_template
                        - method
                        - mode
                        - path_variables
                        - tags
                        - execution_hint
                  limit:
                    type: integer
                    exclusiveMinimum: 0
                  offset:
                    type: integer
                    minimum: 0
                  returned:
                    type: integer
                    minimum: 0
                  has_more:
                    type: boolean
                  next_offset:
                    type:
                      - integer
                      - 'null'
                    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
                          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
                          discovery_source:
                            type: string
                            enum:
                              - static
                              - discovered
                          path_variables:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                  minLength: 1
                                segment_index:
                                  type: integer
                                  minimum: 0
                                description:
                                  type: string
                                example:
                                  type: string
                                required:
                                  type: boolean
                              required:
                                - name
                                - segment_index
                                - description
                                - example
                                - required
                          tags:
                            type: array
                            items:
                              type: string
                          execution_hint:
                            type: object
                            properties:
                              supports_request_body:
                                type: boolean
                              supports_request_query:
                                type: boolean
                              request_body_template:
                                type: object
                                additionalProperties: {}
                              request_query_template:
                                type: object
                                additionalProperties:
                                  anyOf:
                                    - type: string
                                    - type: number
                                    - type: boolean
                                    - type: 'null'
                                    - type: 'null'
                              notes:
                                type: array
                                items:
                                  type: string
                            required:
                              - supports_request_body
                              - supports_request_query
                              - request_body_template
                              - request_query_template
                              - notes
                        required:
                          - service
                          - title
                          - category
                          - description
                          - operation_path
                          - path_template
                          - method
                          - mode
                          - path_variables
                          - tags
                          - execution_hint
                    description: >-
                      Grouped template buckets keyed by the selected `group_by`
                      value. Omitted when `group_by` is not requested.
                  totals:
                    type: object
                    properties:
                      total_templates:
                        type: integer
                        minimum: 0
                      total_services:
                        type: integer
                        minimum: 0
                      by_discovery_source:
                        type: object
                        properties:
                          static:
                            type: integer
                            minimum: 0
                          discovered:
                            type: integer
                            minimum: 0
                          mixed:
                            type: integer
                            minimum: 0
                        required:
                          - static
                          - discovered
                          - mixed
                      by_method:
                        type: object
                        properties:
                          GET:
                            type: integer
                            minimum: 0
                          POST:
                            type: integer
                            minimum: 0
                        required:
                          - GET
                          - POST
                      by_mode:
                        type: object
                        properties:
                          live:
                            type: integer
                            minimum: 0
                          task_post:
                            type: integer
                            minimum: 0
                          task_get:
                            type: integer
                            minimum: 0
                          tasks_ready:
                            type: integer
                            minimum: 0
                          tasks_fixed:
                            type: integer
                            minimum: 0
                        required:
                          - live
                          - task_post
                          - task_get
                          - tasks_ready
                          - tasks_fixed
                    required:
                      - total_templates
                      - total_services
                      - by_discovery_source
                      - by_method
                      - by_mode
                  supports_custom_paths:
                    type: boolean
                  supports_any_dataforseo_path:
                    type: boolean
                required:
                  - generated_at
                  - discovery_context
                  - templates
                  - limit
                  - offset
                  - returned
                  - has_more
                  - next_offset
                  - totals
                  - supports_custom_paths
                  - supports_any_dataforseo_path
              examples:
                templates:
                  value:
                    generated_at: '2026-02-24T00:00:00Z'
                    discovery_context:
                      requested_discovery: true
                      force_refresh_requested: false
                      source: provider
                      discovered_at: '2026-02-24T00:00:00Z'
                      cache_key: dataforseo:catalog:discovered:v1
                      cache_ttl_seconds: 900
                      cache_available: true
                      cache_hit: false
                      provider_calls: 4
                    templates:
                      - service: serp
                        category: serp
                        title: SERP API
                        description: Live organic SERP results
                        operation_path: /serp/google/organic/live
                        path_template: /serp/{se}/{type}/live
                        method: POST
                        mode: live
                        discovery_source: static
                        path_variables:
                          - name: se
                            segment_index: 1
                            description: Search engine identifier segment in path template
                            example: google
                            required: true
                          - name: type
                            segment_index: 2
                            description: SERP result vertical segment in path template
                            example: organic
                            required: true
                        tags:
                          - serp
                          - live
                          - post
                        execution_hint:
                          supports_request_body: true
                          supports_request_query: true
                          request_body_template:
                            language_code: en
                            keywords:
                              - seo
                            location_code: 2840
                            targets:
                              - example.com
                          request_query_template: {}
                          notes:
                            - >-
                              Replace placeholders in `operation_path` using
                              `path_variables` examples before execution.
                            - POST body shape is endpoint-specific.
                    limit: 100
                    offset: 0
                    returned: 1
                    has_more: false
                    next_offset: null
                    groups:
                      service:
                        serp:
                          - service: serp
                            category: serp
                            title: SERP API
                            description: Live organic SERP results
                            operation_path: /serp/google/organic/live
                            path_template: /serp/{se}/{type}/live
                            method: POST
                            mode: live
                            discovery_source: static
                            path_variables:
                              - name: se
                                segment_index: 1
                                description: >-
                                  Search engine identifier segment in path
                                  template
                                example: google
                                required: true
                              - name: type
                                segment_index: 2
                                description: SERP result vertical segment in path template
                                example: organic
                                required: true
                            tags:
                              - serp
                              - live
                              - post
                            execution_hint:
                              supports_request_body: true
                              supports_request_query: true
                              request_body_template:
                                language_code: en
                                keywords:
                                  - seo
                                location_code: 2840
                              request_query_template: {}
                              notes:
                                - >-
                                  Replace placeholders in `operation_path` using
                                  `path_variables` examples before execution.
                                - POST body shape is endpoint-specific.
                    totals:
                      total_templates: 1
                      total_services: 1
                      by_discovery_source:
                        static: 1
                        discovered: 0
                        mixed: 0
                      by_method:
                        GET: 0
                        POST: 1
                      by_mode:
                        live: 1
                        task_post: 0
                        task_get: 0
                        tasks_ready: 0
                        tasks_fixed: 0
                    supports_custom_paths: true
                    supports_any_dataforseo_path: true
        '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

````