m.MeowMeow Developers
RUOpenAPI ↗
API REFERENCE

Create exact quote, without purchasing

POST/api/v1/quotes

Operates on your account only. Send your API key in the Authorization header. Responses use JSON.

Request

Set BASE_URL to this website’s HTTPS origin and API_KEY to your private key. Replace RESOURCE_ID with the ID returned by the API.

cURL
curl --request POST "${BASE_URL}/api/v1/quotes" \
  --header "Authorization: Bearer $API_KEY" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: YOUR_UNIQUE_ACTION_UUID" \
  --data '{"names": ["example.com"], "kind": "registration", "period": 1, "category": "basic", "configuration": {"mode": "skip"}}'

Headers & parameters

Authorizationrequired

Bearer YOUR_API_KEY

Idempotency-Keyheader · stringrequired

Unique action identifier. Reuse the same value and JSON on retries.

JSON body

registration
namesarrayrequired

Domain names. Renewals accept your own domains only.

minItems: 1 · maxItems: 50

kindstring

Action type; choose the appropriate variant below.

enum: ["registration", "renewal"] · default: "registration"

categorystring

Pricing category: basic or protected.

enum: ["basic", "protected"] · default: "basic"

periodinteger

Years: registration 1; renewal must match the domain’s renewal_periods.

default: 1 · minimum: 1 · maximum: 10

configurationobject

Initial setup after registration.

configuration.modestring

skip: no setup; a: IP; ns: custom NS; cloudflare: connect Cloudflare.

enum: ["skip", "a", "ns", "cloudflare"]

configuration.ipstring

Your server’s public IPv4 address.

configuration.nameserversarray

Nameserver hostnames, not IP addresses.

minItems: 2 · maxItems: 20

Response

202 means accepted, not completed. Poll the order or operation. If the outcome is unknown, do not issue another purchase. Amounts are decimal strings in USD; dates use ISO 8601.
request_idstringrequired

Identifier used to recover an outcome after a network failure.

idstringrequired
kindstring

Action type; choose the appropriate variant below.

statusstringrequired

Current state. An accepted job does not mean completion.

periodinteger

Years: registration 1; renewal must match the domain’s renewal_periods.

categorystring

Pricing category: basic or protected.

currencyobject

const: "USD"

totalstringrequired

Decimal USD amount; never floating point.

pattern: "^\\d+(\\.\\d+)?$"

prime_pricedboolean

Whether the quote includes Prime pricing.

expires_atstring | null
created_atstring | null
itemsarrayrequired
items[].domainstringrequired
items[].pricestringrequired

Decimal USD amount; never floating point.

pattern: "^\\d+(\\.\\d+)?$"

items[].statusstringrequired

Current state. An accepted job does not mean completion.

Response structure example · illustrative values
JSON
{
  "request_id": "00000000-0000-4000-8000-000000000001",
  "id": "00000000-0000-4000-8000-000000000001",
  "kind": "string",
  "status": "string",
  "period": 1,
  "category": "string",
  "currency": "USD",
  "total": "0.00",
  "prime_priced": false,
  "expires_at": "2026-10-02T12:00:00Z",
  "created_at": "2026-10-02T12:00:00Z",
  "items": [
    {
      "domain": "string",
      "price": "0.00",
      "status": "string"
    }
  ]
}

Errors & statuses

error.code · error.message · request_id

401

Invalid or revoked key.

404

Resource not found in your account.

409

Idempotency conflict or request in progress.

422

Invalid parameters or business rule, including balance.

500

Outcome may be uncertain. Poll the request.

503

Temporarily unavailable. Respect Retry-After.