공개 모델 카탈로그가 쓰는 무인증 API 두 개입니다. /v1 접두사가 없고 API 키도
필요 없으며, IP 당 60 req/min 레이트리밋이 적용됩니다. 응답에는
Cache-Control: public, max-age=60, s-maxage=300, stale-while-revalidate=300 이 붙습니다.
레이트리밋 60 req/min 은 IP 당이면서 경로 묶음이 함께 쓰는 예산입니다.
/models/estimate, /models/stats, /models/benchmarks,
/models/benchmarks/overview, /models/rankings, /models/apps, /models/apps/top,
/models/changes, /models/feed.xml 가 한 버킷을 공유하므로, 한 화면에서 여러 개를
연달아 부르면 그만큼 예산이 빨리 줄어듭니다. /models/catalog 만 별도 버킷이라
상세 조회가 예산을 다 써도 카탈로그 조회는 계속됩니다.
두 엔드포인트 모두 승인·활성 모델만 조회할 수 있고, 그 밖의 slug 는 404 model_not_found 입니다.
모델 slug 는 슬래시를 포함하므로 경로가 아니라 쿼리 파라미터로 보냅니다.
uptime 을 읽을 때의 한계
정직하게 읽으려면 아래 세 가지를 함께 알아야 합니다.
- 페일오버가 값을 위로 편향시킵니다. 한 요청이 여러 엔드포인트를 시도해 결국 성공하면 통계는 최종 성공한 엔드포인트에만 기록됩니다. 실패했다가 다른 경로로 구제된 시도는 어디에도 실패로 남지 않으므로, 자주 구제받는 엔드포인트의 uptime 은 실제보다 높게 보입니다.
- 일부 사용자 귀책 오류가 섞일 수 있습니다. 오류 집계는 프로바이더 귀책만 세는 것이 목표지만 아직 모든 호출 경로에서 귀책이 분류되지는 않습니다.
- 표본이 적을수록 흔들립니다.
sample_count를 반드시 함께 보세요.
GET /models/stats
모델의 일별 사용량·성능 시계열을 반환합니다.
| 파라미터 | 필수 | 설명 |
|---|---|---|
model | Yes | 모델 slug |
days | No | 조회 일수. 기본 30, 7~90 으로 클램프됩니다 |
days 는 범위 밖 값이어도 400 이 아니라 가장 가까운 경계로 잘리고, 숫자가 아니거나
생략하면 기본값이 됩니다 — 기간 토글 하나가 페이지 전체를 깨뜨리지 않게 하기 위해서입니다.
curl "https://api.everyais.com/models/stats?model=everyais/claude-opus-5&days=7"
{
"model": "everyais/claude-opus-5",
"days": 7,
"daily": [
{
"date": "2026-08-11",
"requests": 2431,
"input_tokens": 8213044,
"output_tokens": 1043221,
"uptime": 99.75,
"avg_latency_ms": 4180,
"avg_ttft_ms": 664
}
]
}date는 UTC 기준YYYY-MM-DD입니다. 로컬 타임존으로 자르면 KST 는 하루가 통째로 밀립니다.daily는 오래된 날짜부터 정렬되며, 진행 중인 오늘을 포함해 최대days개입니다. 오늘 막대는 아직 채워지는 중이므로 항상 부분일입니다.- 데이터가 없는 날짜는 행 자체가 생략됩니다. 0 으로 채우면 "요청이 0건이었던 날" 과 "집계가 없던 날" 을 구별할 수 없고 차트가 실제 장애가 아닌 골짜기를 그립니다. 빈 구간을 어떻게 그릴지는 클라이언트 몫입니다.
uptime의 표본 판정은 그날 기준입니다 — 그날 요청이 100건 미만이면 null 입니다. 30일 창 전체로는 표본이 차더라도 하루치는 얇을 수 있어, 엔드포인트 표의uptime_30d는 숫자인데 같은 모델의 일별uptime이 null 인 날이 정상적으로 존재합니다.