Synergy Connect

Documentação

Consultar uma mídia

GET/{version}/{media_id}

Devolve os dados de uma mídia do número (recebida ou enviada). A url da resposta aponta para o download NESTA API, com a mesma chave: a URL da Meta expira em minutos e exige o token da conta, que a integração não tem.

Só uma mídia DESTE número é lida: qualquer outro id responde 404, sem dizer o que ele é.

Requer#

Escopo da chave
Enviar mensagens messagesComo os escopos funcionam
Recurso do plano
API e webhooks apiVer os planos que incluem
Formato
O da API de WhatsApp Cloud da Meta, na requisição e na resposta.

Parâmetros#

No caminho#

No caminho
NomeTipoObrigatórioDescrição
versionstringobrigatórioA versão da Graph API da Meta que a chamada usa (vN.N): repassada à Meta como veio.
media_idstringobrigatórioO id da mídia na Meta.

Na query#

Na query
NomeTipoObrigatórioDescrição
phone_number_idstringobrigatórioO número dono da mídia. É o parâmetro da própria Meta, aqui obrigatório: é ele que diz de qual número é a mídia.

Cabeçalhos#

Cabeçalhos
NomeTipoObrigatórioDescrição
AuthorizationstringobrigatórioSua chave de API, no formato Bearer <chave>. Veja Autenticação.

Respostas#

Respostas
StatusCódigoQuando acontece
200—Mídia
400100Falta phone_number_id na query
401190Sem Authorization: Bearer, chave malformada ou forjada, chave revogada, ou chave sem acesso a este número
403200A chave não tem o escopo messages
4031390004O plano da organização não inclui a API
404100O phone_number_id não é um número ativo desta organização (ou não tem de 5 a 20 dígitos)
404100O id não é uma mídia deste número
429130429Mais de 2000 requisições em 10 s com esta chave neste número (Retry-After: 10)
429130429O número acabou de recusar por vazão, ou está sobrecarregado: o 429 se repete por 200 ms (Retry-After: 1)
5032Serviço temporariamente indisponível
Outros131047Erro da Meta, como ela mandou

Os erros no formato da Meta trazem o código em error.code. Ver todos os erros.

Corpo da resposta 200#

Campos da resposta 200
NomeTipoObrigatórioDescrição
idstringopcionalO id da mídia.
urlstringopcionalA URL de download NESTA API (não a da Meta): GET /{version}/{media_id}/download?phone_number_id=…, com a mesma chave.
mime_typestringobrigatórioO tipo MIME do arquivo (por exemplo image/jpeg, audio/ogg, application/pdf).
sha256stringobrigatórioO hash SHA-256 do arquivo, para conferir o download.
file_sizeinteger | stringopcionalO tamanho em bytes.
messaging_product"whatsapp"opcional

Limites de taxa#

  • Borda: 2000 requisições a cada 10 s por chave × número (API_EDGE_LIMIT).

Notas#

  • {version} é a versão da Graph API da Meta que a integração usa (por exemplo v25.0): a chamada é repassada à Meta nessa versão. O código aceita qualquer vN.N no formato; não confere se a Meta ainda atende a versão.
Requisição

curl

curl 'https://api.synergyconnect.com.br/v25.0/1166846181421424?phone_number_id=106540352242922' \
  -H "Authorization: Bearer $SYNERGY_API_KEY"

JavaScript

const res = await fetch('https://api.synergyconnect.com.br/v25.0/1166846181421424?phone_number_id=106540352242922', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.SYNERGY_API_KEY}`,
  },
});
console.log(res.status, await res.json());

Python

import os

import requests

res = requests.get(
    "https://api.synergyconnect.com.br/v25.0/1166846181421424?phone_number_id=106540352242922",
    headers={
        "Authorization": f"Bearer {os.environ['SYNERGY_API_KEY']}",
    },
)
print(res.status_code, res.json())
Resposta

200

{
  "id": "1166846181421424",
  "url": "https://api.synergyconnect.com.br/v25.0/1166846181421424/download?phone_number_id=106540352242922",
  "mime_type": "image/jpeg",
  "sha256": "4b68ab3847feda7d6c62c1fbcbeebfa35eab7351ed5e78f4ddadea5df64b8015",
  "file_size": 303833,
  "messaging_product": "whatsapp"
}

400

{
  "error": {
    "message": "(#100) Invalid parameter.",
    "type": "OAuthException",
    "code": 100,
    "error_data": {
      "messaging_product": "whatsapp",
      "details": "The parameter \"phone_number_id\" is required."
    },
    "fbtrace_id": "syn-3f9a1c0b"
  }
}

401

{
  "error": {
    "message": "(#190) Invalid OAuth access token.",
    "type": "OAuthException",
    "code": 190,
    "fbtrace_id": "syn-3f9a1c0b"
  }
}

403

{
  "error": {
    "message": "(#200) Permissions error: this key does not have access to this resource.",
    "type": "OAuthException",
    "code": 200,
    "fbtrace_id": "syn-3f9a1c0b"
  }
}

Há 2 casos com este status; veja a tabela de respostas.

404

{
  "error": {
    "message": "(#100) Unsupported request: object does not exist or this key cannot reach it.",
    "type": "OAuthException",
    "code": 100,
    "fbtrace_id": "syn-3f9a1c0b"
  }
}

Há 2 casos com este status; veja a tabela de respostas.

429

{
  "error": {
    "message": "(#130429) Rate limit hit: the number's message throughput has been reached.",
    "type": "OAuthException",
    "code": 130429,
    "fbtrace_id": "syn-3f9a1c0b"
  }
}

Há 2 casos com este status; veja a tabela de respostas.

503

{
  "error": {
    "message": "(#2) Service temporarily unavailable.",
    "type": "OAuthException",
    "code": 2,
    "fbtrace_id": "syn-3f9a1c0b"
  }
}

Ficou com dúvida? Escreva para suporte@synergyconnect.com.br.