File size: 3,359 Bytes
42f149e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | # API Structure Documentation
## Structure
```
/src/app/api/v1/
βββ definitions/
β βββ route.ts GET /api/v1/definitions
β βββ [definitionId]/
β βββ rounds/
β βββ route.ts GET /api/v1/definitions/{id}/rounds
βββ rounds/
β βββ route.ts GET /api/v1/rounds
β βββ metadata/
β β βββ route.ts GET /api/v1/rounds/metadata
β βββ [roundId]/
β βββ route.ts GET /api/v1/rounds/{id}
β βββ leaderboard/
β β βββ route.ts GET /api/v1/rounds/{id}/leaderboard
β βββ models/
β β βββ route.ts GET /api/v1/rounds/{id}/models
β βββ series/
β βββ route.ts GET /api/v1/rounds/{id}/series
β βββ [seriesId]/
β βββ data/
β β βββ route.ts GET /api/v1/rounds/{id}/series/{id}/data
β βββ forecasts/
β βββ route.ts GET /api/v1/rounds/{id}/series/{id}/forecasts
βββ models/
βββ rankings/
β βββ route.ts GET /api/v1/models/rankings
βββ ranking-filters/
β βββ route.ts GET /api/v1/models/ranking-filters
βββ [modelId]/
βββ route.ts GET /api/v1/models/{id}
βββ rankings/
β βββ route.ts GET /api/v1/models/{id}/rankings
βββ series-by-definition/
β βββ route.ts GET /api/v1/models/{id}/series-by-definition
βββ definitions/
βββ [definitionId]/
βββ series/
βββ [seriesId]/
βββ forecasts/
βββ route.ts GET /api/v1/models/{id}/definitions/{id}/series/{id}/forecasts
```
## Service Layer
The service layer has been organized into three domain-specific files:
### definitionService.ts
Handles challenge definition-related API calls:
- `getDefinitionRounds()` - Get rounds for a specific definition
### roundService.ts
Handles round-related API calls:
- `getChallenges()` - List all rounds (previously called challenges)
- `getRoundsMetadata()` - Get filter metadata
- `getChallengeSeries()` - Get series for a round
- `getSeriesData()` - Get time series data
- `getSeriesForecasts()` - Get forecasts for a series
- `getRoundModels()` - Get models participating in a round
### modelService.ts
Handles model-related API calls:
- `getFilteredRankings()` - Get model rankings with filters
- `getRankingFilters()` - Get available ranking filters
- `getModelDetails()` - Get model details
- `getModelRankings()` - Get model ranking history
- `getModelSeriesByDefinition()` - Get series grouped by definition
- `getModelSeriesForecasts()` - Get model forecasts across rounds
## Authentication
All API routes forward the `X-API-Key` header to the backend API for authentication.
|