Upload de mídia
curl --request POST \
--url https://cloud.datafyapi.com.br/v1/{phone_number_id}/media \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form messaging_product=whatsapp \
--form file=@example-file \
--form type=image/jpegconst form = new FormData();
form.append('messaging_product', 'whatsapp');
form.append('file', '<string>');
form.append('type', 'image/jpeg');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://cloud.datafyapi.com.br/v1/{phone_number_id}/media', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://cloud.datafyapi.com.br/v1/{phone_number_id}/media"
files = { "file": ("example-file", open("example-file", "rb")) }
payload = {
"messaging_product": "whatsapp",
"type": "image/jpeg"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text){
"id": "1234567890123456"
}{
"error": {
"message": "(#131030) Recipient phone number not in allowed list",
"type": "OAuthException",
"code": 131030,
"fbtrace_id": "AbCdEfGhIjK"
}
}{
"statusCode": 401,
"message": "Token inválido ou não encontrado."
}{
"statusCode": 402,
"message": "Assinatura inativa. Ative sua assinatura no painel para voltar a usar a API."
}{
"statusCode": 429,
"message": "Rate limit excedido (60 req/min). Tente novamente em 12s."
}Mídias
Upload de mídia
Espelho de POST /{phone_number_id}/media da Meta Cloud API. Retorna um id para usar no envio de mensagens de mídia.
POST
/
v1
/
{phone_number_id}
/
media
Upload de mídia
curl --request POST \
--url https://cloud.datafyapi.com.br/v1/{phone_number_id}/media \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form messaging_product=whatsapp \
--form file=@example-file \
--form type=image/jpegconst form = new FormData();
form.append('messaging_product', 'whatsapp');
form.append('file', '<string>');
form.append('type', 'image/jpeg');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://cloud.datafyapi.com.br/v1/{phone_number_id}/media', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://cloud.datafyapi.com.br/v1/{phone_number_id}/media"
files = { "file": ("example-file", open("example-file", "rb")) }
payload = {
"messaging_product": "whatsapp",
"type": "image/jpeg"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text){
"id": "1234567890123456"
}{
"error": {
"message": "(#131030) Recipient phone number not in allowed list",
"type": "OAuthException",
"code": 131030,
"fbtrace_id": "AbCdEfGhIjK"
}
}{
"statusCode": 401,
"message": "Token inválido ou não encontrado."
}{
"statusCode": 402,
"message": "Assinatura inativa. Ative sua assinatura no painel para voltar a usar a API."
}{
"statusCode": 429,
"message": "Rate limit excedido (60 req/min). Tente novamente em 12s."
}Envia um arquivo para a Meta e retorna um
Se o arquivo já está em uma URL pública, você pode enviar a mensagem direto com
id. Use esse id no envio de mensagens de mídia, no lugar de link:
{
"messaging_product": "whatsapp",
"to": "5511999999999",
"type": "image",
"image": { "id": "1234567890123456" }
}
link, sem fazer upload. Tipos e tamanhos aceitos estão na referência de mídia da Meta.Autorizações
Token gerado no painel da Datafy ao criar o canal. Formato: sk_live_xxx.
Parâmetros de caminho
ID do número na Meta. Descubra com GET /me.
Corpo
multipart/form-data
Resposta
Mídia enviada.
ID da mídia.