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

# Bulk enroll servers

> Bulk enroll multiple servers via CSV or JSON file upload.




## OpenAPI

````yaml api-docs/k0rdent-api.json post /v1/regions/{region}/projects/{project}/infrastructure/servers:batchCreate
openapi: 3.1.0
info:
  title: K0rdent AI API
  version: 0.2.0-draft
  description: >
    OpenAPI specification for the K0rdent AI GPU-as-a-Service platform.

    **Custom Extensions:**

    - `x-visibility`: Endpoint visibility — `internal` (Atlas only), `public`
    (Arc only), `[internal, public]` (common)

    - `x-status`: Implementation status — `mvp`, `tbd`, `blocked`, `stretch`

    - `x-source`: Source document reference or `TBD` for fields pending
    confirmation

    **Error Model:** Standard `{ error: { code, message, details[] } }`
    envelope.

    **Pagination:** All list endpoints support two modes:

    - **Cursor** (`pageToken` + `pageSize`): Use for frequently updated
    resources. Prevents skipped or duplicated items across pages.
    `nextPageToken` is returned; `total` is not.

    - **Offset** (`offset` + `pageSize`): Use for stable resources. Returns
    `total` for page-count UIs. `nextPageToken` is not returned.

    `pageToken` and `offset` are mutually exclusive. Default `pageSize` is 50,
    maximum is 500.
servers:
  - url: https://api.k0rdent.ai
    description: K0rdent AI API Gateway
security:
  - bearerAuth: []
tags:
  - name: clusters
    description: Kubernetes cluster management
  - name: kubeconfigs
    description: Kubeconfig issuance and management
  - name: instances
    description: VM and baremetal instance lifecycle
  - name: networks
    description: Network configuration and topology
  - name: addresses
    description: IP address management
  - name: servers
    description: Bare metal server lifecycle management
  - name: organizations
    description: Organization (tenant) management
  - name: projects
    description: Project resource grouping
  - name: authentication
    description: Authentication and session management
  - name: users
    description: User management
  - name: groups
    description: User group management
  - name: roles
    description: RBAC role definitions
  - name: policies
    description: IAM policy bindings
  - name: providers
    description: Identity provider configuration
  - name: token
    description: >
      Generate access token via multiple grant types (authorization_code,
      api_key, client_credentials).
  - name: check
    description: >
      Evaluate permissions for a principal against actions and resources.
      Supports single and bulk checks (up to 100).
  - name: introspect
    description: >
      Token introspection per RFC 7662. Validate token activity and retrieve
      full decoded claims.
  - name: revoke
    description: >
      Token revocation per RFC 7009. Explicitly invalidate access tokens before
      natural expiration.
  - name: sessions
    description: >
      Manage user browser sessions. Supports listing active sessions, creating a
      new session (login), and ending the current session (logout).
  - name: apikeys
    description: >
      Manage API keys for programmatic access. API keys are bound to a user and
      inherit a dynamic subset of the user's privileges, evaluated at token-mint
      time.

      Keys are scoped to a level in the resource hierarchy (organization, or
      project).
  - name: serviceaccounts
    description: |
      Manage service accounts for machine-to-machine and infrastructure
      access. Service accounts are independent principals with their own
      identity, role bindings, and credentials. They survive user
      off-boarding and are managed exclusively by tenant administrators.
paths:
  /v1/regions/{region}/projects/{project}/infrastructure/servers:batchCreate:
    parameters:
      - $ref: '#/components/parameters/RegionPathParam'
      - $ref: '#/components/parameters/ProjectPathParam'
    post:
      tags:
        - servers
      summary: Bulk enroll servers
      description: |
        Bulk enroll multiple servers via CSV or JSON file upload.
      operationId: batchCreateServers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                servers:
                  type: array
                  items:
                    $ref: '#/components/schemas/ServerCreateRequest'
                  description: Array of server registration requests
      responses:
        '200':
          description: Bulk enrollment results
          content:
            application/json:
              schema:
                type: object
                properties:
                  succeeded:
                    type: array
                    items:
                      $ref: '#/components/schemas/Server'
                    description: Successfully registered servers
                  failed:
                    type: array
                    items:
                      type: object
                      properties:
                        index:
                          type: integer
                          description: Index in request array
                        error:
                          $ref: '#/components/schemas/Error'
                    description: Failed registration attempts
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    RegionPathParam:
      name: region
      in: path
      required: true
      schema:
        type: string
      description: Region identifier
    ProjectPathParam:
      name: project
      in: path
      required: true
      schema:
        type: string
      description: Project identifier
  schemas:
    ServerCreateRequest:
      type: object
      description: Request to register a new server
      required:
        - bmcAddress
      properties:
        bmcAddress:
          type: string
          description: BMC address for management
        tags:
          type: object
          additionalProperties:
            type: string
          description: Initial metadata tags
        displayName:
          type: string
          description: Optional human-friendly display name for the server.
        description:
          type: string
          description: An optional description of this resource.
        persona:
          type: string
          description: Persona to assign
    Server:
      type: object
      description: Bare metal server resource
      properties:
        selfLink:
          type: string
          format: uri
          description: Server-defined URL for this resource.
          readOnly: true
          example: >-
            /v1/regions/us-texas-1/projects/project-x9y8z7/infrastructure/servers/server-p7q8r9
        uid:
          type: string
          description: Server-generated UUID.
          format: uuid
          readOnly: true
        id:
          type: string
          description: >-
            Name of the resource. Provided by the client when the resource is
            created, or generated by the server if not specified. Must be 1-63
            characters long and match the pattern [a-z]([\-a-z0-9]*[a-z0-9])? —
            the first character must be a lowercase letter, and all following
            characters must be lowercase letters, digits, or hyphens, with the
            last character being a letter or digit. Cannot be changed after the
            resource is created.
          pattern: ^[a-z]([-a-z0-9]*[a-z0-9])?$
          minLength: 1
          maxLength: 63
          example: server-p7q8r9
        displayName:
          type: string
          description: Optional human-friendly display name for the server.
        description:
          type: string
          description: An optional description of this resource.
        hardwareSpecs:
          type: object
          description: Hardware specifications
          properties:
            cpu:
              type: object
              description: CPU specifications
            ram:
              type: object
              description: RAM specifications
            gpu:
              type: object
              description: GPU SKU and details
        bmcAddress:
          type: string
          description: Baseboard Management Controller address
        provisioningState:
          type: string
          enum:
            - registered
            - provisioning
            - ready
            - failed
            - decommissioned
          description: Current provisioning state
        healthStatus:
          type: object
          description: Host health information
          properties:
            status:
              type: string
              enum:
                - healthy
                - degraded
                - failed
            lastCheckTime:
              type: string
              format: date-time
            failureReasons:
              type: array
              items:
                type: string
        tags:
          type: object
          additionalProperties:
            type: string
          description: Host metadata tags
        persona:
          type: string
          description: Assigned persona/role for the host
        createdAt:
          type: string
          format: date-time
          description: Creation timestamp
        updatedAt:
          type: string
          format: date-time
          description: Last update timestamp
    Error:
      type: object
      description: Standard error response
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: HTTP status code
            message:
              type: string
              description: Error message
            details:
              type: array
              items:
                type: object
              description: Additional error details
  responses:
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token authentication using OAuth2/OIDC tokens

````