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

# Enviar áudio

> Envie um áudio por link público.

Envia um áudio para um contato com a [janela de 24 horas](https://developers.datafyapi.com.br/api-reference/instagram/mensagens/introducao.md#janela-de-24-horas) aberta.

Quem baixa o arquivo é a Meta, a partir do endereço informado em `payload.url`. Não existe upload prévio nem ID de mídia: o áudio precisa estar hospedado em algum lugar acessível antes do envio.

## Formatos aceitos

| Formato | Content-Type | Tamanho máximo |
| - | - | - |
| AAC | `audio/aac` | 25 MB |
| M4A e MP4 | `audio/mp4` | 25 MB |
| WAV | `audio/wav` | 25 MB |

> [!WARNING]
>
> **MP3 e OGG não são aceitos em áudio.** São os dois formatos que mais aparecem em quem vem do WhatsApp, onde a mensagem de voz é OGG/Opus. Converta para AAC, M4A ou WAV antes de enviar.

## Cabeçalho Content-Type

O formato é determinado pelo cabeçalho `Content-Type` devolvido pelo servidor que hospeda o arquivo, não pela extensão informada na URL.

Um arquivo `.m4a` servido como `audio/mp4a-latm` é recusado; o mesmo arquivo servido como `audio/mp4` é aceito. Em caso de recusa de um formato presente na tabela, verifique o cabeçalho:

```bash theme={null}
curl -sI https://exemplo.com/arquivo.m4a | grep -i content-type
```

## Formato recusado

```json theme={null}
{
  "error": {
    "message": "Esse formato de anexo não é aceito.",
    "type": "IGApiException",
    "code": 100,
    "error_subcode": 2534080
  }
}
```

O `error_subcode` **2534080** indica formato recusado. O `code 100` sem subcódigo indica falha ao baixar o arquivo.

> [!WARNING]
>
> A URL precisa ser **pública e direta**. Endereços que respondem com redirecionamento, exigem autenticação ou bloqueiam o download falham, mesmo abrindo normalmente no navegador.

O áudio aparece como mensagem de voz na conversa.


## OpenAPI

````yaml api-reference/instagram/specs/audio.json POST /ig/me/messages
openapi: 3.1.0
info:
  title: Datafy API — Enviar áudio
  version: 1.0.0
servers:
  - url: https://cloud.datafyapi.com.br
    description: Produção
security:
  - bearerAuth: []
paths:
  /ig/me/messages:
    post:
      summary: Enviar áudio
      operationId: igEnviarAudio
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - recipient
                - message
              properties:
                recipient:
                  type: object
                  required:
                    - id
                  description: Quem recebe a mensagem.
                  properties:
                    id:
                      type: string
                      description: IGSID do contato, recebido no webhook em `sender.id`.
                      example: '1000000000000001'
                message:
                  type: object
                  required:
                    - attachment
                  properties:
                    attachment:
                      type: object
                      required:
                        - type
                        - payload
                      properties:
                        type:
                          type: string
                          enum:
                            - audio
                          description: Sempre `audio`.
                          default: audio
                        payload:
                          type: object
                          required:
                            - url
                          properties:
                            url:
                              type: string
                              format: uri
                              description: >-
                                Endereço público e direto do arquivo.
                                Redirecionamentos não são seguidos.
                              example: https://exemplo.com/arquivo.m4a
            example:
              recipient:
                id: '1000000000000001'
              message:
                attachment:
                  type: audio
                  payload:
                    url: https://exemplo.com/arquivo.m4a
      responses:
        '200':
          description: Aceito pela Meta. Não confirma a entrega.
          content:
            application/json:
              example:
                recipient_id: '1000000000000001'
                message_id: aWdfZAG1faXRlbTo......
        '400':
          description: Erro retornado pela Meta.
          content:
            application/json:
              example:
                error:
                  message: Não foi possível encontrar o usuário solicitado.
                  type: IGApiException
                  code: 100
                  error_subcode: 2534014
                  fbtrace_id: AbCdEfGhIjK
        '401':
          description: Token ausente ou inválido.
          content:
            application/json:
              example:
                statusCode: 401
                message: Token inválido ou não encontrado.
        '402':
          description: Assinatura da Datafy inativa.
          content:
            application/json:
              example:
                statusCode: 402
                message: >-
                  Assinatura inativa (status: canceled). Ative sua assinatura no
                  painel para voltar a usar a API.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Token do canal do Instagram, gerado no painel da Datafy. Formato:
        `sk_live_xxx`.

````

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