List of API endpoints¶
Some endpoints which may return a large number of results use Pagination.
These are marked with [P] below.
See Authentication for details on how to authenticate when using the API.
See Types of JSON object for the structure of objects returned by the API.
Account-related endpoints¶
GET /accounts/signups¶
Check if signups are open.
Returns a JSON object containing:
signups_open(boolean)
POST /acounts/new¶
Parameters (JSON body):
id(intorstringrepresenting int, a Discord ID)name(string)discriminator(string)avatar_url(optionalstring)team(optionalint, the ID of the team)permissions(optionalint, default0)
Returns an Account object, a 409 error if the id has already been registered, or a 403 error if signups are closed.
Requires the manage_account_details permission. Additionally, see Permissions for what permissions you are allowed to grant.
[P] GET /accounts/search¶
Parameters (URL query string):
q(optionalstring, to search for)team(optionalint, the ID of a team)
If team is passed, only returns accounts from that team.
Returns a paginated list of Account objects matching the query (see Pagination).
PATCH /account/{account}¶
Parameters (dynamic URL path):
account(int, the ID of the account to get)
Parameters (JSON body):
name(optionalstring)discriminator(optionalstring)avatar_url(optionalstring)team(optionalint, the ID of the team to move the user to)grant_permissions(optionalint, permissions to grant the user)revoke_permissions(optionalint, permissions to revoke from the user)discord_token(optionalstring, Discord token to fetch user data from)
Note that team can also be 0, which indicates that the user should be
removed from their team.
Returns a 422 error if the account was not found (not a 404 error).
If discord_token was passed but was invalid or didn’t have the indentify scope, a 422 error is returned. If the token was valid but was for the wrong account ID, a 403 error is returned.
Returns an Account object if successful.
Different parameters require different permissions:
Parameter |
Permission |
|---|---|
|
|
|
|
|
|
|
|
|
See Permissions |
|
See Permissions |
|
None |
*1 You can also remove a user from a team if you are a
member of that team and have the manage_own_team permission. You can
also add yourself to a team.
GET /account/{account}¶
Parameters (dynamic URL path):
account(int, the ID of the account to get)
Returns an Account object if successful.
Returns a 422 error if the account was not found (not a 404 error).
DELETE /account/{account}¶
Parameters (dynamic URL path):
account(int, the ID of the account to get)
Returns 204 (no content) if successful.
Returns a 422 error if the account was not found (not a 404 error).
Requires the manage_account_details permission, or being authenticated for this account.
Team-related endpoints¶
POST /teams/new¶
Parameters (JSON body):
name(string)
Returns a new Team object. Requires the manage_teams permission.
[P] GET /teams/search¶
Parameters (URL query string):
q(optionalstring)
Returns a paginated list of Team objects (see Pagination). The optional q parameter allows you to filter teams by searching in their name.
GET /team/{team}¶
Parameters (dynamic URL path):
team(int, ID of the team to get)
Returns a Team object, or a 422 error if not found (not a 404 error).
PATCH /team/{team}¶
Parameters (dynamic URL path):
team(int, ID of the team to edit)
Parameters (JSON body):
name(string, the new name of the team)
Returns a Team object if successful, or a 422 error if not found (not a 404 error).
Requires the manage_teams permission, or the manage_own_team permission and authentication with an account that is a member of the specified team.
DELETE /team/{team}¶
Parameters (dynamic URL path):
team(int, ID of the team to delete)
Returns 204 (no content) if successful, or a 422 error if not found (not a 404 error).
Award-related endpoints¶
POST /awards/new¶
Creates a new award. An award is given to a selection of users but also to their team. Requires the manage_awards permission.
Parameters (JSON body):
title(string)image_url(string)team(int, the ID of a team)accounts(listofstrings, the IDs of accounts)
team should (but is not required to) refer to a team that all the accounts are part of.
Returns an Award object.
PATCH /award/{award}¶
Updates an existing award. Requires the manage_awards permission.
Parameters (dynamic URL path):
award(int, the ID of the award to edit)
Parameters (JSON body):
title(optionalstring)image_url(optionalstring)team(optionalint, the ID of a team)
Returns an Award object, or a 422 error if not found (not a 404 error).
GET /award/{award}¶
Get the details of an award.
Parameters (dynamic URL path):
award(int, the ID of the award to get)
Returns:
award (an ``Awardobject)awardees(alistofAccountobjects)team(optionalTeamobject)
Instead returns a 422 error if not found (not a 404 error).
DELETE /award/{award}¶
Remove an award. Requires the manage_awards permission.
Parameters (dynamic URL path):
award(int, the ID of the award to delete)
Returns 204 (no content) if successful, or a 422 error if not found (not a 404 error).
PUT /account/{account}/award/{award}¶
Give an existing award to a new user. Requires the manage_awards permission.
Parameters (dynamic URL path):
account(string, the ID of the account to assign the award to)award(int, the ID of the award to assign)
Returns 201 with no content if successful, 208 if the user already had the award, or 422 if the user or award was not found.
DELETE /account/{account}/award/{award}¶
Remove an award from a user. Requires the manage_awards permission.
Parameters (dynamic URL path):
account(string, the ID of the account to remove the award from)award(int, the ID of the award to remove)
Returns 204 (no content) if successful, 404 if the user did not have the award, or 422 if the user or award was not found.
Callback-related endpoints¶
PUT /callback/{event}¶
Create a callback for a specified event type. Requires an app token.
Parameters (dynamic URL path):
event(string, see Callbacks for event types)
Parameters (JSON body):
url(string, the URL to recieve events)secret(string, a secret to use when sending events)
Returns a Callback object. If a callback already exists for this event type, this endpoint will override it. If the event type is invalid, returns a 422 error.
DELETE /callback/{event}¶
Delete the callback for a specified event type. Requires an app token.
Parameters (dynamic URL path):
event(string, the event type to delete the callback for)
Returns 204 (no content) if successful, a 422 error if the event type is invalid, or 404 error if there is no callback registered for the event type.
GET /callback/{event}¶
Get details on a registered callback. Requires an app token.
Parameters (dynamic URL path):
event(string, see Callbacks for event types)
Returns a Callback object if successful, a 422 error if the event type is invalid, or 404 error if there is no callback registered for the event type.
GET /callbacks¶
Get all registered callbacks for the authenticated app. Requires an app token.
Returns:
callbacks(an object where the keys are event types and the values are the registered callback URLs)
Authentication-related endpoints¶
POST /auth/discord¶
Creates a session from a Discord user token (obtainable with Discord OAuth2).
Parameters (JSON body):
token(string, the Discord token)
Returns a Session object. If the token was valid but the account was not found, creates the account, or returns a 403 error if signups are closed. Returns a 401 error if the token was invalid Note that the token must be authorised for the identify scope.
POST /auth/create_session¶
Parameters (JSON body):
account(int, the ID of the account to get)
Returns a Session object, or a 422 error if the account was not found (not a 404 error).
Requires the authenticate_users permission, which only apps can have.
POST /auth/reset_token¶
Reset the token used to authenticate. Returns an App object with a token present if an app token was used to authenticate, or a Session object if a user token was used to authenticate.
Returns a 401 error if no authentication was used.
GET /auth/me¶
Returns either an App object (with no token present) or an Account object, depending on what token was used to authenticate.
Returns a 401 error if no authentication was used.