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, ofetchdo 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:
# 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:
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" const BASE = "https://api.draftin.io";
const res = await fetch(`${BASE}/public/posts?limit=5`, {
headers: { "X-API-Key": process.env.DRAFTIN_API_KEY },
});
if (!res.ok) throw new Error(`Falha: ${res.status}`);
const posts = await res.json();
console.log(`${posts.length} posts carregados`); const BASE = "https://api.draftin.io";
interface Post {
id: string;
title: string;
slug: string;
status: "PUBLISHED";
publishedAt: string | null;
content: string;
}
const res = await fetch(`${BASE}/public/posts?limit=5`, {
headers: { "X-API-Key": process.env.DRAFTIN_API_KEY as string },
});
const posts = (await res.json()) as Post[];
posts.forEach((p) => console.log(p.title, "→", p.slug)); // Node 22+ — fetch é global, nenhuma dependência necessária.
// Execute com: DRAFTIN_API_KEY=suachave node listar-posts.js
const BASE = "https://api.draftin.io";
async function main() {
const res = await fetch(`${BASE}/public/posts?limit=5`, {
headers: { "X-API-Key": process.env.DRAFTIN_API_KEY },
});
if (res.status === 401) {
console.error("Chave de API inválida ou ausente.");
process.exit(1);
}
const posts = await res.json();
console.table(posts.map((p) => ({ title: p.title, slug: p.slug })));
}
main().catch(console.error);
Uma resposta bem-sucedida (200 OK) é um array JSON de objetos Post:
[
{
"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:
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}`);
}