Introduction
RESTful API for managing domain registrations across multiple registrars through a single unified interface.
The Most API lets you search domain availability, register domains in bulk across providers like Spaceship, Dynadot, Webnic, GName, and NiceNIC, and track the registration pipeline through a single tracking token per batch.
Before you build — read Registrar peculiarities
Every registrar behind Most has its own quirks — Spaceship caps searches at 30 per 30 seconds, Webnic's abuse team can freeze whole accounts, Dynadot support gives no outage ETAs, GName's register/renew calls return success when the order is queued, not when it's actually finalised (separate poll required), and so on. Read Registrar peculiarities before you design around a specific provider — it'll save you from surprises in production.
Base URL
All API requests are made to:
Code
Authentication
All endpoints require a bearer token in the Authorization header. Generate your token in the console under Settings → Personal account → API Tokens.
Code
Tokens start with bk_ followed by 64 hex characters. Each token can be restricted to a list of allowed IP addresses — requests from other IPs return 403 Forbidden.
Response Envelope
All successful responses share the same JSON envelope:
Code
Errors return:
Code
Pagination
List endpoints support limit (1–100, default 20) and offset (default 0) query parameters. The response includes a total field with the full count.
Code
Rate Limits
Each API token has a default rate limit of 10 requests per second, enforced as a fixed 1-second window per token. Exceeding the limit returns 429 Too Many Requests — wait less than a second and retry. Need more throughput? Ask an admin to raise the rateLimit column on your token; the enforcement logic doesn't cap higher values.
All clients sharing the same token share the same bucket, so if you run parallel workers against one token you need to coordinate yourself or split the load across multiple tokens.
Async Tasks
Bulk operations (renew, set nameservers, fetch EPP codes) run asynchronously. Instead of processing inline they create a Task and return a taskId immediately:
Code
Poll the task to see progress:
Code
A task is COMPLETED when all items succeeded, FAILED when all failed, or PARTIAL when only some succeeded. Per-item outcomes live in task.result.
For real-time notifications subscribe to task.completed via webhooks — the task is posted to your webhook URL when it's done.
Webhooks
Instead of polling task endpoints, subscribe to real-time notifications. Configure your webhook URL in Settings → Personal account → Webhook and Most will POST events like task.completed, orders.registered, orders.completed, balance.low, domain.expiring, domain.deleting, and domain.blocked.
See the Webhooks guide for the full list of events, payload examples, and retry policy.
Next Steps
- API Reference — explore all endpoints
- Webhooks — real-time event notifications