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

# Get Tool Version

> Return one immutable published version of a tool by its version number.



## OpenAPI

````yaml /api-reference/agents/shared-resources.oas.yaml get /v1/agents/tools/{tool_id}/versions/{version_number}
openapi: 3.1.0
info:
  title: SLNG Agent Resources API
  version: 1.0.0
  description: >-
    Public control-plane API for agent resources: tools, MCP servers, Vault
    secrets and variables, and client models.
servers:
  - url: https://api.agents.slng.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Tools
    description: Create, test, publish, version, and attach agent tools.
    x-page-icon: wrench
  - name: MCP servers
    description: Configure MCP servers and refresh their live capabilities.
    x-page-icon: plug
  - name: Vault
    description: >-
      Store organisation secrets and readable variables without exposing secret
      values.
    x-page-icon: key
  - name: Client models
    description: Manage bring-your-own LLM provider credentials.
    x-page-icon: brain
paths:
  /v1/agents/tools/{tool_id}/versions/{version_number}:
    get:
      tags:
        - Tools
      summary: Get Tool Version
      description: Return one immutable published version of a tool by its version number.
      operationId: getToolVersion
      parameters:
        - name: tool_id
          in: path
          required: true
          description: >-
            The tool UUID. Curated tools are visible but read-only, and a tool
            owned by another organisation returns 404.
          schema:
            type: string
            format: uuid
            title: Tool Id
        - name: version_number
          in: path
          required: true
          description: The published version number to return.
          schema:
            type: integer
            title: Version Number
      responses:
        '200':
          description: The requested published version snapshot of the tool.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolVersionOut'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '422':
          $ref: '#/components/responses/ValidationError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    ToolVersionOut:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        tool_id:
          type: string
          format: uuid
          title: Tool Id
        version_number:
          type: integer
          title: Version Number
        snapshot_json:
          $ref: '#/components/schemas/ToolVersionSnapshot'
        content_hash:
          type: string
          title: Content Hash
        frozen_deps:
          items:
            type: string
          type: array
          title: Frozen Deps
        published_at:
          type: string
          format: date-time
          title: Published At
      type: object
      required:
        - id
        - tool_id
        - version_number
        - snapshot_json
        - content_hash
        - frozen_deps
        - published_at
      title: ToolVersionOut
      description: >-
        An immutable published tool version with its frozen snapshot and
        dependencies.
      example:
        id: 2c3d4e5f-6071-4829-93a4-b5c6d7e8f901
        tool_id: 7b2a1c34-5d6e-4f70-8a90-1b2c3d4e5f60
        version_number: 3
        content_hash: 3f1ab2c4d5e6f708
        frozen_deps: []
        published_at: '2026-08-20T10:15:30Z'
        snapshot_json:
          name: lookup_customer
          description: Look up a customer by id
          tool_type: api_request
          argument_schema:
            type: object
          argument_defaults: {}
          config:
            type: api_request
            url: https://api.example.com/lookup
    ToolVersionSnapshot:
      oneOf:
        - title: Custom Code
          description: Published snapshot of a Custom Code tool.
          allOf:
            - $ref: '#/components/schemas/CodeToolSnapshot'
        - title: API Request
          description: Published snapshot of an API Request tool.
          allOf:
            - $ref: '#/components/schemas/ApiRequestToolSnapshot'
        - title: End Call
          description: Published snapshot of an End Call tool.
          allOf:
            - $ref: '#/components/schemas/EndCallToolSnapshot'
        - title: Voicemail Detection
          description: Published snapshot of a Voicemail Detection tool.
          allOf:
            - $ref: '#/components/schemas/VoicemailDetectionToolSnapshot'
        - title: Transfer Call
          description: Published snapshot of a Transfer Call tool.
          allOf:
            - $ref: '#/components/schemas/TransferCallToolSnapshot'
        - title: Send SMS
          description: Published snapshot of a Send SMS tool.
          allOf:
            - $ref: '#/components/schemas/SendSmsToolSnapshot'
        - title: Current Date and Time
          description: Published snapshot of a Current Date and Time tool.
          allOf:
            - $ref: '#/components/schemas/CurrentDatetimeToolSnapshot'
        - title: User Phone Number
          description: Published snapshot of a User Phone Number tool.
          allOf:
            - $ref: '#/components/schemas/UserPhoneNumberToolSnapshot'
      title: ToolVersionSnapshot
      description: >-
        A frozen, published version of a tool, selected by the `tool_type`
        discriminator.
      discriminator:
        propertyName: tool_type
        mapping:
          api_request:
            $ref: '#/components/schemas/ApiRequestToolSnapshot'
          code:
            $ref: '#/components/schemas/CodeToolSnapshot'
          current_datetime:
            $ref: '#/components/schemas/CurrentDatetimeToolSnapshot'
          end_call:
            $ref: '#/components/schemas/EndCallToolSnapshot'
          send_sms:
            $ref: '#/components/schemas/SendSmsToolSnapshot'
          transfer_call:
            $ref: '#/components/schemas/TransferCallToolSnapshot'
          user_phone_number:
            $ref: '#/components/schemas/UserPhoneNumberToolSnapshot'
          voicemail_detection:
            $ref: '#/components/schemas/VoicemailDetectionToolSnapshot'
    ApiErrorResponse:
      type: object
      description: Standard error envelope returned for failed requests.
      required:
        - detail
        - error
      properties:
        detail:
          type: string
          description: Short human-readable summary of the error.
        error:
          $ref: '#/components/schemas/ApiErrorDetail'
      example:
        detail: A shared secret or variable named 'STRIPE_KEY' already exists
        error:
          code: RESOURCE_CONFLICT
          message: A shared secret or variable named 'STRIPE_KEY' already exists
          request_id: 018f9b2c-7e4a-7c3d-9a1b-2c3d4e5f6a7b
    CodeToolSnapshot:
      properties:
        name:
          type: string
          maxLength: 200
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
          title: Name
        description:
          type: string
          title: Description
        argument_schema:
          additionalProperties: true
          type: object
          title: Argument Schema
        argument_defaults:
          additionalProperties: true
          type: object
          description: >-
            Default values for the tool arguments, keyed by argument name. Each
            value is a literal (string, number, or boolean) or a Vault variable
            reference using the {{$NAME}} syntax. Applied when a caller does not
            supply that argument. The keys are the argument names the tool
            declares; the shape is the same for every tool type.
          title: Argument Defaults
        tool_type:
          type: string
          const: code
          title: Tool Type
        config:
          $ref: '#/components/schemas/CodeConfig'
        code_src:
          type: string
          description: >-
            Python source frozen into this published version. Custom Code runs
            sandboxed with no internet access.
          title: Code Src
        dependencies:
          items:
            type: string
          type: array
          description: >-
            Pinned Python package dependencies frozen into this published
            version.
          title: Dependencies
        declared_secrets:
          items:
            type: string
          type: array
          description: >-
            Vault secret names the code may read, frozen into this published
            version.
          title: Declared Secrets
      additionalProperties: false
      type: object
      required:
        - name
        - description
        - argument_schema
        - argument_defaults
        - tool_type
        - config
        - code_src
        - dependencies
        - declared_secrets
      title: CodeToolSnapshot
      description: >-
        Published snapshot of a Custom Code tool, with its source and frozen
        dependencies.
    ApiRequestToolSnapshot:
      properties:
        name:
          type: string
          maxLength: 200
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
          title: Name
        description:
          type: string
          title: Description
        argument_schema:
          additionalProperties: true
          type: object
          title: Argument Schema
        argument_defaults:
          additionalProperties: true
          type: object
          description: >-
            Default values for the tool arguments, keyed by argument name. Each
            value is a literal (string, number, or boolean) or a Vault variable
            reference using the {{$NAME}} syntax. Applied when a caller does not
            supply that argument. The keys are the argument names the tool
            declares; the shape is the same for every tool type.
          title: Argument Defaults
        tool_type:
          type: string
          const: api_request
          title: Tool Type
        config:
          $ref: '#/components/schemas/ApiRequestConfig'
      additionalProperties: false
      type: object
      required:
        - name
        - description
        - argument_schema
        - argument_defaults
        - tool_type
        - config
      title: ApiRequestToolSnapshot
      description: >-
        Published snapshot of an API Request tool, with its frozen argument
        schema.
    EndCallToolSnapshot:
      properties:
        name:
          type: string
          maxLength: 200
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
          title: Name
        description:
          type: string
          title: Description
        argument_schema:
          additionalProperties: true
          type: object
          title: Argument Schema
        argument_defaults:
          additionalProperties: true
          type: object
          description: >-
            Default values for the tool arguments, keyed by argument name. Each
            value is a literal (string, number, or boolean) or a Vault variable
            reference using the {{$NAME}} syntax. Applied when a caller does not
            supply that argument. The keys are the argument names the tool
            declares; the shape is the same for every tool type.
          title: Argument Defaults
        tool_type:
          type: string
          const: end_call
          title: Tool Type
        config:
          $ref: '#/components/schemas/EndCallConfig'
      additionalProperties: false
      type: object
      required:
        - name
        - description
        - argument_schema
        - argument_defaults
        - tool_type
        - config
      title: EndCallToolSnapshot
      description: Published snapshot of an End Call tool.
    VoicemailDetectionToolSnapshot:
      properties:
        name:
          type: string
          maxLength: 200
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
          title: Name
        description:
          type: string
          title: Description
        argument_schema:
          additionalProperties: true
          type: object
          title: Argument Schema
        argument_defaults:
          additionalProperties: true
          type: object
          description: >-
            Default values for the tool arguments, keyed by argument name. Each
            value is a literal (string, number, or boolean) or a Vault variable
            reference using the {{$NAME}} syntax. Applied when a caller does not
            supply that argument. The keys are the argument names the tool
            declares; the shape is the same for every tool type.
          title: Argument Defaults
        tool_type:
          type: string
          const: voicemail_detection
          title: Tool Type
        config:
          $ref: '#/components/schemas/VoicemailDetectionConfig'
      additionalProperties: false
      type: object
      required:
        - name
        - description
        - argument_schema
        - argument_defaults
        - tool_type
        - config
      title: VoicemailDetectionToolSnapshot
      description: Published snapshot of a Voicemail Detection tool.
    TransferCallToolSnapshot:
      properties:
        name:
          type: string
          maxLength: 200
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
          title: Name
        description:
          type: string
          title: Description
        argument_schema:
          additionalProperties: true
          type: object
          title: Argument Schema
        argument_defaults:
          additionalProperties: true
          type: object
          description: >-
            Default values for the tool arguments, keyed by argument name. Each
            value is a literal (string, number, or boolean) or a Vault variable
            reference using the {{$NAME}} syntax. Applied when a caller does not
            supply that argument. The keys are the argument names the tool
            declares; the shape is the same for every tool type.
          title: Argument Defaults
        tool_type:
          type: string
          const: transfer_call
          title: Tool Type
        config:
          $ref: '#/components/schemas/TransferCallConfig'
      additionalProperties: false
      type: object
      required:
        - name
        - description
        - argument_schema
        - argument_defaults
        - tool_type
        - config
      title: TransferCallToolSnapshot
      description: Published snapshot of a Transfer Call tool.
    SendSmsToolSnapshot:
      properties:
        name:
          type: string
          maxLength: 200
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
          title: Name
        description:
          type: string
          title: Description
        argument_schema:
          additionalProperties: true
          type: object
          title: Argument Schema
        argument_defaults:
          additionalProperties: true
          type: object
          description: >-
            Default values for the tool arguments, keyed by argument name. Each
            value is a literal (string, number, or boolean) or a Vault variable
            reference using the {{$NAME}} syntax. Applied when a caller does not
            supply that argument. The keys are the argument names the tool
            declares; the shape is the same for every tool type.
          title: Argument Defaults
        tool_type:
          type: string
          const: send_sms
          title: Tool Type
        config:
          $ref: '#/components/schemas/SendSmsConfig'
      additionalProperties: false
      type: object
      required:
        - name
        - description
        - argument_schema
        - argument_defaults
        - tool_type
        - config
      title: SendSmsToolSnapshot
      description: Published snapshot of a Send SMS tool.
    CurrentDatetimeToolSnapshot:
      properties:
        name:
          type: string
          maxLength: 200
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
          title: Name
        description:
          type: string
          title: Description
        argument_schema:
          additionalProperties: true
          type: object
          title: Argument Schema
        argument_defaults:
          additionalProperties: true
          type: object
          description: >-
            Default values for the tool arguments, keyed by argument name. Each
            value is a literal (string, number, or boolean) or a Vault variable
            reference using the {{$NAME}} syntax. Applied when a caller does not
            supply that argument. The keys are the argument names the tool
            declares; the shape is the same for every tool type.
          title: Argument Defaults
        tool_type:
          type: string
          const: current_datetime
          title: Tool Type
        config:
          $ref: '#/components/schemas/CurrentDatetimeConfig'
      additionalProperties: false
      type: object
      required:
        - name
        - description
        - argument_schema
        - argument_defaults
        - tool_type
        - config
      title: CurrentDatetimeToolSnapshot
      description: Published snapshot of a Current Date and Time tool.
    UserPhoneNumberToolSnapshot:
      properties:
        name:
          type: string
          maxLength: 200
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
          title: Name
        description:
          type: string
          title: Description
        argument_schema:
          additionalProperties: true
          type: object
          title: Argument Schema
        argument_defaults:
          additionalProperties: true
          type: object
          description: >-
            Default values for the tool arguments, keyed by argument name. Each
            value is a literal (string, number, or boolean) or a Vault variable
            reference using the {{$NAME}} syntax. Applied when a caller does not
            supply that argument. The keys are the argument names the tool
            declares; the shape is the same for every tool type.
          title: Argument Defaults
        tool_type:
          type: string
          const: user_phone_number
          title: Tool Type
        config:
          $ref: '#/components/schemas/UserPhoneNumberConfig'
      additionalProperties: false
      type: object
      required:
        - name
        - description
        - argument_schema
        - argument_defaults
        - tool_type
        - config
      title: UserPhoneNumberToolSnapshot
      description: Published snapshot of a User Phone Number tool.
    ApiErrorDetail:
      type: object
      description: Structured error detail carried inside an error response.
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Stable machine-readable error code.
          example: RESOURCE_CONFLICT
        message:
          type: string
          description: Human-readable explanation of the error.
          example: A shared secret or variable named STRIPE_KEY already exists
        request_id:
          type:
            - string
            - 'null'
          description: Identifier for this request, useful when contacting support.
          example: req_01H8XY7Z9QEXAMPLE
        retryable:
          type: boolean
          description: Whether retrying the same request may succeed.
          example: false
        fields:
          type: array
          description: >-
            Per-field validation problems, when the error relates to specific
            request fields.
          items:
            type: object
            additionalProperties: true
          example: []
      example:
        code: PUBLIC_SHARED_RESOURCES_DISABLED
        message: Public shared resources are disabled for this organisation
        request_id: req_01H8XY7Z9QEXAMPLE
        retryable: false
    CodeConfig:
      properties:
        type:
          type: string
          const: code
          title: Type
          default: code
        import_probes:
          items:
            type: string
          type: array
          maxItems: 100
          title: Import Probes
        egress:
          additionalProperties: true
          type: object
          title: Egress
          description: Historical compatibility only. Custom code has no internet access.
      additionalProperties: false
      type: object
      title: CodeConfig
      description: >-
        Configuration for a Custom Code tool. Custom code runs sandboxed with no
        internet access.
    ApiRequestConfig:
      properties:
        type:
          type: string
          const: api_request
          title: Type
          default: api_request
        url:
          type: string
          maxLength: 2000
          title: Url
          default: ''
        http_method:
          type: string
          enum:
            - GET
            - POST
            - PUT
            - PATCH
            - DELETE
          title: Http Method
          default: POST
        auth:
          $ref: '#/components/schemas/ApiRequestAuth'
        headers:
          items:
            $ref: '#/components/schemas/ApiRequestHeader'
          type: array
          maxItems: 64
          description: >-
            Extra request headers sent to the MCP server; each is a literal
            value or resolved from a Vault secret.
          title: Headers
        parameters:
          additionalProperties: true
          type: object
          title: Parameters
        strict:
          type: boolean
          title: Strict
          default: true
        webhook_format:
          type: string
          enum:
            - envelope
            - raw
          description: >-
            How the API-request tool formats its outgoing request body
            (`envelope` or `raw`). Defaults to `envelope`.
          title: Webhook Format
          default: envelope
        timeout_seconds:
          type: number
          maximum: 60
          minimum: 1
          title: Timeout Seconds
          default: 10
        wait_for_response:
          type: boolean
          title: Wait For Response
          default: true
        response:
          $ref: '#/components/schemas/ApiRequestResponsePolicy'
      additionalProperties: false
      type: object
      title: ApiRequestConfig
      description: >-
        Request settings for an API Request tool, covering URL, method, auth,
        headers, and response handling.
    EndCallConfig:
      properties:
        type:
          type: string
          const: end_call
          title: Type
          default: end_call
        goodbye_message:
          anyOf:
            - $ref: '#/components/schemas/TemplateStringExpression'
            - type: 'null'
        wait_for_completion:
          type: boolean
          title: Wait For Completion
          default: true
      additionalProperties: false
      type: object
      title: EndCallConfig
      description: >-
        Configuration for an End Call tool, including an optional goodbye
        message.
    VoicemailDetectionConfig:
      properties:
        type:
          type: string
          const: voicemail_detection
          title: Type
          default: voicemail_detection
        prompt:
          anyOf:
            - $ref: '#/components/schemas/TemplateStringExpression'
            - type: 'null'
      additionalProperties: false
      type: object
      title: VoicemailDetectionConfig
      description: Configuration for a Voicemail Detection tool.
    TransferCallConfig:
      properties:
        type:
          type: string
          const: transfer_call
          title: Type
          default: transfer_call
        destination:
          anyOf:
            - type: string
            - type: boolean
            - type: integer
            - type: number
            - type: 'null'
          title: Destination
      additionalProperties: false
      type: object
      title: TransferCallConfig
      description: >-
        Configuration for a Transfer Call tool, including the destination
        number.
    SendSmsConfig:
      properties:
        type:
          type: string
          const: send_sms
          title: Type
          default: send_sms
        recipient:
          anyOf:
            - type: string
            - type: boolean
            - type: integer
            - type: number
            - type: 'null'
          title: Recipient
        body:
          anyOf:
            - $ref: '#/components/schemas/TemplateStringExpression'
            - type: 'null'
        from_number:
          anyOf:
            - type: string
            - type: boolean
            - type: integer
            - type: number
            - type: 'null'
          title: From Number
      additionalProperties: false
      type: object
      title: SendSmsConfig
      description: >-
        Managed SMS capability; recipient/body/from-number are attachment
        values.
    CurrentDatetimeConfig:
      properties:
        type:
          type: string
          const: current_datetime
          title: Type
          default: current_datetime
        timezone:
          type: string
          title: Timezone
          default: UTC
        prompt:
          anyOf:
            - $ref: '#/components/schemas/TemplateStringExpression'
            - type: 'null'
      additionalProperties: false
      type: object
      title: CurrentDatetimeConfig
      description: >-
        Configuration for a Current Date and Time tool, including the IANA
        timezone.
    UserPhoneNumberConfig:
      properties:
        type:
          type: string
          const: user_phone_number
          title: Type
          default: user_phone_number
        prompt:
          anyOf:
            - $ref: '#/components/schemas/TemplateStringExpression'
            - type: 'null'
      additionalProperties: false
      type: object
      title: UserPhoneNumberConfig
      description: Configuration for a User Phone Number tool.
    ApiRequestAuth:
      properties:
        type:
          type: string
          enum:
            - none
            - bearer
            - hmac
          description: >-
            Authentication for the outgoing API request: `none`, `bearer` for a
            bearer token, or `hmac` for HMAC request signing.
          title: Type
          default: none
        secret_name:
          anyOf:
            - type: string
              maxLength: 200
              minLength: 1
            - type: 'null'
          title: Secret Name
      additionalProperties: false
      type: object
      title: API request authentication
      description: How the outgoing API request is authenticated.
    ApiRequestHeader:
      properties:
        name:
          type: string
          maxLength: 200
          minLength: 1
          title: Name
        value:
          anyOf:
            - type: string
            - type: boolean
            - type: integer
            - type: number
            - type: 'null'
          title: Value
        secret_name:
          anyOf:
            - type: string
              maxLength: 200
              minLength: 1
            - type: 'null'
          title: Secret Name
      additionalProperties: false
      type: object
      required:
        - name
      title: API request header
      description: A header sent with the outgoing API request.
    ApiRequestResponsePolicy:
      properties:
        show_to_llm:
          type: boolean
          title: Show To Llm
          default: true
        instructions:
          anyOf:
            - type: string
              maxLength: 2000
            - type: 'null'
          title: Instructions
      additionalProperties: false
      type: object
      title: API response handling
      description: How the upstream API response is processed and returned to the agent.
    TemplateStringExpression:
      properties:
        segments:
          items:
            oneOf:
              - $ref: '#/components/schemas/TemplateStringLiteralSegment'
              - $ref: '#/components/schemas/TemplateStringValueSegment'
            discriminator:
              propertyName: type
              mapping:
                expression:
                  $ref: '#/components/schemas/TemplateStringValueSegment'
                literal:
                  $ref: '#/components/schemas/TemplateStringLiteralSegment'
          type: array
          maxItems: 64
          minItems: 1
          title: Segments
      additionalProperties: false
      type: object
      required:
        - segments
      title: TemplateStringExpression
      description: A string built from literal and expression segments resolved at runtime.
    TemplateStringLiteralSegment:
      properties:
        type:
          type: string
          const: literal
          title: Type
        value:
          type: string
          maxLength: 2000
          title: Value
      additionalProperties: false
      type: object
      required:
        - type
        - value
      title: Literal text
      description: A fixed span of text in the template.
    TemplateStringValueSegment:
      properties:
        type:
          type: string
          const: expression
          title: Type
        expression:
          type: string
          title: Expression
      additionalProperties: false
      type: object
      required:
        - type
        - expression
      title: Expression
      description: An expression span resolved at runtime to a value.
  responses:
    UnauthorizedError:
      description: The API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
          example:
            detail: Invalid API key
            error:
              code: AUTH_REQUIRED
              message: Invalid API key
              request_id: 018f9b2c-7e4a-7c3d-9a1b-2c3d4e5f6a7b
              retryable: false
    ForbiddenError:
      description: >-
        The caller lacks permission, or the public shared-resource API is
        disabled for the organisation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
          examples:
            permission_denied:
              summary: Owner or admin access required
              value:
                detail: Organisation owner or admin access required
                error:
                  code: PERMISSION_DENIED
                  message: Organisation owner or admin access required
                  request_id: 018f9b2c-7e4a-7c3d-9a1b-2c3d4e5f6a7b
                  retryable: false
            api_disabled:
              summary: Public shared-resource API disabled for the organisation
              value:
                detail: >-
                  Public shared-resource API access is disabled for this
                  organisation
                error:
                  code: PUBLIC_SHARED_RESOURCES_DISABLED
                  message: >-
                    Public shared-resource API access is disabled for this
                    organisation
                  request_id: 018f9b2c-7e4a-7c3d-9a1b-2c3d4e5f6a7b
                  retryable: false
    NotFoundError:
      description: The requested resource does not exist for this organisation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
          example:
            detail: The requested resource was not found.
            error:
              code: RESOURCE_NOT_FOUND
              message: The requested resource was not found.
              request_id: 018f9b2c-7e4a-7c3d-9a1b-2c3d4e5f6a7b
    ValidationError:
      description: Request validation failed. See error.fields for the offending fields.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
          example:
            detail: >-
              Request validation failed. Fix the highlighted fields and try
              again.
            error:
              code: VALIDATION_FAILED
              message: >-
                Request validation failed. Fix the highlighted fields and try
                again.
              request_id: 018f9b2c-7e4a-7c3d-9a1b-2c3d4e5f6a7b
              retryable: false
              fields:
                - path: name
                  message: >-
                    Name must be SCREAMING_SNAKE_CASE: start with a letter, then
                    letters, digits, or underscores (e.g. STRIPE_API_KEY)
    RateLimitError:
      description: >-
        The organisation exceeded its request rate limit. Retry after the window
        resets.
      headers:
        Retry-After:
          schema:
            type: integer
        X-RateLimit-Limit:
          schema:
            type: integer
        X-RateLimit-Remaining:
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
          example:
            detail: Rate limit exceeded. Maximum 60 requests per 60 seconds.
            error:
              code: INTERNAL_ERROR
              message: Rate limit exceeded. Maximum 60 requests per 60 seconds.
              request_id: 018f9b2c-7e4a-7c3d-9a1b-2c3d4e5f6a7b
              retryable: false
    InternalServerError:
      description: The request failed unexpectedly. Secret values are never exposed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
          example:
            detail: An unexpected error occurred.
            error:
              code: INTERNAL_ERROR
              message: An unexpected error occurred.
              request_id: 018f9b2c-7e4a-7c3d-9a1b-2c3d4e5f6a7b
              retryable: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: SLNG API key
      description: Your SLNG consumer API key.

````