Documentação
Tudo o que o painel faz também está na API REST e no servidor MCP. Referência completa dos endpoints: API reference · openapi.json.
1. Crie uma chave
Crie sua conta, depois vá em API e MCP no painel e gere uma chave. Envie-a em todas as chamadas:
Authorization: Bearer bdg_live_...
2. Crie um emissor e um badge
curl -X POST https://badges.professorbossini.dev/v1/issuers \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"name":"Minha Escola","url":"https://minhaescola.com.br"}'
curl -X POST https://badges.professorbossini.dev/v1/achievements \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"issuerId":"iss_...","name":"Node.js Avançado","description":"...",
"criteriaNarrative":"Entregou o projeto final","workloadHours":40}'Imagens: envie para POST /v1/uploads (multipart, campo file) e use a URL devolvida em imageUrl.
3. Emita
curl -X POST https://badges.professorbossini.dev/v1/credentials \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-H "Idempotency-Key: pedido-123" \
-d '{"achievementId":"ach_...","recipient":{"name":"Maria Silva","email":"maria@exemplo.com"}}'A resposta traz os links prontos para usar no seu site:
"urls": {
"page": "https://badges.professorbossini.dev/c/<id>", // página pública de verificação
"linkedinAddToProfile": "https://www.linkedin.com/profile/add?...",
"certificate": "https://badges.professorbossini.dev/c/<id>/certificate.pdf",
"bakedBadge": "https://badges.professorbossini.dev/c/<id>/badge.png", // PNG com a credencial embutida
"json": "https://badges.professorbossini.dev/c/<id>/credential.json"
}Por padrão a pessoa recebe um e-mail. Envie "notify": false para não enviar. O header Idempotency-Key garante que repetir a chamada não emite duas vezes.
4. Verifique
curl -X POST https://badges.professorbossini.dev/verify -H "Content-Type: application/json" \
-d '{"credential": { ...JSON da credencial... }}'O resultado separa assinatura, validade e revogação, e funciona com credenciais Open Badges 3.0 de outros emissores também.
Servidor MCP
Conecte o Claude (ou outro agente compatível com MCP) para emitir e consultar badges em linguagem natural.
Claude.ai / Claude Desktop: adicione um conector personalizado com a URL abaixo. Você entra com a sua conta do Badges.
https://badges.professorbossini.dev/mcpClaude Code, com uma chave de API:
claude mcp add --transport http badges https://badges.professorbossini.dev/mcp \ --header "Authorization: Bearer bdg_live_..."
Ferramentas: create_issuer, create_achievement, issue_credential, issue_credentials_batch, list_credentials, revoke_credential, verify_credential e outras.
Limites e erros
- 600 requisições por minuto por chave; 30 por minuto por IP em
/verify. - Erros seguem
{"error": {"code", "message"}}.402indica limite do plano ou pagamento pendente;429, excesso de requisições.
Padrões usados
- Open Badges 3.0 (1EdTech) sobre W3C Verifiable Credentials 2.0.
- Assinatura Data Integrity
eddsa-rdfc-2022(Ed25519) e identidade do emissor emdid:web. - Revogação por W3C Bitstring Status List.