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

# Criar número (PILOT_STATUS)

> Cria um número WhatsApp não-oficial (PILOT_STATUS) e retorna o QR code + pairing code para parear. Por padrão, vincula o número à API key chamadora (defina linkToApiKey:false para não vincular). Efeito real: provisiona uma instância.



## OpenAPI

````yaml openapi.pt.json POST /v1/numbers
openapi: 3.1.0
info:
  title: API Pilot Status
  version: 1.0.0
  license:
    name: Pilot Status Terms of Service
    url: https://pilotstatus.com.br/terms
  description: >-
    API REST pública do Pilot Status. Autentique com o header `x-api-key:
    ps_...` (ou `x-api-key-id`). Base URL: https://pilotstatus.com.br
servers:
  - url: https://pilotstatus.com.br
security:
  - apiKey: []
  - apiKeyId: []
paths:
  /v1/numbers:
    post:
      tags:
        - Numbers
      summary: Criar número (PILOT_STATUS)
      description: >-
        Cria um número WhatsApp não-oficial (PILOT_STATUS) e retorna o QR code +
        pairing code para parear. Por padrão, vincula o número à API key
        chamadora (defina linkToApiKey:false para não vincular). Efeito real:
        provisiona uma instância.
      operationId: post_numbers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome de exibição do número.
                  example: Suporte
                number:
                  type: string
                  description: Número de telefone (mínimo 10 dígitos, opcional +).
                  example: '5511999999999'
                linkToApiKey:
                  type: boolean
                  description: Vincular o novo número à API key chamadora (padrão true).
                  example: 'true'
                settings:
                  type: object
                  description: >-
                    Configurações com que o número NASCE — o mesmo bloco do
                    `PATCH /v1/numbers/{id}`. É aqui que se decide o
                    `historyImportEnabled`: o padrão é `true` (era `false` para
                    números criados entre 2026-08-26 e 2026-09-16), o provedor
                    entrega o histórico do aparelho numa rajada única logo após
                    a conexão, e não há como pedi-lo depois. Todos os campos do
                    bloco do PATCH são aceitos aqui; o `201` devolve as
                    configurações com que o número foi criado.
                  properties:
                    historyImportEnabled:
                      type: boolean
                      description: >-
                        Armazena o histórico que o aparelho entrega na conexão.
                        Padrão `false`.
                      example: true
                    webhookHistoricalMessages:
                      type: boolean
                      description: >-
                        Entrega essas mensagens do histórico aos seus webhooks.
                        Padrão `false`.
                      example: false
                    ignoreNewsletters:
                      type: boolean
                      description: >-
                        Descarta publicações de Canal do WhatsApp
                        (`@newsletter`) na entrada. Padrão `false`.
                      example: false
                    markReadOnSend:
                      type: boolean
                      description: >-
                        Padrão do `markRead` do `POST /v1/messages/send`. Padrão
                        `true`. `false`: em número oficial (Meta) os envios saem
                        sem o indicador "digitando" e sem marcar a conversa como
                        lida. Sem efeito em número não-oficial.
                      example: true
              required:
                - name
                - number
      responses:
        '201':
          description: Criar número
          content:
            application/json:
              example:
                numberId: cmm0abc123
                instance:
                  id: num_01HZX...
                  number: '5511999999999'
                  name: Suporte
                  provider: PILOT_STATUS
                  status: CONNECTING
                  isFullyConnected: false
                qrcodeBase64: data:image/png;base64,iVBORw0KGgo...
                pairingCode: ABCD-1234
                linkedApiKeyId: null
              schema:
                type: object
                properties:
                  numberId:
                    type: string
                    description: >-
                      O id do número — o mesmo `id` do `GET /v1/numbers`, o que
                      o `DELETE /v1/numbers/{id}` recebe e o `data.numberId` dos
                      webhooks. Não é o mesmo que `instance.id` (o id da
                      instância, sem mudança).
                  instance:
                    type: object
                    description: >-
                      A instância criada. Sem mudança; `instance.id` é o id da
                      instância.
                  qrcodeBase64:
                    type:
                      - string
                      - 'null'
                  pairingCode:
                    type:
                      - string
                      - 'null'
                  linkedApiKeyId:
                    type: 'null'
                    description: Sempre `null` (o vínculo de chave foi aposentado).
        '400':
          description: >-
            Payload ou parâmetros inválidos — ou `INVALID_BODY` quando o corpo
            não é um JSON válido
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              examples:
                validation:
                  summary: Erro de validação
                  value:
                    error: Validation error
                invalidBody:
                  summary: Corpo não é um JSON válido
                  value:
                    error: >-
                      The request body is not valid JSON | O corpo da requisição
                      não é um JSON válido
                    code: INVALID_BODY
        '401':
          description: Header `x-api-key` / `x-api-key-id` ausente ou inválido
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Unauthorized
        '429':
          description: Limite de taxa excedido
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Too many requests
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: Sua chave de API ps_
    apiKeyId:
      type: apiKey
      in: header
      name: x-api-key-id
      description: Id da chave de API (alternativa ao x-api-key)

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.