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

# Move capacity

> Move monthly credits or identity slots between two clients, or between a client and the organization's unallocated pool (`null`). Clients billed through self-serve billing (`billedSelfServe: true`) are refused with `ACCOUNT_BILLED_SELF_SERVE`: their own plan sets their capacity. Requires the API key creator (or the connected MCP user) to be an `ORGANIZATION_ADMIN` of the organization the key’s workspace belongs to. For organizations (agencies, resellers, white-label partners, enterprises) and their client workspaces only. The organization role is checked first: a caller without one is refused with 403 (`ORGANIZATION_READ_FORBIDDEN` on reads, `ORGANIZATION_ADMIN_FORBIDDEN` on writes), and a caller with one whose workspace is not in a live organization gets 404 `NOT_IN_ORGANIZATION`.

    > **Required scope:** `WORKSPACE_WRITE`
    >
    > **Rate limit:** 30 requests per minute



## OpenAPI

````yaml https://openapi.enginy.ai/definitions.json post /v1/organization/capacity/moves
openapi: 3.1.0
info:
  title: Enginy API
  version: 1.0.0
  description: Public API for Enginy platform
servers:
  - url: https://openapi.enginy.ai
    description: Configured server
security: []
tags:
  - name: AI Variables
    description: >-
      Manage AI variables and discover the entity fields you can reference in
      prompts and entity requests.
  - name: Inbox
    description: >-
      Inbox endpoints for listing contact threads, reading thread messages,
      managing tags, and sending manual replies.
  - name: Workspace
    description: >-
      The API key's workspace: its capacity, its organization, where its users
      open the app and where an admin buys more.
  - name: Organization
    description: >-
      For organizations (agencies, resellers, white-label partners, enterprises)
      and their client workspaces only. Create client workspaces, distribute
      credits and identity slots between them, and buy or request more capacity.
      Upsell and management only: no endpoint lowers the contracted quota.
      Clients billed through self-serve billing keep their own plan. Requires an
      organization role.
  - name: Workflows
    description: >-
      Build, validate, publish, run, and inspect advanced (graph) workflows,
      plus the block/condition catalog needed to author a workflow plan.
paths:
  /v1/organization/capacity/moves:
    post:
      tags:
        - Organization
      summary: Move capacity
      description: >-
        Move monthly credits or identity slots between two clients, or between a
        client and the organization's unallocated pool (`null`). Clients billed
        through self-serve billing (`billedSelfServe: true`) are refused with
        `ACCOUNT_BILLED_SELF_SERVE`: their own plan sets their capacity.
        Requires the API key creator (or the connected MCP user) to be an
        `ORGANIZATION_ADMIN` of the organization the key’s workspace belongs to.
        For organizations (agencies, resellers, white-label partners,
        enterprises) and their client workspaces only. The organization role is
        checked first: a caller without one is refused with 403
        (`ORGANIZATION_READ_FORBIDDEN` on reads, `ORGANIZATION_ADMIN_FORBIDDEN`
        on writes), and a caller with one whose workspace is not in a live
        organization gets 404 `NOT_IN_ORGANIZATION`.

            > **Required scope:** `WORKSPACE_WRITE`
            >
            > **Rate limit:** 30 requests per minute
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                resource:
                  type: string
                  enum:
                    - CREDITS
                    - IDENTITIES
                  description: >-
                    `CREDITS` (a monthly credit budget) or `IDENTITIES`
                    (identity slots).
                fromClientId:
                  type:
                    - integer
                    - 'null'
                  exclusiveMinimum: 0
                  maximum: 2147483647
                  description: >-
                    The client capacity leaves; `null` for the organization's
                    unallocated pool.
                toClientId:
                  type:
                    - integer
                    - 'null'
                  exclusiveMinimum: 0
                  maximum: 2147483647
                  description: >-
                    The client capacity goes to; `null` for the organization's
                    unallocated pool.
                amount:
                  type: integer
                  exclusiveMinimum: 0
                  maximum: 1000000000
                note:
                  type: string
                  maxLength: 500
              required:
                - resource
                - fromClientId
                - toClientId
                - amount
              additionalProperties: false
      responses:
        '200':
          description: The capacity was moved
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      resource:
                        type: string
                        enum:
                          - CREDITS
                          - IDENTITIES
                        description: >-
                          `CREDITS` (a monthly credit budget) or `IDENTITIES`
                          (identity slots).
                      amount:
                        type: number
                      immediateAmount:
                        type: number
                        description: >-
                          Credits delivered or retracted right now (mid-month);
                          0 for identities.
                      from:
                        type:
                          - object
                          - 'null'
                        properties:
                          clientId:
                            type: number
                          newValue:
                            type: number
                        required:
                          - clientId
                          - newValue
                      to:
                        type:
                          - object
                          - 'null'
                        properties:
                          clientId:
                            type: number
                          newValue:
                            type: number
                        required:
                          - clientId
                          - newValue
                    required:
                      - resource
                      - amount
                      - immediateAmount
                      - from
                      - to
                required:
                  - status
                  - message
                  - data
        '400':
          description: >-
            Invalid request, or the capacity change is refused (`details.code`:
            `POOL_HEADROOM_EXCEEDED`, `MOVE_EXCEEDS_BUDGET`,
            `MOVE_EXCEEDS_IDENTITY_SLOTS`, `IDENTITY_CAP_BELOW_CONNECTED`,
            `BELOW_ADD_ON_CREDITS`, `ACCOUNT_LIMIT_REACHED`,
            `CREDITS_NOT_IN_INCREMENTS`, `PURCHASE_NEEDS_QUOTA` or
            `CAPACITY_IS_PURCHASED`)
        '401':
          description: Missing or invalid API key, or the workspace is frozen or deleted
        '403':
          description: >-
            The API key lacks the scope (`missingScopes`), its creator lacks the
            organization role (`details.code`: `ORGANIZATION_READ_FORBIDDEN` or
            `ORGANIZATION_ADMIN_FORBIDDEN`), or the operation is not available
            to this organization or client (`ACCOUNT_BILLED_SELF_SERVE`,
            `NO_CONTRACT_VIEW`, `PURCHASES_ARE_REQUESTED`,
            `PURCHASE_NEEDS_BILLING_AGREEMENT`)
        '404':
          description: >-
            The workspace is not in an organization (`details.code`:
            `NOT_IN_ORGANIZATION`, `ORGANIZATION_NOT_FOUND`), or the client is
            not one of its live clients (`ACCOUNT_NOT_FOUND`)
        '412':
          description: >-
            Enginy has not set the organization quota this change allocates from
            yet (`details.code`: `QUOTA_NOT_SET`)
        '429':
          description: Rate limit exceeded; retry after `X-RateLimit-Retry-After-Seconds`
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

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