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

# Listar envios em massa

> Listar todos os envios em massa com filtros e paginação

## Descrição

Retorna uma lista paginada de todos os envios em massa. Suporta filtros por status, template e intervalo de datas para facilitar a busca.

## Header de autenticação

<ParamField header="X-API-Key" type="string" required>
  Sua API Key da Mindo. Formato: `mindo_xxxxxxxxxxxxxxxxxxxxxxxx`
</ParamField>

## Parâmetros de query

<ParamField query="status" type="string">
  Filtrar por status do envio. Valores possíveis: `QUEUED`, `PROCESSING`, `COMPLETED`, `PARTIAL`, `FAILED`, `CANCELLED`.
</ParamField>

<ParamField query="template" type="integer">
  Filtrar por ID do template utilizado.
</ParamField>

<ParamField query="created_after" type="string (date)">
  Filtrar envios criados após esta data. Formato: `YYYY-MM-DD`.
</ParamField>

<ParamField query="created_before" type="string (date)">
  Filtrar envios criados antes desta data. Formato: `YYYY-MM-DD`.
</ParamField>

<ParamField query="page" type="integer">
  Número da página. Padrão: `1`.
</ParamField>

<ParamField query="page_size" type="integer">
  Resultados por página. Padrão: `20`.
</ParamField>

## Resposta

<ResponseField name="count" type="integer">
  Total de envios em massa que correspondem aos filtros.
</ResponseField>

<ResponseField name="next" type="string | null">
  URL da próxima página de resultados. `null` se for a última página.
</ResponseField>

<ResponseField name="previous" type="string | null">
  URL da página anterior. `null` se for a primeira página.
</ResponseField>

<ResponseField name="results" type="array">
  Lista de envios em massa.

  <Expandable title="Propriedades de cada envio">
    <ResponseField name="id" type="string (UUID)">
      ID único do envio em massa.
    </ResponseField>

    <ResponseField name="status" type="string">
      Status atual do envio.
    </ResponseField>

    <ResponseField name="template" type="object">
      Informações sobre o template utilizado.

      <Expandable title="Propriedades de template">
        <ResponseField name="id" type="integer">
          ID interno do template.
        </ResponseField>

        <ResponseField name="template_name" type="string">
          Nome do template.
        </ResponseField>

        <ResponseField name="language" type="string">
          Idioma do template.
        </ResponseField>

        <ResponseField name="status" type="string">
          Status do template na Meta.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="phone_number" type="object">
      Informações sobre o número do WhatsApp remetente.

      <Expandable title="Propriedades de phone_number">
        <ResponseField name="id" type="integer">
          ID interno do número.
        </ResponseField>

        <ResponseField name="display_phone_number" type="string">
          Número formatado para exibição.
        </ResponseField>

        <ResponseField name="verified_name" type="string">
          Nome verificado pela Meta.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="total_recipients" type="integer">
      Total de destinatários.
    </ResponseField>

    <ResponseField name="sent_count" type="integer">
      Mensagens enviadas.
    </ResponseField>

    <ResponseField name="delivered_count" type="integer">
      Mensagens entregues.
    </ResponseField>

    <ResponseField name="read_count" type="integer">
      Mensagens lidas.
    </ResponseField>

    <ResponseField name="failed_count" type="integer">
      Mensagens com falha.
    </ResponseField>

    <ResponseField name="pending_count" type="integer">
      Mensagens pendentes.
    </ResponseField>

    <ResponseField name="progress_percentage" type="float">
      Percentual de progresso (0-100).
    </ResponseField>

    <ResponseField name="created_at" type="string (ISO 8601)">
      Data e hora de criação.
    </ResponseField>

    <ResponseField name="completed_at" type="string (ISO 8601) | null">
      Data e hora de conclusão. `null` se não concluído.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.mindosoftware.com/api/v1/meta-templates/bulk-sends/?status=COMPLETED&created_after=2025-11-01&page=1&page_size=10" \
    -H "X-API-Key: mindo_xxxxxxxxxxxxxxxxxxxxxxxx"
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api.mindosoftware.com/api/v1/meta-templates/bulk-sends/",
      headers={"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx"},
      params={
          "status": "COMPLETED",
          "created_after": "2025-11-01",
          "page": 1,
          "page_size": 10
      }
  )

  data = response.json()
  print(f"Total de envios: {data['count']}")
  for bulk in data["results"]:
      print(f"  {bulk['id']}: {bulk['status']} - {bulk['template']['template_name']} ({bulk['total_recipients']} destinatários)")
  ```

  ```javascript JavaScript theme={null}
  const params = new URLSearchParams({
    status: "COMPLETED",
    created_after: "2025-11-01",
    page: "1",
    page_size: "10"
  });

  const response = await fetch(
    `https://api.mindosoftware.com/api/v1/meta-templates/bulk-sends/?${params}`,
    {
      headers: { "X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx" }
    }
  );

  const data = await response.json();
  console.log(`Total de envios: ${data.count}`);
  data.results.forEach(bulk => {
    console.log(`  ${bulk.id}: ${bulk.status} - ${bulk.template.template_name} (${bulk.total_recipients} destinatários)`);
  });
  ```
</RequestExample>

<ResponseExample>
  ```json 200 - OK theme={null}
  {
    "count": 2,
    "next": null,
    "previous": null,
    "results": [
      {
        "id": "a3f2b8c9-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
        "status": "COMPLETED",
        "template": {
          "id": 45,
          "template_name": "welcome_message",
          "language": "es",
          "status": "APPROVED"
        },
        "phone_number": {
          "id": 123,
          "display_phone_number": "+54 9 223 675-0780",
          "verified_name": "Mindo Software"
        },
        "total_recipients": 3,
        "sent_count": 3,
        "delivered_count": 2,
        "read_count": 1,
        "failed_count": 0,
        "pending_count": 0,
        "progress_percentage": 100.0,
        "created_at": "2025-11-16T21:30:00Z",
        "completed_at": "2025-11-16T21:30:28Z"
      },
      {
        "id": "b4c3d9e0-5f6a-7b8c-9d0e-1f2a3b4c5d6e",
        "status": "COMPLETED",
        "template": {
          "id": 46,
          "template_name": "order_confirmation",
          "language": "es",
          "status": "APPROVED"
        },
        "phone_number": {
          "id": 123,
          "display_phone_number": "+54 9 223 675-0780",
          "verified_name": "Mindo Software"
        },
        "total_recipients": 150,
        "sent_count": 150,
        "delivered_count": 142,
        "read_count": 98,
        "failed_count": 0,
        "pending_count": 0,
        "progress_percentage": 100.0,
        "created_at": "2025-11-15T14:00:00Z",
        "completed_at": "2025-11-15T14:09:30Z"
      }
    ]
  }
  ```

  ```json 401 - Não autenticado theme={null}
  {
    "error": "Este endpoint requiere autenticacion con API Key (header X-API-Key)"
  }
  ```
</ResponseExample>
