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

# Create a child organization

> Creates a new organization as a direct child of the specified parent organization. The hierarchy cannot exceed 10 levels of depth, and a parent cannot have more than 100 direct children.



## OpenAPI

````yaml /api/en/workspaces.yaml post /workspaces/{workspaceId}/organizations/{organizationId}/children
openapi: 3.0.3
info:
  title: Altostrat Workspaces API
  version: 1.0.0
  description: >-
    The Altostrat Workspaces API is the microservice responsible for tenancy,
    billing, user identity, and organizational hierarchy.

    It serves as the foundational layer for all multi-tenancy and subscription
    logic within the Altostrat SDX platform, enabling the secure separation of
    customer data and resources for SD-WAN, network automation, and agentic AI
    features.

    This API allows you to programmatically manage:

    - **Workspaces:** The top-level containers for all tenant resources, users,
    and billing configurations.

    - **Organizations:** Hierarchical entities used to model customer tenants or
    business units, track resource usage, and apply limits.

    - **Billing & Subscriptions:** The financial accounts and Stripe-powered
    subscriptions that govern access to Altostrat SDX features and resources.

    - **Members & Access:** The users and their specific roles (Owner, Admin,
    Viewer) within a workspace.

    Developers use this API to build the structural foundation and manage the
    billing lifecycle upon which all other Altostrat SDX automation and AI
    features operate.
servers:
  - url: https://v1.api.altostrat.io
    description: Production API Server
security:
  - bearerAuth: []
tags:
  - name: Workspaces
    description: Manage workspaces, the top-level containers for all resources.
  - name: Workspace Members
    description: Manage user access and roles within a workspace.
  - name: Organizations
    description: Manage hierarchical organizations for tenancy and resource segmentation.
  - name: Billing Accounts
    description: Manage financial accounts linked to Stripe for billing and subscriptions.
  - name: Subscriptions
    description: Manage product subscriptions powered by Stripe.
  - name: Invoices
    description: Retrieve invoice history and preview upcoming billing changes.
  - name: Payment Methods
    description: Manage customer payment methods for subscriptions.
  - name: Public
    description: Unauthenticated endpoints for retrieving public organization information.
paths:
  /workspaces/{workspaceId}/organizations/{organizationId}/children:
    post:
      tags:
        - Organizations
      summary: Create a child organization
      description: >-
        Creates a new organization as a direct child of the specified parent
        organization. The hierarchy cannot exceed 10 levels of depth, and a
        parent cannot have more than 100 direct children.
      parameters:
        - $ref: '#/components/parameters/WorkspaceId'
        - $ref: '#/components/parameters/OrganizationId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateChildOrganizationRequest'
      responses:
        '201':
          description: The child organization was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          description: >-
            Unprocessable Entity - The request violates a business rule, such as
            exceeding the maximum hierarchy depth.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: unprocessable_entity
                code: max_depth_exceeded
                message: Organization hierarchy cannot exceed 10 levels of depth.
                doc_url: https://docs.altostrat.io/errors/max_depth_exceeded
        '500':
          $ref: '#/components/responses/ServerError'
components:
  parameters:
    WorkspaceId:
      name: workspaceId
      in: path
      required: true
      description: The ID of the workspace.
      schema:
        type: string
        example: ws_a1b2c3d4e5f6g7h8
    OrganizationId:
      name: organizationId
      in: path
      required: true
      description: The ID of the organization.
      schema:
        type: string
        example: org_aBcDeFg123456789
  schemas:
    CreateChildOrganizationRequest:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: The name of the child organization. Maximum 50 characters.
          example: North America Marketing
        limits:
          type: object
          description: Set resource limits for the child organization.
          additionalProperties:
            type: integer
            nullable: true
            minimum: 0
          example:
            users: 10
        picture:
          type: string
          nullable: true
          description: A public HTTPS URL or base64 data URI for the logo.
          example: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...
    Organization:
      type: object
      properties:
        id:
          type: string
          description: >-
            Unique identifier for the organization (corresponds to Auth0
            organization ID), prefixed with `org_`.
          example: org_aBcDeFg123456789
        name:
          type: string
          description: The human-readable name of the organization.
          example: Engineering Department
        workspace_id:
          type: string
          description: The ID of the workspace this organization belongs to.
          example: ws_a1b2c3d4e5f6g7h8
        external_id:
          type: string
          format: uuid
          description: >-
            A stable, unique identifier for the organization, independent of its
            Auth0 ID.
          example: a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d
        parent_org_id:
          type: string
          nullable: true
          description: The ID of the parent organization, if this is a child organization.
          example: org_zYxWvUt987654321
        path:
          type: string
          nullable: true
          description: >-
            A `#`-separated string representing the hierarchical path of
            ancestors.
          example: org_root123#org_parent456
        depth:
          type: integer
          description: The depth of the organization in the hierarchy (0 for top-level).
          example: 2
        billing_account_id:
          type: string
          nullable: true
          description: >-
            The ID of the billing account this organization is associated with
            (in `assigned` mode).
          example: cus_a1b2c3d4e5f6g7h8
        picture:
          type: string
          format: uri
          nullable: true
          description: A URL to the organization's logo.
          example: https://cdn.altostrat.io/logos/engineering.png
        usage:
          $ref: '#/components/schemas/MeterableUsage'
        limits:
          type: object
          description: >-
            A map of resource limits applied directly to this organization. Keys
            are meterable types (`locations`, `users`, `sso`). A value of `null`
            or a missing key means no limit is set at this level. A value of `0`
            means the resource is explicitly disabled.
          additionalProperties:
            type: integer
            nullable: true
            minimum: 0
          example:
            locations: 10
            users: 50
        branding:
          $ref: '#/components/schemas/Branding'
    ErrorResponse:
      type: object
      properties:
        type:
          type: string
          description: A broad category for the error (e.g., 'invalid_request_error').
          example: invalid_request_error
        code:
          type: string
          description: A short, unique string identifying the specific error.
          example: parameter_missing
        message:
          type: string
          description: A human-readable description of what went wrong.
          example: The 'name' parameter is required for this request.
        doc_url:
          type: string
          description: >-
            A direct link to the documentation page for this specific error
            code.
          example: https://docs.altostrat.io/errors/parameter_missing
    MeterableUsage:
      type: object
      properties:
        usage:
          type: object
          description: >-
            Usage consumed directly by this organization. Keys are meterable
            types (`locations`, `users`, `sso`).
          additionalProperties:
            type: integer
          example:
            locations: 2
            users: 5
        subtree_usage:
          type: object
          description: Total usage including this organization and all its descendants.
          additionalProperties:
            type: integer
          example:
            locations: 10
            users: 25
    Branding:
      type: object
      properties:
        display_name:
          type: string
          nullable: true
          description: >-
            The public-facing name of the organization, used for branding
            purposes.
          example: ACME Corp
        login_hint:
          type: string
          nullable: true
          description: >-
            A unique, URL-friendly identifier used to pre-fill the organization
            in login flows.
          example: acme-corp
        colors:
          type: object
          nullable: true
          description: >-
            A map of key-value pairs representing the organization's theme
            colors.
          additionalProperties:
            type: string
          example:
            primary: '#FF5733'
            page_background: '#FFFFFF'
  responses:
    BadRequest:
      description: >-
        Bad Request - The request was malformed or contained invalid parameters.
        The response body will contain details about the error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            type: invalid_request_error
            code: parameter_invalid
            message: The 'name' parameter cannot exceed 50 characters.
            doc_url: https://docs.altostrat.io/errors/parameter_invalid
    Unauthorized:
      description: >-
        Unauthorized - The request was not authenticated. Ensure you have
        provided a valid Bearer token in the Authorization header.
    Forbidden:
      description: >-
        Forbidden - The authenticated user does not have permission to perform
        this action.
    NotFound:
      description: Not Found - The requested resource could not be found.
    ServerError:
      description: Internal Server Error - An unexpected error occurred on the server.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            type: api_error
            code: internal_server_error
            message: An internal server error occurred. Please try again later.
            doc_url: https://docs.altostrat.io/errors/internal_server_error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Enter your JWT in the format: Bearer {token}'

````