Read pool capabilities
GET /pools/{id}/capabilities - Read the self-describing networks, fees, limits, and deposit address for an entitled pool.
0Pools API pages are for approved headless partners. They cover the partner-visible quote, transact, status, trade, and balance lifecycle only.
Endpoint
| Field | Value |
|---|---|
| Method | GET |
| Path | /pools/{id}/capabilities |
| Area | Capabilities |
| Operation id | getCapabilities |
| Auth boundary | Secret key from your server. |
Use it for
Read the self-describing configuration for an entitled pool: the crypto networks it supports, the side(s) it allows, your per-tier draw fee and spread cap, your order-size limits, and your dedicated deposit address.
Read capabilities, do not hard-code
Treat this endpoint as the source of truth for supported networks, the draw fee, the spread cap, and minimum and maximum order sizes. Read it at startup and refresh it periodically instead of hard-coding values in your integration. Configuration is provisioned per partner and can change without a code release on your side.
Use this endpoint only for the partner-scoped resource it describes. Store your own reference id, the returned 0Bit object id, the request id, timestamps, and the current configuration so support and reconciliation do not depend on browser callbacks alone.
Response fields
| Field | Type | Use |
|---|---|---|
poolId | string | Pool selected by entitlement; join quote, transact, and balance records. |
pair | string | Human-readable currency pair for display and reconciliation. |
fiatCurrency | string | Fiat side of the pool. |
cryptoCurrency | string | Crypto side of the pool. |
supportedNetworks | string array | Crypto networks this pool may transact and deliver on (for example tron, ethereum). |
sides | string array | Allowed sides for this pool: on_ramp, off_ramp, or both. |
tier | string | Your provisioned tier for the pool. |
drawFeeBps | integer | Your per-tier draw fee, in basis points. This is the fee charged, not a ceiling. |
spreadCapBps | integer | Maximum FX spread that can be quoted, in basis points. This is the only capped value here. |
minOrderUsdt | number | Minimum order size. Validate order amounts against this before quoting. |
maxOrderUsdt | number or null | Maximum order size, or null when no maximum applies. Validate order amounts before quoting. |
cryptoDepositAddress | string or null | Your dedicated 0Pools deposit address, or null until provisioned (see below). |
Order-size limits and basis-point values are JSON numbers on this response. Do not parse the pair string for machine logic; use fiatCurrency and cryptoCurrency.
About cryptoDepositAddress
cryptoDepositAddress is your dedicated 0Pools deposit address. It is null until provisioned; once present, you send crypto to it for off-ramp (sell) receipt to credit your per-partner crypto balance, which the fiat payout is then drawn against. Send only the pool's cryptoCurrency on one of the pool's supportedNetworks. This address is partner-scoped: treat it as static configuration and re-read it from this endpoint rather than caching it indefinitely.
Request
curl https://pools-api.0bit.app/v1/pools/EUR-USDT/capabilities \
-H "Authorization: Bearer sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Response
{
"poolId": "EUR-USDT",
"pair": "EUR/USDT",
"fiatCurrency": "EUR",
"cryptoCurrency": "USDT",
"supportedNetworks": ["tron", "ethereum", "bsc", "polygon", "solana"],
"sides": ["on_ramp", "off_ramp"],
"tier": "standard",
"drawFeeBps": 1234,
"spreadCapBps": 4321,
"minOrderUsdt": 11,
"maxOrderUsdt": 99999,
"cryptoDepositAddress": "0x00000000000000000000000000000000000Test"
}Values shown are fake placeholders. Read the live response for your account; do not copy these into production configuration.
Errors
The API returns a unified error envelope with type, code, message, request_id, doc_url, and statusCode. Every response carries an X-Request-Id header. Branch on code, not on the free-form message.
| Status | type | Notable code values | What it means |
|---|---|---|---|
401 | unauthorized | — | Missing or invalid secret key. Fix credentials before retrying. |
403 | forbidden | pools_not_enabled, pool_access_suspended, kyc_not_approved, pool_not_allowed, key_mode_mismatch | Valid key but access is denied. Branch on the denial code. |
404 | not_found | — | Pool not found or not scoped to your account. Cross-tenant reads return 404. |
429 | rate_limited | — | Throttled. Retry with backoff. |
5xx | server_error | — | Server or upstream failure. Retry bounded with backoff. |
Production rules
- Keep secret keys on your server.
- Read capabilities to drive supported networks, fees, spread caps, and order limits instead of hard-coding them.
- Validate environment, mode, entitlement, asset, network, and amount against this response before quoting.
- Branch on machine-readable fields, error code, object id, and request id.
- Treat examples and placeholder ids as fake data only.
Public boundary
This reference covers partner-visible discovery, quote, transact, status, trade, and balance behavior. Liquidity operations, routing internals, provider details, reserve logic, and runbooks are outside the public API contract.