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

# Create a team

> Creates a customer-owned team in the organization associated with the authenticated service account. CrewAI-managed teams cannot be created through the API.



## OpenAPI

````yaml /openapi/platform-v1.yaml post /api/v1/teams
openapi: 3.0.1
info:
  title: CrewAI Platform API
  version: v1
  description: Supported public API for CrewAI Platform.
servers:
  - url: https://app.crewai.com
    description: Current CrewAI Platform host
security:
  - bearerAuth: []
tags:
  - name: Users
    description: Users in the organization.
  - name: Status
    description: Platform health and API availability.
  - name: Automations
    description: Automations and their source artifacts.
  - name: Teams
    description: Teams in the organization.
  - name: Service Accounts
    description: Service accounts in the organization.
paths:
  /api/v1/teams:
    post:
      tags:
        - Teams
      summary: Create a team
      description: >-
        Creates a customer-owned team in the organization associated with the
        authenticated service account. CrewAI-managed teams cannot be created
        through the API.
      operationId: createTeam
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                name:
                  type: string
                  example: Operators
                description:
                  type: string
                  example: Runs production automations
                  nullable: true
              required:
                - name
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              examples:
                created:
                  value:
                    data:
                      id: 4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a
                      name: Operators
                      description: Runs production automations
                      kind: customer_owned
                      created_at: '2026-07-07T00:00:00Z'
                      updated_at: '2026-07-07T00:00:00Z'
                  summary: Team created
              schema:
                type: object
                required:
                  - data
                additionalProperties: false
                properties:
                  data:
                    type: object
                    required:
                      - id
                      - name
                      - description
                      - kind
                      - created_at
                      - updated_at
                    additionalProperties: false
                    properties:
                      id:
                        type: string
                        format: uuid
                        example: 4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a
                      name:
                        type: string
                        example: Builders
                      description:
                        type: string
                        example: Everyone who ships automations
                        nullable: true
                      kind:
                        type: string
                        enum:
                          - customer_owned
                          - crewai_managed
                        example: customer_owned
                        description: >
                          How the team is owned:

                          - `customer_owned`: Created by the organization. Name
                          and description can be changed, and the team can be
                          deleted.

                          - `crewai_managed`: Created by CrewAI. The name cannot
                          be changed, the team cannot be deleted, and its roles
                          cannot be changed.
                      created_at:
                        type: string
                        format: date-time
                        example: '2026-07-07T00:00:00Z'
                      updated_at:
                        type: string
                        format: date-time
                        example: '2026-07-07T00:00:00Z'
        '400':
          description: Bad Request
          content:
            application/json:
              examples:
                missing_name:
                  value:
                    errors:
                      - type: >-
                          https://docs-platform.crewai.com/api/problems/bad_request
                        code: bad_request
                        title: Bad request
                        status: 400
                        detail: The request is invalid.
                  summary: Missing name
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '401':
          description: Unauthorized
          content:
            application/json:
              examples:
                unauthorized:
                  value:
                    errors:
                      - type: >-
                          https://docs-platform.crewai.com/api/problems/unauthorized
                        code: unauthorized
                        title: Unauthorized
                        status: 401
                        detail: Missing or invalid bearer token.
                  summary: Missing or invalid bearer token
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '403':
          description: Forbidden
          content:
            application/json:
              examples:
                rbac_v2_disabled:
                  value:
                    errors:
                      - type: >-
                          https://docs-platform.crewai.com/api/problems/forbidden
                        code: forbidden
                        title: Forbidden
                        status: 403
                        detail: Teams are not available for your organization.
                  summary: Teams API unavailable without RBAC v2
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              examples:
                duplicate_name:
                  value:
                    errors:
                      - type: >-
                          https://docs-platform.crewai.com/api/problems/validation_error
                        code: validation_error
                        title: Validation error
                        status: 422
                        detail: Name has already been taken
                  summary: Name already used in the organization
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
components:
  schemas:
    ErrorEnvelope:
      type: object
      required:
        - errors
      additionalProperties: false
      properties:
        errors:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/Error'
    Error:
      type: object
      description: Public API error object.
      required:
        - type
        - code
        - title
        - status
        - detail
      additionalProperties: false
      properties:
        type:
          type: string
          format: uri
          enum:
            - https://docs-platform.crewai.com/api/problems/bad_request
            - https://docs-platform.crewai.com/api/problems/clipper_disabled
            - https://docs-platform.crewai.com/api/problems/clipper_disallowed
            - >-
              https://docs-platform.crewai.com/api/problems/clipper_feature_disabled
            - https://docs-platform.crewai.com/api/problems/clipper_not_found
            - https://docs-platform.crewai.com/api/problems/conflict
            - https://docs-platform.crewai.com/api/problems/forbidden
            - https://docs-platform.crewai.com/api/problems/internal_error
            - https://docs-platform.crewai.com/api/problems/not_found
            - https://docs-platform.crewai.com/api/problems/service_unavailable
            - >-
              https://docs-platform.crewai.com/api/problems/tool_execution_failed
            - https://docs-platform.crewai.com/api/problems/unauthorized
            - https://docs-platform.crewai.com/api/problems/validation_error
          example: https://docs-platform.crewai.com/api/problems/bad_request
        code:
          type: string
          enum:
            - bad_request
            - clipper_disabled
            - clipper_disallowed
            - clipper_feature_disabled
            - clipper_not_found
            - conflict
            - forbidden
            - internal_error
            - not_found
            - service_unavailable
            - tool_execution_failed
            - unauthorized
            - validation_error
          example: bad_request
        title:
          type: string
          x-crewai-enum-format: freeform
          enum:
            - Bad request
            - Clipper resource disabled
            - Clipper resource disallowed
            - Clipper feature disabled
            - Clipper resource not found
            - Conflict
            - Forbidden
            - Internal error
            - Not found
            - Service unavailable
            - Tool execution failed
            - Unauthorized
            - Validation error
          example: Bad request
        status:
          type: integer
          enum:
            - 400
            - 401
            - 403
            - 404
            - 409
            - 422
            - 500
            - 503
          example: 400
        detail:
          type: string
          example: The request is invalid.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: opaque

````