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

# Create credential

> Stores a connection to a real system: its base URL, the header that carries the credential, and the header value. Returns the credential without its value.



## OpenAPI

````yaml /openapi/simulation.yaml post /v1/credentials
openapi: 3.1.0
info:
  description: >-
    Build Simulators from OpenAPI or WSDL documents, create Simulations from
    them, and build Worlds that run Simulations together. Authenticate every
    request with an API key sent as a Bearer token.
  title: Continuous Simulation API
  version: v1
servers:
  - description: Continuous production API.
    url: https://api.continuouslabs.ai
security: []
tags:
  - description: >-
      Build Simulators from OpenAPI or WSDL documents, check or cancel a build,
      clone Simulators into other workspaces, and delete Simulators.
    name: simulators
    x-group: Simulators
  - description: >-
      Create Simulations from ready Simulators, then fork, stop, start, and
      delete them.
    name: simulations
    x-group: Simulations
  - description: >-
      Build Worlds from one or more Simulators and start or stop their
      Simulations together.
    name: worlds
    x-group: Worlds
  - description: >-
      Store connections to real systems: a base URL, the header that carries the
      credential, and its value. The API never returns a value.
    name: credentials
    x-group: Credentials
paths:
  /v1/credentials:
    post:
      tags:
        - credentials
      summary: Create credential
      description: >-
        Stores a connection to a real system: its base URL, the header that
        carries the credential, and the header value. Returns the credential
        without its value.
      operationId: create-credential
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCredentialRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credential'
          description: Created
        '400':
          content:
            application/problem+json:
              examples:
                bad_request_body:
                  $ref: '#/components/examples/bad_request_body'
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request
        '401':
          $ref: '#/components/responses/Unauthorized'
        '408':
          $ref: '#/components/responses/RequestTimeout'
        '413':
          $ref: '#/components/responses/PayloadTooLarge'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
        '422':
          content:
            application/problem+json:
              examples:
                validation_credential:
                  $ref: '#/components/examples/validation_credential'
              schema:
                $ref: '#/components/schemas/Error'
          description: Unprocessable Entity
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          content:
            application/problem+json:
              examples:
                auth_provider_unavailable:
                  $ref: '#/components/examples/auth_provider_unavailable'
                internal_unavailable:
                  $ref: '#/components/examples/internal_unavailable'
              schema:
                $ref: '#/components/schemas/Error'
          description: Service Unavailable
      security:
        - apiKeyAuth: []
components:
  schemas:
    CreateCredentialRequest:
      additionalProperties: false
      examples:
        - base_url: https://api.stripe.com
          header: Authorization
          name: stripe-test
          value: Bearer <redacted>
      properties:
        base_url:
          description: The https URL of the real system. Requests go to paths under it.
          type: string
        header:
          default: Authorization
          description: The HTTP header that carries the value.
          type: string
        name:
          description: Credential name.
          minLength: 1
          type: string
        value:
          description: >-
            The full header value, for example Bearer followed by a token. The
            API never returns it.
          minLength: 1
          type: string
          writeOnly: true
      required:
        - name
        - base_url
        - value
      type: object
    Credential:
      additionalProperties: false
      examples:
        - base_url: https://api.stripe.com
          created_at: '2026-01-15T12:00:00Z'
          header: Authorization
          id: crd_01J8Z5X4K7M2N9P0Q1R2S3T4VA
          name: stripe-test
      properties:
        base_url:
          description: >-
            The https URL of the real system, or null for a credential created
            without one. A build can use only a credential with a base URL.
          type:
            - string
            - 'null'
        created_at:
          description: Credential creation time.
          format: date-time
          type: string
        header:
          description: The HTTP header that carries the value.
          type: string
        id:
          description: Credential ID.
          pattern: ^crd_[0-9A-HJKMNP-TV-Z]{26}$
          type: string
        name:
          description: Credential name. Names need not be unique.
          type: string
      required:
        - id
        - name
        - base_url
        - header
        - created_at
      type: object
    Error:
      additionalProperties: false
      properties:
        code:
          description: Stable machine-readable error code.
          minLength: 1
          type: string
        detail:
          description: Safe human-readable error detail.
          minLength: 1
          type: string
        validation:
          $ref: '#/components/schemas/SpecificationValidation'
          description: >-
            Safe specification diagnostics for a rejected build request, when
            available.
      required:
        - validation
        - code
        - detail
      type: object
    SpecificationValidation:
      additionalProperties: false
      properties:
        issues:
          description: Specification validation problems. At most 20 are returned.
          items:
            $ref: '#/components/schemas/SpecificationIssue'
          maxItems: 20
          type: array
      required:
        - issues
      type:
        - object
        - 'null'
    SpecificationIssue:
      additionalProperties: false
      properties:
        code:
          description: Stable validation rule code.
          type: string
        kind:
          description: >-
            Whether the input is invalid, unsupported, incomplete, or has no
            specific diagnosis.
          enum:
            - invalid
            - unsupported
            - incomplete
            - unknown
          type: string
        location:
          description: Readable endpoint or field affected by this issue.
          maxLength: 512
          type: string
        message:
          description: What needs attention at this location.
          type: string
        operation:
          description: >-
            Affected operation ID or method and path, when available. Empty for
            document-level issues.
          maxLength: 243
          type: string
        suggestion:
          description: How to correct or address the problem.
          type: string
      required:
        - code
        - operation
        - location
        - kind
        - message
        - suggestion
      type: object
  examples:
    bad_request_body:
      value:
        code: bad_request
        detail: request body is invalid
        validation: null
    validation_credential:
      value:
        code: validation
        detail: >-
          base_url must be an https URL with a literal host name or IP address
          and no user information
        validation: null
    auth_provider_unavailable:
      value:
        code: auth_provider_unavailable
        detail: >-
          The authentication provider is unavailable. Retry the request after a
          short delay.
        validation: null
    internal_unavailable:
      value:
        code: internal_unavailable
        detail: >-
          The service is temporarily unavailable. Retry the request after a
          short delay.
        validation: null
    auth_invalid:
      value:
        code: auth_invalid
        detail: The authentication credential is invalid.
        validation: null
    auth_missing:
      value:
        code: auth_invalid
        detail: Authentication credentials are required.
        validation: null
    request_timeout:
      value:
        code: request_timeout
        detail: >-
          The request body was not received before the timeout. Retry the
          request.
        validation: null
    payload_too_large:
      value:
        code: payload_too_large
        detail: The request body exceeds the maximum allowed size.
        validation: null
    unsupported_media_type:
      value:
        code: unsupported_media_type
        detail: The request Content-Type is not supported.
        validation: null
    internal:
      value:
        code: internal
        detail: The server encountered an unexpected error.
        validation: null
  responses:
    Unauthorized:
      content:
        application/problem+json:
          examples:
            auth_invalid:
              $ref: '#/components/examples/auth_invalid'
            auth_missing:
              $ref: '#/components/examples/auth_missing'
          schema:
            $ref: '#/components/schemas/Error'
      description: Unauthorized
    RequestTimeout:
      content:
        application/problem+json:
          examples:
            request_timeout:
              $ref: '#/components/examples/request_timeout'
          schema:
            $ref: '#/components/schemas/Error'
      description: Request Timeout
    PayloadTooLarge:
      content:
        application/problem+json:
          examples:
            payload_too_large:
              $ref: '#/components/examples/payload_too_large'
          schema:
            $ref: '#/components/schemas/Error'
      description: Request Entity Too Large
    UnsupportedMediaType:
      content:
        application/problem+json:
          examples:
            unsupported_media_type:
              $ref: '#/components/examples/unsupported_media_type'
          schema:
            $ref: '#/components/schemas/Error'
      description: Unsupported Media Type
    InternalServerError:
      content:
        application/problem+json:
          examples:
            internal:
              $ref: '#/components/examples/internal'
          schema:
            $ref: '#/components/schemas/Error'
      description: Internal Server Error
  securitySchemes:
    apiKeyAuth:
      bearerFormat: Continuous API key
      description: >-
        Use a Continuous API key. Send it in the Authorization header as a
        Bearer token.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.