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

# Import by spec

> <Badge color="green">

Standalone

</Badge>

Importing protocols requires a Standalone instance. A Bundled instance is locked to serving its Specter instance's backends.

Creates a protocol by posting the spec document directly.



## OpenAPI

````yaml /products/link/openapi.yaml post /api/admin/protocols
openapi: 3.0.0
info:
  description: >-
    Admin API for managing Link protocols and backends (Bundled and Standalone
    editions).
  title: Link API
  version: '1.0'
servers:
  - url: https://{instance}.{env}.on-hellgate.cloud
    description: Managed instance of Link
    variables:
      instance:
        default: my-instance
        description: Your unique instance slug, provided during onboarding.
      env:
        default: eu1
        description: Deployment environment (currently eu1).
security: []
tags: []
paths:
  /api/admin/protocols:
    post:
      tags:
        - Protocols
      summary: Import by spec
      description: >-
        <Badge color="green">


        Standalone


        </Badge>


        Importing protocols requires a Standalone instance. A Bundled instance
        is locked to serving its Specter instance's backends.


        Creates a protocol by posting the spec document directly.
      operationId: protocols_create
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtocolDocument'
        description: Protocol document
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtocolSummary'
          description: Protocol created
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                classifier: CONFLICT
                code: 409
                message: Protocol already imported
          description: Already exists
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrors'
          description: Validation error
      callbacks: {}
      security:
        - bearerAuth: []
components:
  schemas:
    ProtocolDocument:
      description: Full protocol specification document.
      properties:
        $id:
          example: https://developer.hellgate.io/protocols/specter/v1
          type: string
        $schema:
          example: https://developer.hellgate.io/schemas/link-protocol/v1
          type: string
        actions:
          additionalProperties: true
          description: >-
            The operations the protocol defines, keyed by action name. Each
            action declares its method, request schema (optionally discriminated
            into variants), and per-status response schemas.
          example:
            assess:
              method: POST
              description: Score a transaction for fraud risk.
              request:
                discriminator: $.credential.type
                variants:
                  pan:
                    type: object
                    properties:
                      credential:
                        $ref: '#/components/schemas/PanCredential'
                    required:
                      - credential
                required_variants:
                  - pan
              responses:
                '200':
                  content:
                    application/json:
                      schema:
                        type: object
                        properties:
                          value:
                            type: string
                            enum:
                              - ALLOW
                              - REVIEW
                              - BLOCK
          type: object
        components:
          additionalProperties: true
          description: Reusable schema definitions referenced by actions via `$ref`.
          example:
            schemas:
              PanCredential:
                type: object
                properties:
                  value:
                    type: string
                  scheme:
                    type: string
                required:
                  - value
          type: object
        name:
          example: Specter v1
          type: string
        version:
          example: 1.0.0
          type: string
      title: ProtocolDocument
      type: object
    ProtocolSummary:
      description: Summary of an imported or created protocol.
      properties:
        id:
          example: c4a1f2d0-5b3e-4f6a-8d29-1e7b9c0a2d43
          format: uuid
          type: string
        inserted_at:
          example: '2026-04-02T10:15:00Z'
          format: date-time
          type: string
        local_id:
          example: specter-v1
          type: string
        name:
          example: Specter v1
          type: string
        url:
          example: https://developer.hellgate.io/protocols/specter/v1
          type: string
        version:
          example: 1.0.0
          type: string
      required:
        - id
        - local_id
        - url
        - name
        - version
        - inserted_at
      title: ProtocolSummary
      type: object
    Unauthorized:
      description: No valid authentication was provided.
      example:
        classifier: UNAUTHORIZED
        code: 401
        message: No valid means of authentication was provided
      properties:
        classifier:
          enum:
            - UNAUTHORIZED
          type: string
        code:
          enum:
            - 401
          type: integer
        message:
          type: string
      required:
        - classifier
        - code
        - message
      title: Unauthorized
      type: object
    Forbidden:
      description: The token lacks the scope required for this operation.
      example:
        classifier: FORBIDDEN
        code: 403
        message: Not allowed to access this resource or feature
      properties:
        classifier:
          enum:
            - FORBIDDEN
          type: string
        code:
          enum:
            - 403
          type: integer
        message:
          type: string
      required:
        - classifier
        - code
        - message
      title: Forbidden
      type: object
    Error:
      description: Generic error response.
      properties:
        classifier:
          type: string
        code:
          type: integer
        message:
          type: string
      required:
        - classifier
        - code
        - message
      title: Error
      type: object
    ValidationErrors:
      example:
        classifier: VALIDATION_ERROR
        code: 422
        validation_errors:
          - message: must be a positive integer
            path: limit
      description: Response shape for request validation failures.
      properties:
        classifier:
          example: VALIDATION_ERROR
          type: string
        code:
          example: 422
          type: integer
        validation_errors:
          items:
            properties:
              message:
                example: url is required
                type: string
              path:
                example: url
                nullable: true
                type: string
            type: object
          type: array
      required:
        - classifier
        - code
        - validation_errors
      title: ValidationErrors
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````