Draftn.io docs · api
Começar

Primeiros passos

Em menos de cinco minutos você faz sua primeira requisição autenticada e lê o conteúdo publicado de um blog. Tudo o que você precisa é da chave de API do blog e de um cliente HTTP.

Pré-requisitos

  • Um blog criado na DraftIn com pelo menos um post publicado.
  • A chave de API do blog (header X-API-Key). Veja Autenticação.
  • Um cliente HTTP: curl, o fetch do navegador ou Node 22+.

1. Guarde sua chave com segurança

A chave de API concede acesso de leitura ao conteúdo do blog. Mantenha-a fora do código-fonte — use uma variável de ambiente:

.env
# Nunca versione este arquivo. Adicione ".env" ao seu .gitignore.
DRAFTIN_API_KEY=pk_live_xxxxxxxxxxxxxxxxxxxxxxxx

2. Conheça a base URL

Todos os endpoints públicos vivem sob o prefixo /public a partir da base de produção https://api.draftin.io. Um caminho completo fica assim:

endpoint
https://api.draftin.io/public/posts

3. Faça a primeira chamada

Liste os cinco posts publicados mais recentes. A chave vai no header X-API-Key; nenhum outro cabeçalho é obrigatório para requisições GET.

curl https://api.draftin.io/public/posts?limit=5 \
  -H "X-API-Key: $DRAFTIN_API_KEY"

Uma resposta bem-sucedida (200 OK) é um array JSON de objetos Post:

200 OK
[
  {
    "id": "clxxx101",
    "title": "Meu Primeiro Post",
    "subtitle": "Subtítulo do post",
    "slug": "meu-primeiro-post",
    "status": "PUBLISHED",
    "publishedAt": "2026-06-01T12:00:00.000Z",
    "content": "Conteúdo do post em HTML ou Markdown",
    "blogId": "clxxx789",
    "authorId": "clxxx123",
    "categories": [],
    "tags": []
  }
]

4. Trate a autenticação ausente

Se a chave estiver errada ou faltando, a API responde 401 Unauthorized. Sempre verifique res.ok (ou o status) antes de consumir o corpo:

JavaScript
const res = await fetch("https://api.draftin.io/public/posts", {
  headers: { "X-API-Key": process.env.DRAFTIN_API_KEY },
});

switch (res.status) {
  case 200:
    return res.json();
  case 401:
    throw new Error("Chave de API inválida ou ausente.");
  default:
    throw new Error(`Erro inesperado: ${res.status}`);
}

Próximos passos