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

# Consultar comando assíncrono

> Acompanhe o resultado de um comando enviado com async.

Quando você envia um comando com `async: true`, a API responde na hora com um
`commandId` e executa o comando em segundo plano. Este endpoint diz o que
aconteceu com ele.

```json theme={null}
{
  "success": true,
  "commandId": "9f1c8f2e-4b7a-4f10-9c3d-2e1a8b5d7c40",
  "sessionId": "minha-sessao",
  "commandType": "send_text",
  "status": "completed",
  "result": {
    "commandId": "9f1c8f2e-4b7a-4f10-9c3d-2e1a8b5d7c40",
    "sessionId": "minha-sessao",
    "commandType": "send_text",
    "success": true,
    "data": { "messageId": "3EB0C767D26B8CA3F7A1" },
    "error": null,
    "timestamp": "2026-09-03T04:15:22.318Z"
  },
  "error": null,
  "queuedAt": "2026-09-03T04:15:21.902Z",
  "startedAt": "2026-09-03T04:15:22.104Z",
  "finishedAt": "2026-09-03T04:15:22.318Z"
}
```

## Status

| `status`     | Significado                                                |
| ------------ | ---------------------------------------------------------- |
| `queued`     | Na fila, ainda não começou                                 |
| `processing` | Executando agora                                           |
| `completed`  | Executou — veja `result.success`                           |
| `failed`     | O worker falhou antes de concluir; o motivo vem em `error` |

<Warning>
  `status` não é o sucesso do comando. Um comando que rodou e falhou (número
  inválido, sessão desconectada) fica `completed` com `result.success: false` e
  o motivo em `result.error`. O `status: "failed"` cobre só a falha do worker.
</Warning>

O campo `result` traz o mesmo payload do webhook `command.result` e só é
preenchido quando o comando termina. Antes disso ele vem `null`.

## Escopo e retenção

Você só enxerga comandos das suas próprias sessões. Uma API Key restrita a uma
sessão consulta apenas os comandos daquela sessão. Comando de terceiros responde
`404`, igual a um `commandId` inexistente.

<Note>
  O resultado fica disponível por uma janela limitada — cerca de 1 hora após a
  execução (24 horas em caso de falha do worker). Passado esse prazo a resposta
  é `404`. Para entrega garantida, use o webhook `command.result` em vez de
  polling.
</Note>


## OpenAPI

````yaml api-reference/openapi.json GET /api/v1/commands/{commandId}
openapi: 3.1.0
info:
  title: D-API - Infraestrutura WhatsApp Completa
  description: >-
    Solução escalável e robusta para gestores de automação, SaaS e usuários
    finais que precisam de uma integração WhatsApp confiável. Oferece múltiplas
    instâncias simultâneas, webhooks em tempo real, dashboard intuitivo e API
    REST documentada com 99.9% de uptime e latência inferior a 30ms.
  version: 1.2.1
  contact:
    name: Suporte D-API
    email: suporte@d-api.cloud
    url: https://d-api.cloud
servers:
  - url: https://api.d-api.cloud
    description: Produção
security:
  - ApiKeyAuth: []
tags:
  - name: Início
    description: Endpoints base
  - name: Sessões
    description: Endpoints para gerenciamento de sessões
  - name: Mensagens
    description: Endpoints para envio de mensagens
  - name: Cloud API
    description: >-
      WhatsApp API Oficial (Meta Cloud API): conexão manual, gestão de templates
      (listar/criar/excluir) e envio de templates.
  - name: Ligações URA
    description: >-
      Disparo de ligações de voz (URA): individual ou em massa, com áudio ou
      fluxo IVR.
  - name: SMS
    description: 'Envio de SMS: individual ou em massa.'
  - name: Comandos
    description: >-
      Consulta de comandos assíncronos (async: true) pelo commandId retornado no
      enfileiramento.
paths:
  /api/v1/commands/{commandId}:
    get:
      tags:
        - Comandos
      summary: Consultar comando assíncrono
      description: >-
        Consulta o estado e o resultado de um comando enviado com `async: true`,
        pelo `commandId` retornado no enfileiramento.


        `status`: `queued` (na fila), `processing` (executando), `completed`
        (executou — veja `result.success` para saber se o comando deu certo) ou
        `failed` (o worker falhou; veja `error`).


        O resultado fica disponível por uma janela limitada de retenção da fila;
        para entrega garantida use o webhook `command.result`.
      operationId: getApiV1CommandsByCommandId
      parameters:
        - schema:
            minLength: 1
            type: string
          in: path
          name: commandId
          required: true
      responses:
        '200':
          description: Resposta bem-sucedida
        '404':
          description: >-
            Comando inexistente, expirado da fila ou fora do escopo da
            credencial
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'API Key para autenticação. Formato: <API_KEY>'

````