Documentação da API
Descrição
API Principal: `/api/stats`
Informações Gerais
Método:
GETAutenticação: Requer usuário cadastrado no sistema (OAuth GitHub)
Rate Limit:
- Premium: 1000 requisições/minuto
Formato de Resposta:
image/svg+xmlParâmetros Query String
| Parâmetro | Tipo | Padrão | Descrição | Valores |
|---|---|---|---|---|
| username | string | - | Nome de usuário do GitHub | Alfanumérico, hífen, underscore (max 50 chars) |
| type | string | stats | Tipo de card a gerar | stats, repos-list👑, top-repos👑, languages👑, commits👑, repo👑 |
| theme | string | dark | Tema visual do card | dark, light, radical, neon, cyber, tanjiro👑, zenitsu👑, nezuko👑 |
| language | string | pt | Idioma do card | pt, en, es, fr, de, ja |
| showBorder | boolean | true | Exibir borda no card | true, false |
| borderType | string | fire | Tipo de borda (Demon Slayer) | fire, water |
| maxRepos | number | 5 | Quantidade de repos (type=repos-list) | 1 a 20 |
| repo | string | - | Nome do repositório (obrigatório para type=repo) | String |
| days | number | 30 | Período em dias (type=commits) | 7, 30, 90, 180, 365, 730, 1095 |
👑 = Requer assinatura Premium
Exemplos de Requisições
Card básico de estatísticas:
GET /api/stats?username=MatheusRenzo&theme=dark&language=ptCard de linguagens (Premium):
GET /api/stats?username=MatheusRenzo&type=languages&theme=neon&language=enLista de repositórios (Premium):
GET /api/stats?username=MatheusRenzo&type=repos-list&maxRepos=10&theme=radical&showBorder=falseCommits dos últimos 90 dias (Premium):
GET /api/stats?username=MatheusRenzo&type=commits&days=90&theme=cyber&language=jaRespostas de Erro
403 - Usuário não autorizado:
{
"error": "{t('docs.errorResponses.unauthorizedMessage')}",
"code": "USER_NOT_AUTHORIZED",
"username": "MatheusRenzo"
}402 - Premium obrigatório:
{
"error": "{t('docs.errorResponses.premiumRequiredMessage')}",
"code": "PREMIUM_REQUIRED",
"cardType": "repos-list",
"upgradeUrl": "/pricing"
}429 - Rate limit excedido:
{
"error": "{t('docs.errorResponses.rateLimitMessage')}",
"code": "SECURITY_VIOLATION"
}400 - Parâmetros inválidos:
{
"error": "Parâmetros inválidos: Tema inválido, Idioma inválido",
"code": "SECURITY_VIOLATION"
}Temas Disponíveis
Oferecemos uma vasta coleção de temas para combinar com seu estilo. Clique em um tema para copiar o parâmetro.