Endpoint
Authentication
This endpoint requires a Profile Access Token — not the model API key that starts withsk-. Generate your Profile Access Token in Console → Profile → Generate Access Token.
Pass the token in the Authorization header:
Response Examples
Display Enabled
When monetary display is turned on in your profile, the response includes a fully populateddisplay object with currency and amount fields ready for direct rendering.
Display Disabled
When display is disabled, thedisplay object contains only enabled: false. Use the raw quota fields for programmatic quota checks.
Response Fields
Current remaining quota expressed as a raw internal value. Use this for programmatic threshold checks.
Cumulative quota consumed since account creation, expressed as a raw internal value.
Identical to
quota. This field exists as a semantically clearer alias for balance-display contexts — prefer it when building UI components that show remaining balance.Always
"quota". This constant identifies that quota, used_quota, and balance_quota are raw internal quota units, not currency amounts.true when the platform is configured to expose monetary display amounts. false when only raw quota values are available.Currency code for the display amounts (e.g.,
"CNY"). Follows the currency configured in your Profile settings. Returned only when display.enabled is true.Remaining balance expressed in the display currency, up to six decimal places. Use this field to show users their available spend. Returned only when
display.enabled is true.Cumulative amount spent expressed in the display currency, up to six decimal places. Returned only when
display.enabled is true.Related Endpoints
| Endpoint | Auth | Purpose |
|---|---|---|
GET /api/user/balance | Profile Access Token | Recommended — dedicated balance query |
GET /api/user/self | Profile Access Token | Full user profile (includes quota and used_quota fields) |
GET /v1/dashboard/billing/subscription | Model API Key (sk-...) | OpenAI-compatible — returns token-level quota, not account balance |
Frequently Asked Questions
Where do I generate a Profile Access Token?
Where do I generate a Profile Access Token?
Log in to the Fhddos Console, open Profile from the top-right menu, and click Generate Access Token. Copy the token immediately — it is shown only once. If you lose it, click Reset Access Token to invalidate the old token and generate a new one.
Why does my sk-... API key return an authentication error on this endpoint?
Why does my sk-... API key return an authentication error on this endpoint?
Model API keys (
sk-...) are scoped to model inference endpoints under /v1/. Account management endpoints under /api/ require a Profile Access Token. This separation ensures that a leaked model key cannot expose account or billing data. Always use the correct credential for each endpoint family.Does changing the display currency affect how I am billed?
Does changing the display currency affect how I am billed?
No. The display currency setting only changes the values in
display.currency, display.balance, and display.used. Your actual billing, quota deductions, and the raw quota / used_quota / balance_quota fields are completely unaffected by this preference.What is the difference between balance_quota and quota?
What is the difference between balance_quota and quota?
Both fields return the same integer value — your current remaining raw quota.
balance_quota is an alias added to make intent explicit in balance-display contexts. If you are building a UI widget that shows remaining balance, use balance_quota for clarity. If you are writing quota-gate logic, either field works identically.What should I do when display.enabled is false?
What should I do when display.enabled is false?
When
display.enabled is false, the platform does not expose a monetary conversion for your raw quota. Use the quota and used_quota fields for programmatic checks (e.g., triggering an alert when quota drops below a threshold). Do not attempt to derive a currency amount from raw quota values on your own, as the internal conversion factor is not part of the public API contract.