Exact match by default. Not sure of the exact spelling? Results also try a partial match automatically.
How this works
Community owners are individually vetted and issued their own API key before they can submit anything — there's no open signup. Every submission sits pending until it's manually reviewed; nothing appears here automatically. Reading and searching records is open to everyone, no account needed.
For community owners
If you run a community and want to submit or check records programmatically, get in touch to be issued an API key, then head to the API Docs tab for full endpoint documentation.
Something wrong here?
If you believe a listing about you is inaccurate, reach out with the record ID and your side of it — contact details are on the community that submitted it or the site owner directly.
Base URL: https://api.blacklists.hu/api. Reading is open to everyone — no key needed. Submitting
a record needs a community API key (issued individually, no self-serve signup — get in touch to request one),
sent as an X-Api-Key header on every request that needs it. Every submission sits
pending until manually reviewed; it's invisible to every read endpoint until then.
Identifier types
Used in type
fields throughout the API — each record can carry any number of these.
| Type | Meaning |
|---|---|
| ingame_username | In-game or platform username |
| discord_username | Discord account username (the @handle) |
| display_name | Discord display name — server nickname if set, else global display name |
| discord_id | Numeric Discord user ID (stable even if the username changes) |
| discord_tag | Legacy "name#1234" discriminator — most accounts no longer have one |
| ingame_uuid | The game's own internal player UUID, if it has one |
| founder_number | Capital Rift founder number |
| steam_id | Steam account ID |
| ip | IP address |
| Email address | |
| other | Anything that doesn't fit the above |
Basic liveness check.
Example request
curl https://api.blacklists.hu/api/health
Example response
{"ok":true,"service":"global-blacklist-api"}
Total record count (every category) — the number shown at the top of this page.
Example request
curl https://api.blacklists.hu/api/stats
Example response
{"totalRecords":1042}
List every approved record, newest first. A record staff have redacted still appears, but with "redacted": true and no reason/identifiers/evidenceUrl/avatarUrl — its existence isn't hidden, its content is.
Query parameters
| Name | Description | |
|---|---|---|
| page | optional | Page number, default 1 |
| limit | optional | Results per page, default 25, max 100 |
Example request
curl "https://api.blacklists.hu/api/records?page=1&limit=25"
Example response
{
"page": 1,
"limit": 25,
"total": 1,
"records": [
{
"id": "b4a3dfae-...",
"category": "cheating",
"reason": "Used a fly hack, confirmed via server logs.",
"evidenceUrl": "https://example.com/proof.png",
"identifiers": [
{ "type": "ingame_username", "value": "someName" },
{ "type": "discord_id", "value": "123456789012345678" }
],
"createdAt": "2026-08-31T11:06:33.000Z"
}
]
}
Get one approved record by its id. Returns 404 both when the id doesn't exist and when it's
still pending or was rejected — an unapproved record's existence is never revealed to a public caller.
Returns 403 if staff have redacted it — unlike the list/search endpoints, a direct fetch by id
is refused outright rather than shown as a placeholder.
Example request
curl https://api.blacklists.hu/api/records/b4a3dfae-0dd2-47a0-8f77-7b1b6d1abf0d
Example response
{
"id": "b4a3dfae-...",
"category": "cheating",
"reason": "Used a fly hack, confirmed via server logs.",
"evidenceUrl": "https://example.com/proof.png",
"identifiers": [ { "type": "ingame_username", "value": "someName" } ],
"createdAt": "2026-08-31T11:06:33.000Z"
}
Example response — redacted (403)
{ "error": "redacted", "message": "This record has been redacted and is no longer accessible." }
The main "does this person have a record" lookup — searches across every identifier on every approved record.
Query parameters
| Name | Description | |
|---|---|---|
| value | required | The value to search for |
| type | optional | Restrict to one identifier type (see table above) |
| mode | optional | contains for a substring match instead of exact (case-insensitive either way) |
Example request
curl "https://api.blacklists.hu/api/query?value=someName"
Example response
{
"query": "someName",
"matchCount": 1,
"records": [ { "id": "b4a3dfae-...", "category": "cheating", "...": "..." } ]
}
Submit a new record. Always lands as pending — it will not appear in any read endpoint until
a staff member reviews and approves it.
Body parameters
| Name | Description | |
|---|---|---|
| category | required | One of fraud, cheating, exploiting, other |
| reason | required | Free text explaining what happened |
| evidenceUrl | optional | Link to screenshots/logs/proof, hosted elsewhere |
| identifiers | required | Array of {type, value} — at least one |
Example request
curl -X POST https://api.blacklists.hu/api/records \
-H "X-Api-Key: <your key>" \
-H "Content-Type: application/json" \
-d '{
"category": "cheating",
"reason": "Used a fly hack, confirmed via server logs.",
"evidenceUrl": "https://example.com/proof.png",
"identifiers": [
{ "type": "ingame_username", "value": "someName" },
{ "type": "discord_id", "value": "123456789012345678" }
]
}'
Example response
{
"id": "b4a3dfae-...",
"status": "pending",
"message": "Submitted — this will not appear in query results until it has been reviewed."
}
Everything your community has ever submitted, any status — your only visibility into the review process, including the reason if something was rejected.
Example request
curl https://api.blacklists.hu/api/submissions -H "X-Api-Key: <your key>"
Example response
{
"records": [
{
"id": "b4a3dfae-...",
"category": "cheating",
"reason": "...",
"identifiers": [ "..." ],
"status": "pending",
"reviewNote": null,
"createdAt": "2026-08-31T11:06:33.000Z",
"reviewedAt": null
}
]
}
Rate limits apply — public reads are capped per IP per minute, submissions per API key per hour. A 429 means you've hit one; wait and retry.