UNIT3D API Response¶
Endpoint¶
Most UNIT3D sites use /api/user by default. Override via the tracker's apiPath field if needed.
Authentication¶
Pass API token as a query parameter: ?api_token=TOKEN. No special headers required.
Example Response¶
{
"username": "JohnDoe",
"group": "Power User",
"uploaded": "500.25 GiB",
"downloaded": "125.50 GiB",
"ratio": "3.99",
"buffer": "374.75 GiB",
"seeding": 156,
"leeching": 2,
"seedbonus": "12500.00",
"hit_and_runs": 0
}
Stock UNIT3D returns byte values as formatted strings ("500.25 GiB"), and ratio, buffer and seedbonus as strings too. The adapter parses via parseBytes() or parseFloat(). See the variants below.
Variants¶
- Newer builds (Blutopia, Upload.cx) send
uploaded,downloaded,buffer,ratioandseedbonusas raw numbers instead of humanized strings. The adapter accepts both. - LST wraps the whole object in a Laravel
dataenvelope,{"data": {...}, "api_key": {"expires_at": "..."}}. The adapter reads through it when the top-level object lacks the byte fields, and keepsapi_key.expires_atasplatformMeta.apiKeyExpiresAtfor the API Key Expiry card. - A body that lacks
uploaded,downloadedorbufferin both places fails the poll withUnexpected response from <host>: missing ...; top-level keys: ..., which the UI shows as "Tracker returned an unexpected response". The raw message is in the server log undercause.
Field Mapping¶
| TrackerStats field | UNIT3D field | Type | Notes |
|---|---|---|---|
username |
username |
string |
Direct copy |
group |
group |
string |
User class / rank label |
uploadedBytes |
uploaded |
string |
Parsed via parseBytes() → bigint |
downloadedBytes |
downloaded |
string |
Parsed via parseBytes() → bigint |
ratio |
ratio |
string |
parseFloat(), defaults to 0 |
bufferBytes |
buffer |
string |
Parsed via parseSignedBytes() → bigint; "∞" derives from totals |
seedingCount |
seeding |
number |
Direct copy |
leechingCount |
leeching |
number |
Direct copy |
seedbonus |
seedbonus |
string |
parseFloat(), defaults to 0 |
hitAndRuns |
hit_and_runs |
number |
Direct copy |
requiredRatio |
— | — | Always null, not in UNIT3D API |
warned |
— | — | Always null, not in UNIT3D API |
freeleechTokens |
— | — | Always null, not in UNIT3D API |
One API call per poll, no enrichment step.