Enviar vídeo
curl --request POST \
--url https://cloud.datafyapi.com.br/ig/me/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recipient": {
"id": "1000000000000001"
},
"message": {
"attachment": {
"type": "video",
"payload": {
"url": "https://exemplo.com/arquivo.mp4"
}
}
}
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
recipient: {id: '1000000000000001'},
message: {attachment: {type: 'video', payload: {url: 'https://exemplo.com/arquivo.mp4'}}}
})
};
fetch('https://cloud.datafyapi.com.br/ig/me/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://cloud.datafyapi.com.br/ig/me/messages"
payload = {
"recipient": { "id": "1000000000000001" },
"message": { "attachment": {
"type": "video",
"payload": { "url": "https://exemplo.com/arquivo.mp4" }
} }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"recipient_id": "1000000000000001",
"message_id": "aWdfZAG1faXRlbTo......"
}{
"error": {
"message": "Não foi possível encontrar o usuário solicitado.",
"type": "IGApiException",
"code": 100,
"error_subcode": 2534014,
"fbtrace_id": "AbCdEfGhIjK"
}
}{
"statusCode": 401,
"message": "Token inválido ou não encontrado."
}{
"statusCode": 402,
"message": "Assinatura inativa (status: canceled). Ative sua assinatura no painel para voltar a usar a API."
}Mensagens
Enviar vídeo
Envie um vídeo por link público.
POST
/
ig
/
me
/
messages
Enviar vídeo
curl --request POST \
--url https://cloud.datafyapi.com.br/ig/me/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recipient": {
"id": "1000000000000001"
},
"message": {
"attachment": {
"type": "video",
"payload": {
"url": "https://exemplo.com/arquivo.mp4"
}
}
}
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
recipient: {id: '1000000000000001'},
message: {attachment: {type: 'video', payload: {url: 'https://exemplo.com/arquivo.mp4'}}}
})
};
fetch('https://cloud.datafyapi.com.br/ig/me/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://cloud.datafyapi.com.br/ig/me/messages"
payload = {
"recipient": { "id": "1000000000000001" },
"message": { "attachment": {
"type": "video",
"payload": { "url": "https://exemplo.com/arquivo.mp4" }
} }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"recipient_id": "1000000000000001",
"message_id": "aWdfZAG1faXRlbTo......"
}{
"error": {
"message": "Não foi possível encontrar o usuário solicitado.",
"type": "IGApiException",
"code": 100,
"error_subcode": 2534014,
"fbtrace_id": "AbCdEfGhIjK"
}
}{
"statusCode": 401,
"message": "Token inválido ou não encontrado."
}{
"statusCode": 402,
"message": "Assinatura inativa (status: canceled). Ative sua assinatura no painel para voltar a usar a API."
}Envia um vídeo para um contato com a janela de 24 horas aberta.
Quem baixa o arquivo é a Meta, a partir do endereço informado em
O formato é determinado pelo cabeçalho
Formato recusado volta com
Vídeos grandes passam por um processamento da Meta antes de aparecerem na conversa. A resposta
payload.url. Não existe upload prévio nem ID de mídia: o vídeo precisa estar hospedado em algum lugar acessível antes do envio.
Formatos aceitos
| Formato | Content-Type | Tamanho máximo |
|---|---|---|
| MP4 | video/mp4 | 25 MB |
| MOV | video/quicktime | 25 MB |
| WEBM | video/webm | 25 MB |
| AVI | video/x-msvideo | 25 MB |
| OGG | video/ogg | 25 MB |
Content-Type devolvido pelo servidor que hospeda o arquivo, não pela extensão informada na URL. Em caso de recusa de um formato presente na tabela, verifique o cabeçalho:
curl -sI https://exemplo.com/arquivo.mp4 | grep -i content-type
code 100 e error_subcode 2534080.
OGG é aceito em vídeo e recusado em áudio. As listas de formatos são independentes.
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.
200 chega antes disso, então a mensagem pode demorar alguns segundos para ficar visível.
O vídeo não aceita legenda. Para acompanhar texto, envie uma mensagem de texto separada.Autorizações
Token do canal do Instagram, gerado no painel da Datafy. Formato: sk_live_xxx.
Corpo
application/json
Resposta
Aceito pela Meta. Não confirma a entrega.