API REST pública e gratuita com dados de 200+ modelos de IA. Sem autenticação, sem rate limit abusivo, atualizada diariamente.
https://swen.ia.brTodos os endpoints aceitam GET. Respostas em JSON com Content-Type: application/json. CORS aberto para qualquer origem.
/api/benchmarkRetorna todos os modelos ativos com dados de benchmark, preços e capacidades.
{
"meta": {
"source": "SWEN.AI",
"url": "https://swen.ia.br/benchmark",
"methodology": "https://swen.ia.br/benchmark/metodologia",
"total_models": 212,
"total_benchmarks": 1847,
"updated_at": "2026-05-07T14:00:00.000Z",
"license": "Data aggregated from LMArena, Artificial Analysis, OpenRouter."
},
"data": [
{
"slug": "gpt-4o",
"name": "GPT-4o",
"company": "OpenAI",
"type": "chat",
"pricing": {
"input_per_1m_tokens_usd": 2.5,
"output_per_1m_tokens_usd": 10.0
},
"context_window": 128000,
"capabilities": {
"open_source": false,
"multimodal": true,
"reasoning": false,
"tool_calling": true,
"vision": true,
"audio": true
},
"performance": {
"tokens_per_second": 98,
"ttft_ms": 420
},
"release_date": "2024-05-13",
"benchmarks": [
{
"benchmark": "Chatbot Arena ELO",
"category": "overall",
"score": 1287,
"max_score": null
}
],
"url": "https://swen.ia.br/benchmark/gpt-4o"
}
]
}/api/benchmark/rankingsRetorna todos os rankings editoriais publicados (Top 5 por tarefa, melhores custo-benefício, etc.).
{
"meta": {
"source": "SWEN.AI",
"total_rankings": 12,
"updated_at": "2026-05-07T14:00:00.000Z",
"license": "CC BY 4.0 — Attribution required."
},
"data": [
{
"slug": "melhores-llms-2026",
"title": "Melhores LLMs de 2026",
"subtitle": "O ranking definitivo dos modelos mais capazes",
"category": "geral",
"models": [...],
"url": "https://swen.ia.br/benchmark/ranking/melhores-llms-2026"
}
]
}/api/benchmark/ptbrBenchmark exclusivo de proficiência em português brasileiro. Ranking de modelos por score médio em PT/BR, por categoria.
{
"meta": {
"source": "SWEN.AI",
"description": "Benchmark exclusivo de proficiência em português brasileiro (PT/BR) para LLMs.",
"total_models": 10,
"total_questions": 20,
"categories": { "gramática": 4, "compreensão": 6, "geração": 5, "raciocínio": 5 },
"updated_at": "2026-05-07T14:00:00.000Z"
},
"data": [
{
"rank": 1,
"slug": "anthropic-claude-opus-4-7",
"name": "Claude Opus 4.7",
"company": "Anthropic",
"avg_score": 91.4,
"total_tests": 20,
"url": "https://swen.ia.br/benchmark/anthropic-claude-opus-4-7"
}
]
}| Campo | Tipo | Descrição |
|---|---|---|
| slug | string | Identificador URL do modelo (ex: gpt-4o) |
| name | string | Nome comercial do modelo |
| company | string | Empresa desenvolvedora |
| type | string | "chat", "embedding", "image", etc. |
| pricing.input_per_1m_tokens_usd | number | null | Preço por 1M tokens de input em USD |
| pricing.output_per_1m_tokens_usd | number | null | Preço por 1M tokens de output em USD |
| context_window | number | null | Janela de contexto em tokens |
| capabilities.open_source | boolean | Se os pesos são públicos |
| capabilities.multimodal | boolean | Suporta múltiplas modalidades |
| capabilities.reasoning | boolean | Modelo de raciocínio (chain-of-thought estendido) |
| capabilities.tool_calling | boolean | Suporta function/tool calling |
| capabilities.vision | boolean | Suporta análise de imagens |
| performance.tokens_per_second | number | null | Velocidade de inferência medida |
| performance.ttft_ms | number | null | Time to First Token em milissegundos |
| release_date | string | null | Data de lançamento (ISO 8601) |
| benchmarks | array | Lista de resultados de benchmarks do modelo |
| url | string | URL da página de benchmark no SWEN.AI |
import requests
response = requests.get("https://swen.ia.br/api/benchmark")
data = response.json()
models = data["data"]
print(f"Total de modelos: {data['meta']['total_models']}")
# Filtrar modelos open-source
open_source = [m for m in models if m["capabilities"]["open_source"]]
print(f"\nModelos open-source: {len(open_source)}")
# Top 5 por ELO
def get_elo(model):
for b in model.get("benchmarks", []):
if b["benchmark"] == "Chatbot Arena ELO":
return b["score"]
return 0
top5 = sorted(models, key=get_elo, reverse=True)[:5]
for m in top5:
print(f" {m['name']} (ELO: {get_elo(m)})")const response = await fetch("https://swen.ia.br/api/benchmark");
const { meta, data: models } = await response.json();
console.log(`Total de modelos: ${meta.total_models}`);
// Modelos com preço abaixo de $1/1M tokens
const baratos = models.filter(
m => m.pricing.input_per_1m_tokens_usd !== null
&& m.pricing.input_per_1m_tokens_usd < 1
);
console.log(`Modelos abaixo de $1/1M: ${baratos.length}`);
// Ordenar por velocidade
const rapidos = [...models]
.filter(m => m.performance.tokens_per_second)
.sort((a, b) =>
b.performance.tokens_per_second - a.performance.tokens_per_second
)
.slice(0, 5);
console.log("Top 5 mais rápidos:");
rapidos.forEach(m =>
console.log(` ${m.name}: ${m.performance.tokens_per_second} tok/s`)
);# Todos os modelos
curl https://swen.ia.br/api/benchmark
# Com jq — listar nomes e preços
curl -s https://swen.ia.br/api/benchmark | \
jq '.data[] | {name, company, input: .pricing.input_per_1m_tokens_usd}'
# Apenas open-source
curl -s https://swen.ia.br/api/benchmark | \
jq '[.data[] | select(.capabilities.open_source == true) | {name, company}]'Cache: A resposta é cacheada por 1 hora nos servidores da Vercel. Não há necessidade de fazer polling mais frequente que isso.
Rate limit: Não há rate limit explícito para uso razoável. Se sua aplicação fizer mais de 100 requisições/hora, considere cachear localmente.
Licença: Dados com atribuição obrigatória ao SWEN.AI e às fontes primárias (LMArena, Artificial Analysis, OpenRouter). Uso comercial permitido com atribuição.
Atribuição: Ao usar os dados, inclua: "Dados via SWEN.AI (swen.ia.br/benchmark)"
SLA: API fornecida sem garantia de uptime. Para uso crítico em produção, recomendamos cache local dos dados.
Os dados de benchmark são coletados de fontes primárias: LMArena (ELO Chatbot Arena), Artificial Analysis (Intelligence Index, velocidade, latência), OpenRouter (preços em tempo real) e medições próprias. Os dados são atualizados diariamente. Veja a metodologia completa para detalhes sobre coleta, normalização e critérios de inclusão.
Explore os dados: