| Aspect | Information |
|---|---|
| Route prefix | /sandbox |
| Base URL | https://api.coldmailreseller.com/api/v1/sandbox |
| Auth header | cmr-x-sandbox-api-key (separate from your production cmr-api-key) |
| Scenario header | cmr-x-sandbox-scenario (optional — defaults to the happy path) |
| Webhook destinations | Configured separately from production, under Test Mode |
cmr-api-key). Using the wrong key returns 401 Unauthorized.https://api.coldmailreseller.com/api/v1/sandbox| Method | Endpoint | Scenario |
|---|---|---|
POST | /sandbox/users | Create user |
GET | /sandbox/users/list | List users |
GET | /sandbox/users?userId= | Get user |
PUT | /sandbox/users?userId= | Update user |
DELETE | /sandbox/users?userId= | Delete user |
| Method | Endpoint | Scenario |
|---|---|---|
POST | /sandbox/domains/available | Suggest domains — simulate:domain-unavailable |
POST | /sandbox/domains/available-single | Check one domain — simulate:domain-unavailable |
GET | /sandbox/domains/by-user?userId= | List domains |
DELETE | /sandbox/domains?userId= | Delete domains |
POST | /sandbox/domains/has-workspace | Workspace check — simulate:workspace-exists |
| Method | Endpoint | Scenario |
|---|---|---|
GET | /sandbox/domains/dns?userId=&domain= | Get records |
POST | /sandbox/domains/dns?userId=&domain= | Add record |
PUT | /sandbox/domains/dns?userId= | Update record |
DELETE | /sandbox/domains/dns?userId= | Delete record |
| Method | Endpoint | Scenario |
|---|---|---|
POST | /sandbox/orders/json?userId= | Domain + mailbox order — simulate:order-success, simulate:order-domain-failed, simulate:order-mailbox-failed, simulate:order-partial-failure |
POST | /sandbox/orders/create-mailbox-order?userId= | Mailbox-only order |
GET | /sandbox/orders?userId=&orderId= | Get order details |
GET | /sandbox/orders/status?userId=&orderId= | Get order status |
POST | /sandbox/orders/process-order?userId= | Process queued order |
| Method | Endpoint | Scenario |
|---|---|---|
GET | /sandbox/mailboxes?userId= | List mailboxes |
GET | /sandbox/mailboxes/single?userId=&mailboxId= | Get mailbox |
GET | /sandbox/mailboxes/mailbox?userId=&domain= | Get by domain |
POST | /sandbox/mailboxes/validate-mailbox?userId= | Validate |
POST | /sandbox/mailboxes/oauth?userId= | OAuth stub |
PATCH | /sandbox/mailboxes/update-mailbox-details?userId= | Update details |
GET | /sandbox/mailboxes/admin-mailbox-details?userId= | Admin details |
DELETE | /sandbox/mailboxes/remove?userId= | Remove mailbox — simulate:mailbox-export-failed |
| Method | Endpoint | Scenario |
|---|---|---|
GET | /sandbox/subscriptions?userId= | List subscriptions |
POST | /sandbox/subscriptions/renew?userId= | Renew — simulate:subscription-renewal-failed, simulate:subscription-past-due |
POST | /sandbox/subscriptions/cancel?userId= | Cancel |
POST | /sandbox/subscriptions/toggle-autorenewal?userId= | Toggle auto-renewal |
| Method | Endpoint | Scenario |
|---|---|---|
GET | /sandbox/pre-warmup?userId= | List domains |
POST | /sandbox/pre-warmup/order?userId= | Place order — simulate:prewarmup-order-failed |
DELETE | /sandbox/pre-warmup/reset?userId= | Reset state |
| Method | Endpoint | Scenario |
|---|---|---|
GET | /sandbox/geo/countries | List countries |
GET | /sandbox/geo/countries/:countryCode/states | List states |
| Method | Endpoint | Scenario |
|---|---|---|
POST | /sandbox/webhooks/:eventId/replay | Replay a past event |
| Scenario key | Applies to | What it does |
|---|---|---|
simulate:order-success | POST /orders/json | (default) Full happy path — domains registered, mailboxes created, subscription active |
simulate:order-domain-failed | POST /orders/json | All domains fail — no rows created, domain.order.failed webhook fired |
simulate:order-mailbox-failed | POST /orders/json | Domains created, mailbox provisioning fails — mailbox.order.failed webhook fired |
simulate:order-partial-failure | POST /orders/json | First domain succeeds, the rest fail — cart ends as PAID, no failure webhook |
simulate:domain-unavailable | POST /domains/available, POST /domains/available-single | Returns 0 results |
simulate:workspace-exists | POST /domains/has-workspace | Returns 409 (single) or success: false (bulk) |
simulate:subscription-renewal-success | POST /subscriptions/renew | (default) Renewal succeeds |
simulate:subscription-renewal-failed | POST /subscriptions/renew | Renewal fails — subscription.renewal.failed webhook fired |
simulate:subscription-past-due | POST /subscriptions/renew | Sets PAST_DUE — subscription.past_due webhook fired |
simulate:mailbox-export-success | DELETE /mailboxes/remove | (default) Export completes immediately |
simulate:mailbox-export-failed | DELETE /mailboxes/remove | Export fails — mailbox.export.failed webhook fired |
simulate:prewarmup-order-success | POST /pre-warmup/order | (default) Pre-warmup order succeeds |
simulate:prewarmup-order-failed | POST /pre-warmup/order | No inventory — prewarmup.order.failed webhook fired |
cmr-x-sandbox-api-key is a distinct key from cmr-api-key. Sending your production key to a sandbox endpoint returns 401 Unauthorized.cmr-x-sandbox-scenario is omitted or unrecognized, the request behaves as simulate:*-success — you won't see failure behavior unless you explicitly request it.DELETE /sandbox/pre-warmup/reset?userId= between runs.