Base URL: https://scamprojecttest.xyz/api/v1. Shared rules (auth, limits, errors, idempotency) live in the overview.
Account
Domains
List domains
GET /domains · scope domains:read · paginated · ?user_id= (operator)
Domain card
GET /domains/{domain_id} · scope domains:read. A reseller only sees its own; a foreign id → 404.
Availability check
GET /domains/check?names=a.com,b.net · scope domains:read · up to 50 names
TLD price
GET /domains/price?tld=com · scope domains:read
Bulk check
POST /domains/check:bulk · scope domains:read · body { "names": ["a.com","b.net"] } → bulk envelope.
Buying (money)
Money endpoints require API_MONEY_ENABLED, scope domains:buy, an Idempotency-Key header, and (if enabled) an X-Signature.
Bulk registration
POST /domains/register:bulk · scope domains:buy · money · async → 202
Operator must name the buyer: ?user_id=42. Registration runs in the background; poll GET /batches/checkout:1234. Invalid rows come back as 422 with per-row detail, and nothing is charged. Premium (registry-priced) names are unavailable and never enter registration.
Order status
POST /orders/status:bulk · scope domains:read · body { "ids": [101,102] }.
Batch status
GET /batches/{batch_id} · scope domains:read.
Deposits (money)
Create invoice
POST /deposits · scope deposits:write · money → 201
The balance is credited after payment, via the provider’s signed webhook, not this request.
Invoice status
GET /deposits/{provider}/{external_id} · scope domains:read.
Operator endpoints
Operator key only (scope admin:*). Money ones require Idempotency-Key.