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

# Create an individual or studio-owned API account

> A verified individual may create their own individual account. A studio account is created only after server-side studio owner/admin authorization.



## OpenAPI

````yaml https://api.batchrelay.com/openapi.json post /v1/api-account
openapi: 3.1.0
info:
  title: Batch Relay API
  version: 1.0.0
  description: >-
    Provider-neutral print catalog and prepared-media validation. This document
    covers only routes owned by the Go service; it deliberately excludes
    migration-proxied order lifecycle routes and all provider payloads.
servers:
  - url: https://api.batchrelay.com
security: []
tags:
  - name: System
  - name: Catalog
  - name: Print orders
  - name: API accounts
paths:
  /v1/api-account:
    post:
      tags:
        - API accounts
      summary: Create an individual or studio-owned API account
      description: >-
        A verified individual may create their own individual account. A studio
        account is created only after server-side studio owner/admin
        authorization.
      operationId: createAPIAccount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAPIAccountRequest'
      responses:
        '201':
          description: Created API account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIAccount'
        '400':
          $ref: '#/components/responses/InvalidRequestJSON'
        '401':
          $ref: '#/components/responses/ManagementAuthenticationRequired'
        '403':
          $ref: '#/components/responses/APIAccountForbidden'
        '503':
          $ref: '#/components/responses/ManagementUnavailable'
components:
  schemas:
    CreateAPIAccountRequest:
      type: object
      required:
        - owner_type
      properties:
        owner_type:
          type: string
          enum:
            - studio
            - individual
        studio_id:
          type: string
          description: Required only when owner_type is studio.
      additionalProperties: false
    APIAccount:
      type: object
      required:
        - id
        - owner
        - status
        - billing
      properties:
        id:
          type: string
        owner:
          $ref: '#/components/schemas/APIAccountOwner'
        status:
          type: string
          enum:
            - active
            - disabled
        billing:
          $ref: '#/components/schemas/APIAccountBilling'
        created_by_user_id:
          type: string
      additionalProperties: false
    APIAccountOwner:
      type: object
      required:
        - owner_type
      properties:
        owner_type:
          type: string
          enum:
            - studio
            - individual
        studio_id:
          type: string
        individual_owner_user_id:
          type: string
      description: >-
        Exactly one reference is present: studio_id for studio accounts or
        individual_owner_user_id for individual accounts.
    APIAccountBilling:
      type: object
      required:
        - status
        - customer_configured
        - default_payment_method_configured
      properties:
        status:
          type: string
          enum:
            - not_configured
            - setup_pending
            - active
            - action_required
            - past_due
            - disabled
        customer_configured:
          type: boolean
        default_payment_method_configured:
          type: boolean
      additionalProperties: false
    Error:
      type: object
      required:
        - error
        - code
        - message
        - docs_url
        - request_id
      properties:
        error:
          type: string
          description: Backward-compatible human-readable error.
        code:
          type: string
          description: Stable machine-readable error code.
        message:
          type: string
        docs_url:
          type: string
          format: uri
        request_id:
          type: string
      additionalProperties: false
  responses:
    InvalidRequestJSON:
      description: >-
        The body was malformed, contained unknown fields, or was not exactly one
        JSON object.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ManagementAuthenticationRequired:
      description: A verified Batch Relay dashboard session is required.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    APIAccountForbidden:
      description: The authenticated user cannot operate this API account.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ManagementUnavailable:
      description: >-
        The management auth, account, or billing command bridge is not
        configured or temporarily unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'

````