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

# Register Project Organization

> Use this endpoint to create a new organization. This allows you to organize users and data within a project by organization.



## OpenAPI

````yaml post /v1/api/projects/register-organization
openapi: 3.1.0
info:
  title: Upsolve API
  version: 1.4.1
servers:
  - url: https://api.upsolve.ai
security: []
tags: []
paths:
  /v1/api/projects/register-organization:
    post:
      summary: Register organization to Upsolve
      description: >-
        Use this endpoint to create a new organization. This allows you to
        organize users and data within a project by organization.
      operationId: PostV1ApiProjectsRegisterOrganization
      requestBody:
        description: POST /v1/api/projects/register-organization Request body
        content:
          application/json:
            schema:
              type: object
              properties:
                apiKey:
                  type: string
                  minLength: 1
                  description: >-
                    Upsolve API key, generated under Account → Developer
                    settings in the Upsolve Hub. Keys are user-scoped: pass
                    organizationId alongside the key to select which org to act
                    on.
                  examples:
                    - up_embed_************
                organizationId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
                name:
                  type: string
                  minLength: 1
                  description: >-
                    Display name for the organization. This will appear in the
                    Upsolve Hub.
                  examples:
                    - Acme Inc
                projectId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
                  description: The ID of the project this organization belongs to.
                  examples:
                    - 123e4567-e89b-12d3-a456-426614174000
                properties:
                  default: {}
                  description: >-
                    Optional key/value metadata for the organization. Used to
                    scope and secure data when its users access an Upsolve
                    dashboard.
                  examples:
                    - plan: enterprise
                      region: us-east
                  type: object
                  propertyNames:
                    type: string
                    description: Property key
                  additionalProperties:
                    description: Property value
                externalId:
                  description: >-
                    Optional external identifier for this project organization
                    (e.g. your internal company UUID). When set, subsequent
                    calls that accept `projectOrganizationId` will resolve this
                    value to the underlying Upsolve UUID.
                  examples:
                    - acme-internal-uuid-1234
                  type: string
                  minLength: 1
              required:
                - name
                - projectId
            examples:
              example1:
                value:
                  name: Acme Inc
                  projectId: 123e4567-e89b-12d3-a456-426614174000
                  properties:
                    plan: enterprise
                    region: us-east
                  externalId: acme-internal-uuid-1234
                  apiKey: up_embed_************
        required: true
      responses:
        '200':
          description: POST /v1/api/projects/register-organization Positive response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: success
                  data:
                    type: object
                    properties:
                      projectOrganizationId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
                        description: >-
                          The Upsolve-issued ID of the newly created project
                          organization.
                        examples:
                          - 123e4567-e89b-12d3-a456-426614174000
                      externalId:
                        description: >-
                          The external identifier supplied at creation time, or
                          null if none was provided.
                        examples:
                          - acme-internal-uuid-1234
                        type:
                          - string
                          - 'null'
                    required:
                      - projectOrganizationId
                    additionalProperties: false
                    examples:
                      - projectOrganizationId: 123e4567-e89b-12d3-a456-426614174000
                        externalId: acme-internal-uuid-1234
                required:
                  - status
                  - data
                additionalProperties: false
        '400':
          description: POST /v1/api/projects/register-organization Negative response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: error
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      details:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                    required:
                      - message
                    additionalProperties: false
                required:
                  - status
                  - error
                additionalProperties: false
      security:
        - APIKEY_1: []
components:
  securitySchemes:
    APIKEY_1:
      type: apiKey
      in: query
      name: apiKey
      x-in-actual: body
      description: apiKey MUST be supplied within the request body instead of query

````