AimRank Challenges API
The Challenges API from AimRank — 4 operation(s) for challenges.
The Challenges API from AimRank — 4 operation(s) for challenges.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/aimrank-io:aimrank-io-challenges-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: AimRank Challenges API
description: Ranking-as-a-Service API — Turn binary comparisons into calibrated rankings with Glicko-2, Bradley-Terry, TrueSkill, and cross-domain transfer learning. Includes webhooks, API keys, RLHF exports, and embeddable widgets.
version: 4.12.0
tags:
- name: Challenges
paths:
/api/v1/challenges/today:
get:
tags:
- Challenges
summary: Get Daily Pair
description: 'Today''s "Daily Pair" — the trending matchup chosen by the
`generate_daily_pair` cron at 00:00 UTC. Returns 404 if the cron
hasn''t run yet today (worker down, brand-new install, dev env
where the worker isn''t running).
Public endpoint — feeds the homepage banner / /today route, no auth
required so anonymous visitors see the pair too. Voting still goes
through the normal POST /votes path with whatever auth state the
client has.'
operationId: get_daily_pair_api_v1_challenges_today_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
/api/v1/challenges:
get:
tags:
- Challenges
summary: List Challenges
description: List challenges, optionally filtered by status or ranking.
operationId: list_challenges_api_v1_challenges_get
parameters:
- name: status
in: query
required: false
schema:
anyOf:
- type: string
pattern: ^(upcoming|active|completed|expired)$
- type: 'null'
title: Status
- name: ranking_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Ranking Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
post:
tags:
- Challenges
summary: Create Challenge
description: Create a new challenge for a ranking.
operationId: create_challenge_api_v1_challenges_post
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChallengeCreate'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/challenges/{challenge_id}:
get:
tags:
- Challenges
summary: Get Challenge
description: Get challenge details with progress.
operationId: get_challenge_api_v1_challenges__challenge_id__get
parameters:
- name: challenge_id
in: path
required: true
schema:
type: string
title: Challenge Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/challenges/{challenge_id}/leaderboard:
get:
tags:
- Challenges
summary: Get Challenge Leaderboard
description: Get top voters in a challenge.
operationId: get_challenge_leaderboard_api_v1_challenges__challenge_id__leaderboard_get
parameters:
- name: challenge_id
in: path
required: true
schema:
type: string
title: Challenge Id
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 20
title: Limit
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ChallengeCreate:
properties:
ranking_id:
type: string
title: Ranking Id
title:
type: string
maxLength: 255
minLength: 1
title: Title
description:
anyOf:
- type: string
maxLength: 2000
- type: 'null'
title: Description
challenge_type:
type: string
pattern: ^(daily|weekly|custom)$
title: Challenge Type
default: custom
starts_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Starts At
ends_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Ends At
target_votes:
type: integer
maximum: 10000.0
minimum: 10.0
title: Target Votes
default: 100
type: object
required:
- ranking_id
- title
title: ChallengeCreate
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
securitySchemes:
APIKeyHeader:
type: apiKey
in: header
name: X-API-Key