Public API
Public data is available through read-only JSON endpoints. API access is granted individually by email; calls without authorisation are a violation. Authorised responses match the values the site renders.
Quick start
curl -H "Authorization: Bearer <your-key>" \ "https://cybercredit.org/api/score/steam/76561198000000900?lang=en"
Example response (truncated)
{
"game": { "slug": "steam", "name": "Steam Account", "modelVersion": "steam@1.0.0" },
"score": 96,
"band": { "key": "excellent", "label": "No issues found" },
"coverage": 1,
"source": "live",
"dimensions": [
{ "key": "bans", "label": "Ban record", "weight": 40, "score": 100,
"reasons": ["No bans found"] }
]
}Endpoints
Game catalogue, scoring dimensions and weights.
One account’s score, band, coverage and per-dimension reasons.
Liveness probe. Returns service status only, no configuration.
OpenAPI 3.1 description for Postman or client generation.
Query parameters
langResponse language: zh (default) or en.
refreshSet to 1 to force a refresh; counts towards the rate limit and is limited to once per account every 30 minutes.
historySet to 1 to return the permanent score history (up to 20 snapshots, newest first).
Score response fields
scoreInteger 0–100; null when less than half the weight has data.
band{ key, label } for the score band.
rawScoreWeighted score before any cap was applied.
cappedByWhy the score was capped (for example a VAC ban); null when no cap applied.
coverage0–1, the share of weight with available data.
account.steamrepSteamRep 2024 archive flag; a banned flag caps the score at 30.
dimensions[]key, label, weight, score and reasons per dimension; score is null when data is missing.
sourcelive or demo. Demo data must always be labelled as such.
warnings[]Degradation codes, for example steam_key_missing.
cachedWhether this response came from cache.
fetchedAtWhen the data was fetched (ISO 8601).
history[]Present only when ?history=1; permanent score snapshots, newest first.
langLanguage of this response.
Errors
400 INVALID_IDThe account ID format is invalid.
404 GAME_NOT_FOUNDNo such game.
404 NOT_FOUNDAccount does not exist or has no public data.
409 MODEL_NOT_READYThe scoring model for this game is not live yet.
429 RATE_LIMITEDToo many new lookups; see the Retry-After header.
429 REFRESH_COOLDOWNThis account was refreshed within the last 30 minutes; see the Retry-After header.
502 UPSTREAMThe upstream data source is temporarily unavailable.
Limits and terms of use
- Rate limit: 10 new lookups per IP per minute; cached reads do not count.
- Auth: all data endpoints (games / score / health) require `Authorization: Bearer <key>` or `X-API-Key`; unauthenticated calls return 401. Keys are issued only by email to cybercreditc@outlook.com, case by case. Any call, automated scraping or bulk request without written authorisation is a violation.
- Human verification: the website search form requires Turnstile; the API uses a key instead and does not require Turnstile.
- CORS: responses carry Access-Control-Allow-Origin: *, so browsers can call directly.
- Demo data: when source is demo it must be labelled as demo and never presented as a real conclusion.
- Attribution: when reusing the data publicly, credit CyberCredit and keep the original link.
OpenAPI description
Machine-readable definition for Postman or client generators. It is a file, not a page — download it instead of reading it in the browser.
/openapi.json