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

# Create Docker registry credential

> Create a new Docker registry credential for the company. The credential is used to authenticate with private Docker registries when pulling images for deployments. The secret is encrypted before storage and never returned in API responses.



## OpenAPI

````yaml https://api.sevalla.com/v3/openapi.json post /docker-registries
openapi: 3.1.0
info:
  title: Sevalla API docs
  version: 1.0.0
servers:
  - url: https://api.sevalla.com/v3
security:
  - bearerAuth: []
paths:
  /docker-registries:
    post:
      tags:
        - Docker Registries
      summary: Create Docker registry credential
      description: >-
        Create a new Docker registry credential for the company. The credential
        is used to authenticate with private Docker registries when pulling
        images for deployments. The secret is encrypted before storage and never
        returned in API responses.
      operationId: createDockerRegistryV3
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 255
                  description: Human-readable name for the Docker registry credential
                  example: My Docker Hub
                registry:
                  default: dockerHub
                  description: >-
                    Docker registry provider. `dockerHub` - Docker Hub. `gcr` -
                    Google Container Registry. `ecr` - Amazon Elastic Container
                    Registry. `github` - GitHub Container Registry. `gitlab` -
                    GitLab Container Registry. `digitalOcean` - DigitalOcean
                    Container Registry. `custom` - a self-hosted or third-party
                    registry.
                  example: dockerHub
                  type: string
                  enum:
                    - gcr
                    - ecr
                    - dockerHub
                    - github
                    - gitlab
                    - digitalOcean
                    - custom
                username:
                  type: string
                  pattern: ^(?=.{1,39}$)[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$
                  description: >-
                    Username or access key used to authenticate with the Docker
                    registry
                  example: my-docker-user
                secret:
                  type: string
                  pattern: ^.{8,128}$
                  description: >-
                    Password or access token used to authenticate with the
                    Docker registry. Stored encrypted at rest.
                  example: my-secret-token
              required:
                - name
                - username
                - secret
              additionalProperties: false
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    description: Unique identifier for the Docker registry credential
                    example: fb5e5168-4281-4bec-94c5-0d1584e9e657
                  company_id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    description: Identifier of the company that owns this credential
                    example: fb5e5168-4281-4bec-94c5-0d1584e9e657
                  name:
                    type: string
                    description: Human-readable name for the Docker registry credential
                    example: My Docker Hub
                  registry:
                    type: string
                    enum:
                      - gcr
                      - ecr
                      - dockerHub
                      - github
                      - gitlab
                      - digitalOcean
                      - custom
                    description: >-
                      Docker registry provider. `dockerHub` - Docker Hub. `gcr`
                      - Google Container Registry. `ecr` - Amazon Elastic
                      Container Registry. `github` - GitHub Container Registry.
                      `gitlab` - GitLab Container Registry. `digitalOcean` -
                      DigitalOcean Container Registry. `custom` - a self-hosted
                      or third-party registry.
                    example: dockerHub
                  username:
                    type: string
                    description: >-
                      Username or access key used to authenticate with the
                      Docker registry
                    example: my-docker-user
                  created_at:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    description: >-
                      Timestamp when the credential was created, in ISO 8601
                      format
                    example: '2025-01-30T00:00:00.000Z'
                  updated_at:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    description: >-
                      Timestamp when the credential was last modified, in ISO
                      8601 format
                    example: '2025-01-30T00:00:00.000Z'
                required:
                  - id
                  - company_id
                  - name
                  - registry
                  - username
                  - created_at
                  - updated_at
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message
                    example: Bad request
                  status:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    description: HTTP status code
                    example: 400
                  data:
                    type: object
                    properties:
                      code:
                        description: Error tracking code for support reference
                        example: err-abc-123
                        type: string
                      message:
                        description: Additional error details or instructions
                        example: >-
                          If you need assistance, please contact support and
                          provide this error code.
                        type: string
                    additionalProperties: false
                required:
                  - message
                  - status
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message
                    example: Unauthorized
                  status:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    description: HTTP status code
                    example: 401
                  data:
                    type: object
                    properties:
                      code:
                        description: Error tracking code for support reference
                        example: err-abc-123
                        type: string
                      message:
                        description: Additional error details or instructions
                        example: >-
                          If you need assistance, please contact support and
                          provide this error code.
                        type: string
                    additionalProperties: false
                required:
                  - message
                  - status
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message
                    example: Forbidden
                  status:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    description: HTTP status code
                    example: 403
                  data:
                    type: object
                    properties:
                      code:
                        description: Error tracking code for support reference
                        example: err-abc-123
                        type: string
                      message:
                        description: Additional error details or instructions
                        example: >-
                          If you need assistance, please contact support and
                          provide this error code.
                        type: string
                    additionalProperties: false
                required:
                  - message
                  - status
                additionalProperties: false
        '429':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message
                    example: Too many requests
                  status:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    description: HTTP status code
                    example: 429
                  data:
                    type: object
                    properties:
                      code:
                        description: Error tracking code for support reference
                        example: err-abc-123
                        type: string
                      message:
                        description: Additional error details or instructions
                        example: >-
                          If you need assistance, please contact support and
                          provide this error code.
                        type: string
                    additionalProperties: false
                required:
                  - message
                  - status
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message
                    example: Internal Server Error
                  status:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    description: HTTP status code
                    example: 500
                  data:
                    type: object
                    properties:
                      code:
                        description: Error tracking code for support reference
                        example: err-abc-123
                        type: string
                      message:
                        description: Additional error details or instructions
                        example: >-
                          If you need assistance, please contact support and
                          provide this error code.
                        type: string
                    additionalProperties: false
                required:
                  - message
                  - status
                additionalProperties: false
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key authentication. Pass your API key as a Bearer token in the
        Authorization header.

````