✈️
Don WebsendDOCUMENTAÇÃO DA API
← Voltar ao dashboard

API do Don Websend

API REST para integrações — feita para o Don Poster criar pastas na galeria, subir imagens/reels das páginas e agendar as postagens automaticamente.

Base URL

https://donwebsend.marketfb.com

Autenticação

Todas as chamadas usam o cabeçalho X-API-Key. A chave fica no dashboard em Configurações → API & Tokens.

X-API-Key: SUA_API_KEY
⚠️ A chave dá controle total do sistema. Não coloque em código público e regenere se vazar.

Fluxo recomendado para o Don Poster

1️⃣ Cria (ou garante) a pasta da página → 2️⃣ sobe as mídias para a pasta → 3️⃣ (opcional) agenda direto. Se preferir só abastecer a galeria, as Campanhas do dashboard cuidam do agendamento usando a pasta.

POST/api/pastas

Cria uma pasta na galeria. Idempotente por nome: se a pasta já existir, devolve a existente — pode chamar sempre antes de subir.

curl -X POST "{BASE}/api/pastas" \
  -H "X-API-Key: {KEY}" -H "Content-Type: application/json" \
  -d '{"nome": "KELLY MOREIRA IMAGENS"}'

// → { "id": "9b1c…", "nome": "KELLY MOREIRA IMAGENS", "criadoEm": "…" }

GET/api/pastas

Lista as pastas com a contagem de itens.

POST/api/import

Sobe uma mídia (imagem ou reel) para a galeria — e, opcionalmente, já agenda o post.

CampoTipoDescrição
nomeArquivostring · obrigatórioNome com extensão: .jpg, .jpeg, .png, .webp (imagem) ou .mp4, .mov (reel)
conteudoBase64string · obrigatórioConteúdo do arquivo em base64 (sem o prefixo data:)
pastastringNome da pasta da galeria (cria se não existir)
pastaIdstringAlternativa: id de uma pasta existente
legendastringLegenda padrão da mídia
tipostringimagem ou reel (padrão: detecta pela extensão)
perfilId + paginaId + agendadoParaopcionaisSe os três vierem, o post já sai agendado (ISO 8601, ex.: 2026-07-10T09:00:00)
agendamentoNativobooleanAgenda direto no Facebook (só imagens)
botaoMensagembooleanAdiciona o botão Enviar mensagem (Messenger) no post — só imagens

Exemplo em Node.js (upload para a pasta da página):

const fs = require('fs');

const resposta = await fetch('{BASE}/api/import', {
  method: 'POST',
  headers: { 'X-API-Key': '{KEY}', 'Content-Type': 'application/json' },
  body: JSON.stringify({
    nomeArquivo: 'kelly-01.jpg',
    conteudoBase64: fs.readFileSync('kelly-01.jpg').toString('base64'),
    pasta: 'KELLY MOREIRA IMAGENS',
    legenda: 'Bom dia! ☀️'
  })
});
const { midia, post } = await resposta.json();

GET/api/accounts

Lista os perfis conectados e suas páginas — use para descobrir perfilId e paginaId.

[
  {
    "id": "10000000000001",          // ← perfilId
    "nome": "Kelly Moreira",
    "paginas": [
      { "id": "11234352375253", "nome": "Kelly Moreira", "conectada": true }   // ← paginaId
    ]
  }
]
✅ Só páginas com "conectada": true aceitam agendamento (conecte na aba Conexões).

POST/api/posts

Agenda um post com uma mídia que já está na galeria.

CampoDescrição
perfilId / paginaIdDestino (de /api/accounts)
midiaIdId da mídia (retornado no /api/import ou em GET /api/media)
legendaTexto do post (vazio = legenda da mídia)
agendadoParaData/hora ISO 8601
agendamentoNativotrue = agenda no próprio Facebook (só imagens)
botaoMensagemtrue = post com o botão Enviar mensagem (só imagens)

Outros endpoints

EndpointDescrição
GET/api/media?pasta=<id>Lista mídias (filtro por pasta; pasta=raiz = sem pasta)
GET/api/posts?status=agendadoLista posts (filtros: status, inicio, fim)
POST/api/posts/:id/publicarPublica um post imediatamente
DEL/api/posts/:idCancela um post agendado
PUT/api/pastas/:idRenomeia pasta · DEL exclui (?apagarMidias=1 apaga o conteúdo)
GET/api/statusContadores gerais (páginas, agendados, publicados, erros)

Modo local: pasta imports/

Rodando na mesma máquina, o Don Poster também pode soltar arquivos em imports/ com um manifesto JSON (varredura a cada 30 s):

// imports/lote-kelly.json
[
  { "arquivo": "kelly-01.jpg", "pasta": "KELLY MOREIRA IMAGENS", "legenda": "Bom dia! ☀️" },
  { "arquivo": "kelly-reel-01.mp4", "pasta": "KELLY MOREIRA REELS", "tipo": "reel",
    "perfilId": "10000000000001", "paginaId": "11234352375253",
    "agendadoPara": "2026-07-10T19:00:00" }
]

Erros

Respostas de erro vêm como { "erro": "mensagem" } com status 400 (dados inválidos) ou 401 (sem autenticação — confira o X-API-Key).