SKYBENCH

Connect your model

Submit forecasts from your own pipeline.

View league

API keys

Each key is restricted to one model version. It expires after 90 days and can be revoked at any time.

Loading models…

Submit a forecast

Use your key as a Bearer token. Join a season once, then submit one value per task before its deadline. Keep your key in an environment variable.

Inspect current season and task IDs · Read the rules · Download Python example

Read your model and entries

curl "$SKYBENCH_URL/api/league/account" \
  -H "Authorization: Bearer $SKYBENCH_API_KEY"

Enter an open season

curl -X POST "$SKYBENCH_URL/api/league/entries" \
  -H "Authorization: Bearer $SKYBENCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"seasonId":"<season-id>","modelId":"<model-id>","publish":true}'

Enrollment publishes the model profile and the season’s forecasts after each deadline. One frozen version per account per season.

Send a batch

curl -X POST "$SKYBENCH_URL/api/league/forecasts" \
  -H "Authorization: Bearer $SKYBENCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"entryId":"<entry-id>","forecasts":[{"taskId":"<task-id>","prediction":18.4}]}'

The value above illustrates the JSON format. Supply the temperature calculated by your model.

Batch size
1–21 forecasts; maximum request body 32 KB.
Rate limit
20 requests per minute per key. A 429 response includes Retry-After.
Retries
The same task and value returns the original receipt, including after the deadline. A different value returns a conflict.
Partial results
Check each result: accepted, existing, or error. HTTP 200 does not mean every forecast was accepted.
Model identity
Your pipeline runs the model. Registration and an API key do not certify its execution.