The Stabyl API lets your team automate the same money movement and trading workflows you already perform inside Stabyl. Use it for backend jobs, internal tools, reconciliation systems, and trading automation that operate on your own Stabyl account.
What You Can Automate
| Area | What the API gives you |
|---|
| Wallet discovery | Supported wallet currencies, stablecoin rails, and blockchain routes |
| Deposits | Fiat deposit account details and one crypto deposit address per requested chain |
| Balances | NGN and USD wallet balances, including available and locked amounts |
| Recipients | Saved fiat and crypto recipient records used by Stabyl Pro workflows |
| Transactions | Cursor-paginated wallet activity for deposits, fees, adjustments, refunds, and web-initiated withdrawals |
| Market data | Markets, tickers, order books, candles, trades, and fills |
| Orders | Create, list, read, cancel, and replace exchange orders |
| Sandbox | Non-production simulation endpoints for testing deposits, withdrawal records, KYB state, and notifications |
Production withdrawals are not submitted through the API. Initiate withdrawals
from Stabyl Pro, then reconcile them through wallet transaction reads.
Base URLs
| Environment | URL |
|---|
| Production | https://api.stabyl.com/v1 |
| Staging | https://api-staging.stabyl.com/v1 |
API Conventions
All requests use HTTPS. JSON writes require Content-Type: application/json. Authenticated routes require X-Api-Key.
Successful JSON responses use a response envelope:
{
"status": "success",
"data": {}
}
Errors use the same envelope shape:
{
"status": "error",
"error": {
"code": "UNAUTHORIZED",
"message": "missing X-Api-Key header"
}
}
Timestamps are RFC3339 strings in UTC. Monetary amounts are strings to avoid floating point rounding issues. Stablecoins (USDT, USDC) are settlement rails for the USD wallet, not separate wallet currencies.
Design Principles
- Keep API keys server-side and grant each key only the access it needs.
- Discover wallet routes from the API instead of hardcoding chain availability.
- Treat order writes as asynchronous; read the order after submission for canonical status.
- Use
Idempotency-Key on create, cancel, and replace order requests.
- Reconcile from transaction and order reads, not from manual exports or UI state.
- Remove simulation calls from production code paths.