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

# Create org domain order

> **Token scope:** `account` · `org` — read-only tokens refused (not a GET).

Buy a domain into the org. Returns a Stripe Checkout URL; nothing serves it until an attach names one of its hostnames. Gated for agents — domain.purchase, read at the project their session is bound to.



## OpenAPI

````yaml /openapi/org.json post /orgs/{orgId}/domains/orders
openapi: 3.1.0
info:
  title: InstaCloud API — Organization level
  version: 0.1.0
  description: >-
    Endpoints under `/orgs/{orgId}`: members, projects, billing, domains.
    Callable with an account-wide token or a token bound to that organization.


    Generated from the platform's own OpenAPI document
    (https://api.instacloud.com/openapi.json); see the [API
    overview](/reference/api/overview) for authentication and token scopes.
servers:
  - url: https://api.instacloud.com
    description: InstaCloud
security:
  - bearerAuth: []
tags:
  - name: Organization
    description: 'The organization itself: name, members, invitations.'
  - name: Projects
    description: Projects inside an organization.
  - name: Audit
    description: The project's event timeline, including agent-ingested events.
  - name: Domains
    description: >-
      Domains bought through InstaCloud, bring-your-own zones and their DNS
      records.
  - name: Billing
    description: Usage, cycles, invoices and credits.
paths:
  /orgs/{orgId}/domains/orders:
    post:
      tags:
        - Domains
      summary: Create org domain order
      description: >-
        **Token scope:** `account` · `org` — read-only tokens refused (not a
        GET).


        Buy a domain into the org. Returns a Stripe Checkout URL; nothing serves
        it until an attach names one of its hostnames. Gated for agents —
        domain.purchase, read at the project their session is bound to.
      operationId: createOrgDomainOrder
      parameters:
        - schema:
            format: uuid
            type: string
          in: path
          name: orgId
          required: true
      requestBody:
        content:
          application/json:
            schema:
              required:
                - domainName
              type: object
              properties:
                domainName:
                  description: a registrable apex name, e.g. myapp.com
                  type: string
                years:
                  minimum: 1
                  maximum: 10
                  default: 1
                  type: integer
        required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  order:
                    $ref: '#/components/schemas/DomainOrder'
                  quote:
                    $ref: '#/components/schemas/DomainQuote'
                required:
                  - order
                  - quote
        '202':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalRequired'
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: the name is taken, premium, or already registered through InstaCloud
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
                description: >-
                  the name is taken, premium, or already registered through
                  InstaCloud
        '503':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    DomainOrder:
      type: object
      properties:
        id:
          format: uuid
          type: string
        domainName:
          type: string
        years:
          type: integer
        status:
          $ref: '#/components/schemas/DomainOrderStatus'
        priceCents:
          type: integer
        renewalPriceCents:
          anyOf:
            - type: integer
            - type: 'null'
        currency:
          type: string
        checkoutUrl:
          format: uri
          description: >-
            Stripe Checkout — present on create only; the human completes
            payment here
          type: string
        createdAt:
          format: date-time
          type: string
        paidAt:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
        registeredAt:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
        failedReason:
          anyOf:
            - type: string
            - type: 'null'
      required:
        - id
        - domainName
        - years
        - status
        - priceCents
        - renewalPriceCents
        - currency
        - createdAt
        - paidAt
        - registeredAt
        - failedReason
    DomainQuote:
      type: object
      properties:
        domainName:
          type: string
        tld:
          type: string
        purchasable:
          type: boolean
        premium:
          type: boolean
        priceCents:
          description: what the customer pays for the registration term
          type: integer
        renewalPriceCents:
          description: per year, at today's price
          type: integer
        currency:
          type: string
        reason:
          description: why it cannot be bought here
          type: string
      required:
        - domainName
        - tld
        - purchasable
        - premium
        - currency
    ApprovalRequired:
      type: object
      properties:
        status:
          type: string
          enum:
            - approval_required
        approvalId:
          format: uuid
          type: string
        action:
          description: the gated action, or a comma-joined compound set — prefer `actions`
          type: string
        actions:
          description: every capability this approval covers
          type: array
          items:
            type: string
        message:
          type: string
        url:
          description: the console page where a project admin reviews this request
          type: string
        nextActions:
          type: array
          items:
            $ref: '#/components/schemas/NextAction'
    Error:
      type: object
      properties:
        error:
          type: string
      required:
        - error
    DomainOrderStatus:
      type: string
      enum:
        - pending_payment
        - paid
        - registering
        - registered
        - attaching
        - active
        - failed
        - canceled
    NextAction:
      type: object
      properties:
        op:
          description: >-
            Neutral logical action id, e.g. "service.add" — NOT an operationId
            or a CLI/MCP tool name; each client maps it to its own surface.
          type: string
        reason:
          description: Natural-language, human/LLM-facing "why do this now".
          type: string
        args:
          description: >-
            Suggested, flat named arguments; "<placeholder>"s where a value is
            unknown.
          type: object
          additionalProperties: true
        gated:
          description: True if the action passes a governance gate.
          type: boolean
      required:
        - op
        - reason
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Session access JWT or an API token (`insta_<prefix>_<secret>`).

````