HTTP API
Public endpoints you can call without signing in. Each one returns JSON.
A failure returns a non-2xx status with { error: { code, message } }.
Addons
Read the addon store: listings, versions and maintainers.
Get the catalog
GET/api/v1/catalog
Every listed addon with its newest version. Send revision in If-None-Match to get 304 while nothing changed.
Response
- ≥ 1 characters
Query parameters
Only addons of this type.
Search text, matched in the name or description.
Defaults to name. Ties sort by id.
Defaults to asc.
Comma-separated tag ids, combined by tagMatch.
- ≤ 512 characters
- pattern ^[a-z\d]+(?:-[a-z\d]+)*(?:,[a-z\d]+(?:-[a-z\d]+)*)*$
Defaults to any.
Comma-separated Discord ids of credited authors.
- ≤ 512 characters
- pattern ^[1-9]\d{0,19}(?:,[1-9]\d{0,19})*$
Defaults to any. none excludes these authors.
Days since the newest version was approved.
- pattern ^[1-9]\d{0,3}$
Defaults to any, within updated days. none means older.
The previous page's nextCursor. Keep the same filters.
- ≤ 512 characters
Response
List an addon's versions
GET/api/v1/addons/{id}/versions
A listed addon's live versions, newest first.
Path parameters
The addon id, such as unbound.example.
Response
List an addon's maintainers
GET/api/v1/addons/{id}/maintainers
An addon's maintainers with their roles.
Path parameters
The addon id, such as unbound.example.
Response
Updates
Check installed addons and the native loader for updates.
Check addons for updates
POST/api/v1/updates
The installed addons that have a newer, withdrawn or rebuilt version. Rate limited per IP.
Request body
- ≤ 64 characters
- pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
- ≤ 500 items
Response
Check for loader updates
GET/api/v1/loader/updates
The newest loader release, or null when current, and the loader version the newest bundle on channel needs when the installed loader is older. Rate limited per IP.
Query parameters
The platform the loader runs on.
The installed loader version.
- ≤ 64 characters
- pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
The bundle channel the client runs.
Response
- ≤ 64 characters
- pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
List patched Android Discord builds
GET/api/v1/loader/android-builds
A channel's patched Discord builds with each gzipped split's URL, newest Discord first. Rate limited per IP.
Query parameters
The Google Play channel the builds were made from.
Response
- ≤ 50 items
Users
Read what a user shows on their profile.
List a user's badges
GET/api/v1/users/{id}/badges
The sponsor badges a user shows on their profile, in order.
Path parameters
The user's id, as the maintainers list returns it, or the Discord id of their linked Discord account.
Response
Fonts
Find the files behind a font link. Unbound hosts no font files.
Resolve a font
GET/api/v1/fonts/resolve
A font's files at its provider: Google Fonts, Fontsource, Bunny Fonts, Fontshare, Font Squirrel, dafont, GitHub, or a direct link. Rate limited per IP.
Query parameters
A Google Fonts family name, a font page link, or a direct .ttf, .otf or .zip link.
- ≥ 1 characters
- ≤ 2048 characters
Response
- ≥ 1 characters
- ≥ 1 characters
- ≥ 1 items
- ≤ 64 items