API 레퍼런스
별도 표시 없으면 모든 엔드포인트는 JSON in/out. bearer 토큰은 Authorization: Bearer …. 임베드 엔드포인트는 브라우저 편의를 위해 ?token= 쿼리스트링도 허용.
공개 read
GET /api/usage/totals
{
"totals": {
"input": 18234,
"cacheCreation": 4521,
"cacheRead": 92341,
"output": 7821,
"sum": 122917,
"messages": 142,
"costUsd": 3.71
},
"timestamp": 1729900000
}GET /api/usage/timeseries?from=&to=&step=
step은 밀리초. 반환 { from, to, step, buckets: [{ ts, messages, tokensRaw, tokensWeighted, costUsd }] }.
GET /api/usage/leaderboard?by=user|machine|model_family&limit=20
선택한 차원으로 그룹화한 Top-N.
GET /api/usage/users/:name
유저 상세 — 모델 패밀리/머신별 breakdown.
GET /api/usage/recent?limit=50
토큰 카운트/모델/머신/비용 포함된 최근 어시스턴트 메시지.
GET /api/usage/breakdown.csv
/api/usage/breakdown과 같은 데이터를 CSV로 (스프레드시트 import용).
SSE /api/usage/stream
Server-Sent Events 스트림. updated 알림마다 이벤트 1개. 페이로드는 /api/usage/totals와 동일.
Embed (오리진 제한)
GET /embed/totals?token=we_…
/api/usage/totals와 같은 페이로드. embed-origins 테이블에 있는 오리진에서만 호출 가능.
SSE /embed/stream?token=we_…
/api/usage/stream과 같은 페이로드. 같은 오리진 제한.
Ingest (스코프: ingest)
POST /api/ingest/messages
{
"machine": "alice-mbp",
"messages": [
{
"message_id": "msg_…",
"model": "claude-sonnet-4-6",
"input_tokens": 421,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 14093,
"output_tokens": 612,
"ts": 1729900000
}
]
}message_id로 dedupe. 멱등 — 같은 페이로드 재전송은 no-op.
Setup wizard (status 외 admin 스코프)
GET /api/setup/status
Public. 반환 { complete, scenario, infra, completedAt, headless, db: { kind } }.
POST /api/setup/complete
admin 스코프. Body: { scenario, infra }.
POST /api/setup/reset
admin 스코프. setup.* 키 초기화.
Admin (스코프: admin)
토큰
GET /api/admin/tokens— 목록 (해시만, 평문 없음)POST /api/admin/tokens— 발급{ user, scope, label?, expiresAt? }, 일회성 평문{ token, ...row }반환DELETE /api/admin/tokens/:id— 폐기
임베드 오리진
GET /api/admin/embed-originsPOST /api/admin/embed-origins{ origin, label? }DELETE /api/admin/embed-origins/:id
감사 로그
GET /api/admin/audit?since=&limit= — 토큰 발급/폐기, 임베드 변경, setup 액션의 시간순 로그.
Prometheus
GET /metrics
OpenMetrics 포맷. 라벨: user, machine, model_family.
wigtn_tokens_total{user="alice",machine="mbp",model_family="opus",kind="input"} 18234
wigtn_messages_total{user="alice",machine="mbp",model_family="opus"} 142
wigtn_cost_usd_total{user="alice",machine="mbp",model_family="opus"} 3.71상태 코드
| 코드 | 의미 |
|---|---|
200 | OK |
204 | OK, 본문 없음 (폐기, 삭제) |
400 | 검증 에러 |
401 | 토큰 없음 |
403 | 토큰 스코프 부족 또는 오리진 화이트리스트 미일치 |
404 | 리소스 없음 |
409 | 충돌 (예: 중복 임베드 오리진) |
429 | rate limit (기본 100 req/min/token) |
500 | 내부 — 서버 로그 확인 |