# engine_usage 대시보드 API 설계서

> 작성: task-686.1 Phase 5 (G16) | 2026-03-18
> 대시보드: http://100.76.130.39:8000/dashboard/

## 엔드포인트 설계

### GET /api/engine-usage
엔진 사용량 요약

**쿼리 파라미터:**
- `month` (optional): YYYY-MM 형식. 기본값: 현재 월
- `engine` (optional): claude|gemini|codex 필터

**응답:**
```json
{
  "month": "2026-03",
  "total_calls": 150,
  "total_tokens": 450000,
  "by_engine": {
    "claude": {"calls": 50, "tokens": 200000, "errors": 2},
    "gemini": {"calls": 80, "tokens": 200000, "errors": 1},
    "codex": {"calls": 20, "tokens": 50000, "errors": 5}
  },
  "daily": [
    {"date": "2026-03-18", "calls": 25, "tokens": 75000}
  ]
}
```

### GET /api/engine-usage/detail
개별 호출 상세

**쿼리 파라미터:**
- `month` (optional): YYYY-MM
- `task_id` (optional): 특정 작업 필터
- `limit` (optional): 기본값 100

**데이터 소스:** `memory/engine_usage_YYYY-MM.jsonl`

## 구현 메모
- 기존 대시보드(FastAPI) app에 라우터 추가
- JSONL 파일을 읽어 집계
- 캐싱: 현재 월은 5분 캐시, 지난 달은 1시간 캐시
- CORS: CORS_ORIGINS 환경변수 참조
