CTFd — API
APIvv1 Read the vendor's spec ↗
- 155 endpoints
- 4 versions archived since Jul 20, 2026
- Last checked Nov 2, 2026
Get started
$ curl "$BASE_URL/teams/me" \
-H "Authorization: $API_KEY"
Set $BASE_URL and $API_KEY first, then paste.
- Base URL
-
Not named in the archived spec.
$BASE_URLbelow stands for the origin you deploy against. - Authenticate
- API key in the Authorization header Generate access token in the settings page of your user account.
What it covers
- Teams 18 Endpoint to retrieve Teams
- Challenges 17 Endpoint to retrieve Challenges
- Users 15 Endpoint to retrieve Users
- Configs 11 Endpoint to retrieve Configs
- Modules 10 Endpoint to retrieve Modules
- Statistics 9 Endpoint to retrieve Statistics
- Audiences 8 Endpoint to retrieve Audiences
- Flags 7 Endpoint to retrieve Flags
- Hints 5 Endpoint to retrieve Hints
- Notifications 5 Endpoint to retrieve Notifications
- Pages 5 Endpoint to retrieve Pages
- Solutions 5 Endpoint to retrieve and create Solutions
12 more areas
- Submissions 5 Endpoint to retrieve Submission
- Tags 5 Endpoint to retrieve Tags
- Topics 5 Endpoint to retrieve Topics
- Awards 4 Endpoint to retrieve Awards
- Brackets 4 Endpoint to retrieve Brackets
- Files 4 Endpoint to retrieve Files
- Tokens 4 Endpoint to retrieve Tokens
- Comments 3 Endpoint to retrieve Comments
- Scoreboard 2 Endpoint to retrieve scores
- Unlocks 2 Endpoint to retrieve Unlocks
- Exports 1 Endpoint to retrieve Exports
- Shares 1 Endpoint to create Share links
Open an endpoint for a runnable command, its inputs and what it returns.
Teams 18
-
DELETE
/teams/meEndpoint to disband your current team.Loading…
-
DELETE
/teams/{team_id}Endpoint to delete a specific Team objectLoading…
-
DELETE
/teams/{team_id}/membersLoading…
-
GET
/teamsEndpoint to get Team objects in bulkLoading…
-
GET
/teams/meEndpoint to get the current user's Team objectLoading…
-
GET
/teams/me/awardsLoading…
-
GET
/teams/me/failsLoading…
-
GET
/teams/me/solvesLoading…
-
GET
/teams/{team_id}Endpoint to get a specific Team objectLoading…
-
GET
/teams/{team_id}/awardsLoading…
-
GET
/teams/{team_id}/failsLoading…
-
GET
/teams/{team_id}/membersLoading…
-
GET
/teams/{team_id}/solvesLoading…
-
PATCH
/teams/meEndpoint to edit the current user's Team objectLoading…
-
PATCH
/teams/{team_id}Endpoint to edit a specific Team objectLoading…
-
POST
/teamsEndpoint to create a Team objectLoading…
-
POST
/teams/me/membersLoading…
-
POST
/teams/{team_id}/membersLoading…
Challenges 17
-
DELETE
/challenges/{challenge_id}Endpoint to delete a specific Challenge objectLoading…
-
GET
/challengesEndpoint to get Challenge objects in bulkLoading…
-
GET
/challenges/typesLoading…
-
GET
/challenges/{challenge_id}Endpoint to get a specific Challenge objectLoading…
-
GET
/challenges/{challenge_id}/filesLoading…
-
GET
/challenges/{challenge_id}/flagsLoading…
-
GET
/challenges/{challenge_id}/hintsLoading…
-
GET
/challenges/{challenge_id}/ratingsGet paginated ratings for a challengeLoading…
-
GET
/challenges/{challenge_id}/requirementsLoading…
-
GET
/challenges/{challenge_id}/solutionLoading…
-
GET
/challenges/{challenge_id}/solvesLoading…
-
GET
/challenges/{challenge_id}/tagsLoading…
-
GET
/challenges/{challenge_id}/topicsLoading…
-
PATCH
/challenges/{challenge_id}Endpoint to edit a specific Challenge objectLoading…
-
POST
/challengesEndpoint to create a Challenge objectLoading…
-
POST
/challenges/attemptLoading…
-
PUT
/challenges/{challenge_id}/ratingsCreate or update a rating for a challengeLoading…
Users 15
-
DELETE
/users/{user_id}Endpoint to delete a specific User objectLoading…
-
GET
/usersEndpoint to get User objects in bulkLoading…
-
GET
/users/meEndpoint to get the User object for the current userLoading…
-
GET
/users/me/awardsLoading…
-
GET
/users/me/failsLoading…
-
GET
/users/me/solvesLoading…
-
GET
/users/me/submissionsLoading…
-
GET
/users/{user_id}Endpoint to get a specific User objectLoading…
-
GET
/users/{user_id}/awardsLoading…
-
GET
/users/{user_id}/failsLoading…
-
GET
/users/{user_id}/solvesLoading…
-
PATCH
/users/meEndpoint to edit the User object for the current userLoading…
-
PATCH
/users/{user_id}Endpoint to edit a specific User objectLoading…
-
POST
/usersEndpoint to create a User objectLoading…
-
POST
/users/{user_id}/emailEndpoint to email a User objectLoading…
Configs 11
-
DELETE
/configs/fields/{field_id}Loading…
-
DELETE
/configs/{config_key}Endpoint to delete a Config objectLoading…
-
GET
/configsEndpoint to get Config objects in bulkLoading…
-
GET
/configs/fieldsLoading…
-
GET
/configs/fields/{field_id}Loading…
-
GET
/configs/{config_key}Endpoint to get a specific Config objectLoading…
-
PATCH
/configsEndpoint to get patch Config objects in bulkLoading…
-
PATCH
/configs/fields/{field_id}Loading…
-
PATCH
/configs/{config_key}Endpoint to edit a specific Config objectLoading…
-
POST
/configsEndpoint to get create a Config objectLoading…
-
POST
/configs/fieldsLoading…
Modules 10
-
DELETE
/modules/{module_id}Loading…
-
DELETE
/modules/{module_id}/audiences/{audience_id}Loading…
-
GET
/modulesLoading…
-
GET
/modules/{module_id}Loading…
-
GET
/modules/{module_id}/audiencesLoading…
-
GET
/modules/{module_id}/challengesLoading…
-
PATCH
/modules/{module_id}Loading…
-
POST
/modulesLoading…
-
POST
/modules/{module_id}/audiencesLoading…
-
POST
/modules/{module_id}/challengesLoading…
Statistics 9
-
GET
/statistics/challenges/solvesLoading…
-
GET
/statistics/challenges/solves/percentagesLoading…
-
GET
/statistics/challenges/{column}Loading…
-
GET
/statistics/progression/matrixLoading…
-
GET
/statistics/scores/distributionLoading…
-
GET
/statistics/submissions/{column}Loading…
-
GET
/statistics/teamsLoading…
-
GET
/statistics/usersLoading…
-
GET
/statistics/users/{column}Loading…
Audiences 8
-
DELETE
/audiences/{audience_id}Loading…
-
DELETE
/audiences/{audience_id}/members/{member_id}Loading…
-
GET
/audiencesLoading…
-
GET
/audiences/{audience_id}Loading…
-
GET
/audiences/{audience_id}/membersLoading…
-
PATCH
/audiences/{audience_id}Loading…
-
POST
/audiencesLoading…
-
POST
/audiences/{audience_id}/membersLoading…
Flags 7
-
DELETE
/flags/{flag_id}Endpoint to delete a specific Flag objectLoading…
-
GET
/flagsEndpoint to list Flag objects in bulkLoading…
-
GET
/flags/typesLoading…
-
GET
/flags/types/{type_name}Loading…
-
GET
/flags/{flag_id}Endpoint to get a specific Flag objectLoading…
-
PATCH
/flags/{flag_id}Endpoint to edit a specific Flag objectLoading…
-
POST
/flagsEndpoint to create a Flag objectLoading…
Hints 5
-
DELETE
/hints/{hint_id}Endpoint to delete a specific Tag objectLoading…
-
GET
/hintsEndpoint to list Hint objects in bulkLoading…
-
GET
/hints/{hint_id}Endpoint to get a specific Hint objectLoading…
-
PATCH
/hints/{hint_id}Endpoint to edit a specific Hint objectLoading…
-
POST
/hintsEndpoint to create a Hint objectLoading…
Notifications 5
-
DELETE
/notifications/{notification_id}Endpoint to delete a notification objectLoading…
-
GET
/notificationsEndpoint to get notification objects in bulkLoading…
-
GET
/notifications/{notification_id}Endpoint to get a specific notification objectLoading…
-
HEAD
/notificationsEndpoint to get statistics for notification objects in bulkLoading…
-
POST
/notificationsEndpoint to create a notification objectLoading…
Pages 5
-
DELETE
/pages/{page_id}Endpoint to delete a page objectLoading…
-
GET
/pagesEndpoint to get page objects in bulkLoading…
-
GET
/pages/{page_id}Endpoint to read a page objectLoading…
-
PATCH
/pages/{page_id}Endpoint to edit a page objectLoading…
-
POST
/pagesEndpoint to create a page objectLoading…
Solutions 5
-
DELETE
/solutions/{solution_id}Endpoint to delete a solution objectLoading…
-
GET
/solutionsEndpoint to get solution objects in bulkLoading…
-
GET
/solutions/{solution_id}Endpoint to get a solution objectLoading…
-
PATCH
/solutions/{solution_id}Endpoint to edit a solution objectLoading…
-
POST
/solutionsEndpoint to create a solution objectLoading…
Submissions 5
-
DELETE
/submissions/{submission_id}Endpoint to delete a submission objectLoading…
-
GET
/submissionsEndpoint to get submission objects in bulkLoading…
-
GET
/submissions/{submission_id}Endpoint to get a submission objectLoading…
-
PATCH
/submissions/{submission_id}Endpoint to edit a submission objectLoading…
-
POST
/submissionsEndpoint to create a submission object.Loading…
Tags 5
-
DELETE
/tags/{tag_id}Endpoint to delete a specific Tag objectLoading…
-
GET
/tagsEndpoint to list Tag objects in bulkLoading…
-
GET
/tags/{tag_id}Endpoint to get a specific Tag objectLoading…
-
PATCH
/tags/{tag_id}Endpoint to edit a specific Tag objectLoading…
-
POST
/tagsEndpoint to create a Tag objectLoading…
Topics 5
-
DELETE
/topicsEndpoint to delete a specific Topic object of a specific typeLoading…
-
DELETE
/topics/{topic_id}Endpoint to delete a specific Topic objectLoading…
-
GET
/topicsEndpoint to list Topic objects in bulkLoading…
-
GET
/topics/{topic_id}Endpoint to get a specific Topic objectLoading…
-
POST
/topicsEndpoint to create a Topic objectLoading…
Awards 4
-
DELETE
/awards/{award_id}Endpoint to delete an Award objectLoading…
-
GET
/awardsEndpoint to list Award objects in bulkLoading…
-
GET
/awards/{award_id}Endpoint to get a specific Award objectLoading…
-
POST
/awardsEndpoint to create an Award objectLoading…
Brackets 4
-
DELETE
/brackets/{bracket_id}Loading…
-
GET
/bracketsLoading…
-
PATCH
/brackets/{bracket_id}Loading…
-
POST
/bracketsLoading…
Files 4
-
DELETE
/files/{file_id}Endpoint to delete a file objectLoading…
-
GET
/filesEndpoint to get file objects in bulkLoading…
-
GET
/files/{file_id}Endpoint to get a specific file objectLoading…
-
POST
/filesEndpoint to get file objects in bulkLoading…
Tokens 4
-
DELETE
/tokens/{token_id}Endpoint to delete an existing token objectLoading…
-
GET
/tokensEndpoint to get token objects in bulkLoading…
-
GET
/tokens/{token_id}Endpoint to get an existing token objectLoading…
-
POST
/tokensEndpoint to create a token objectLoading…
Comments 3
-
DELETE
/comments/{comment_id}Endpoint to delete a specific Comment objectLoading…
-
GET
/commentsEndpoint to list Comment objects in bulkLoading…
-
POST
/commentsEndpoint to create a Comment objectLoading…
Scoreboard 2
-
GET
/scoreboardLoading…
-
GET
/scoreboard/top/{count}Loading…
Unlocks 2
-
GET
/unlocksEndpoint to get unlock objects in bulkLoading…
-
POST
/unlocksEndpoint to create an unlock object.Loading…
Exports 1
-
POST
/exports/rawLoading…
No endpoint matches. Clear the filter to see all 155.
Change log
-
- +DELETE /audiences/{audience_id}
- +DELETE /audiences/{audience_id}/members/{member_id}
- +DELETE /modules/{module_id}
- +DELETE /modules/{module_id}/audiences/{audience_id}
- +GET /audiences
- +GET /audiences/{audience_id}
- +GET /audiences/{audience_id}/members
- +GET /modules
- +GET /modules/{module_id}
- +GET /modules/{module_id}/audiences
- +GET /modules/{module_id}/challenges
- +PATCH /audiences/{audience_id}
- +PATCH /modules/{module_id}
- +POST /audiences
- +POST /audiences/{audience_id}/members
- +POST /modules
- +POST /modules/{module_id}/audiences
- +POST /modules/{module_id}/challenges