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

# Criar Equipe

> Cria uma nova equipe com um usuário administrador. A operação é atômica - se qualquer etapa falhar, nada é criado.



## OpenAPI

````yaml api-reference/openapi.yaml post /api/openapi/v1/teams
openapi: 3.0.3
info:
  title: Lota AI OpenAPI
  description: >
    API RESTful completa para gerenciamento da plataforma Lota AI. Esta API
    fornece acesso programático para parceiros white-label, integrações externas
    e dashboards personalizados.


    ## Autenticação

    Todos os endpoints (exceto `/auth/token`) requerem autenticação via Bearer
    token. Gere um token usando suas credenciais de chave API.


    ## Limite de Taxa

    Limites de taxa são configurados por chave API. Entre em contato com o
    suporte para limites personalizados.


    ## Suporte

    Para problemas ou dúvidas, entre em contato com o líder da sua equipe ou
    consulte a documentação.
  version: 1.3.0
  contact:
    name: Suporte API Lota AI
    url: https://lotai.com.br
  license:
    name: Proprietário
    url: https://lotai.com.br/terms-and-conditions
servers:
  - url: http://localhost:3000
    description: Servidor de desenvolvimento local
  - url: '{customUrl}'
    description: Servidor white-label personalizado
    variables:
      customUrl:
        default: https://sua-url-aqui.com
        description: URL do seu servidor white-label
security:
  - BearerAuth: []
tags:
  - name: Autenticação
    description: Gerar e gerenciar tokens de acesso JWT
  - name: Chaves API
    description: Gerenciar chaves API para autenticação
  - name: Equipes
    description: Gerenciar equipes e suas configurações
  - name: Documentos
    description: Gerenciar documentos e uploads de arquivos
  - name: Bots
    description: Gerenciar bots de IA e assistentes
  - name: Dispositivos
    description: Gerenciar dispositivos WhatsApp e conexões
paths:
  /api/openapi/v1/teams:
    post:
      tags:
        - Equipes
      summary: Criar Equipe
      description: >-
        Cria uma nova equipe com um usuário administrador. A operação é atômica
        - se qualquer etapa falhar, nada é criado.
      operationId: createTeam
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - user
                - team
              properties:
                user:
                  $ref: '#/components/schemas/CreateUserInput'
                team:
                  $ref: '#/components/schemas/CreateTeamInput'
      responses:
        '201':
          description: Equipe criada com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      team:
                        $ref: '#/components/schemas/Team'
                      user:
                        $ref: '#/components/schemas/User'
        '400':
          $ref: '#/components/responses/BadRequest'
components:
  schemas:
    CreateUserInput:
      type: object
      required:
        - name
        - email
        - phone
      properties:
        name:
          type: string
          example: João Silva
        email:
          type: string
          format: email
          example: joao.silva@exemplo.com.br
        phone:
          type: string
          example: '+5511999999999'
    CreateTeamInput:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          example: Corporação ACME
        plan_name:
          type: string
          example: Pro
        quotas:
          $ref: '#/components/schemas/TeamQuotas'
    Team:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          example: Corporação ACME
        plan_name:
          type: string
          example: Pro
        paying:
          type: boolean
          example: true
        banned:
          type: boolean
          example: false
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    User:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        email:
          type: string
          format: email
        phone:
          type: string
        created_at:
          type: string
          format: date-time
    TeamQuotas:
      type: object
      properties:
        bots:
          type: integer
          example: 10
        accounts:
          type: integer
          example: 20
        characters:
          type: integer
          example: 1000000
        documents:
          type: integer
          example: 500
        members:
          type: integer
          example: 5
        credits:
          type: integer
          example: 1000
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: string
          example: Mensagem de erro
        code:
          type: string
          example: ERROR_CODE
        details:
          type: object
          nullable: true
  responses:
    BadRequest:
      description: Requisição inválida - Entrada inválida
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            error: Corpo da requisição inválido
            code: BAD_REQUEST
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Token JWT obtido do endpoint /api/openapi/auth/token

````