Skip to content

Outage on 12 November 2026 resolved

Read the report

MCP for AI agents30 toolsYour AI agent works with the rights you give it. Registering, transferring and cancelling stay in the customer area. If you give it the right, it can retrieve the transfer code of a domain: at most 3 retrievals per domain and day, and every retrieval is logged.

Read the MCP docs
DNS automation
v1.10.0
Download OpenAPI

Prepare a domain order for the checkout

Prepares a domain order and returns a link to the regfish checkout. NOTHING is ordered, paid or reserved by this call: the customer opens the link, reviews the positions and completes the purchase in the checkout (terms, payment, contacts). Use it when the person you work for explicitly asks to register or transfer domains, and show them the returned link. For every domain the registry state decides the action: a free name is prepared as registration, a taken name as transfer (the auth code is entered in the checkout, never here). Domains that cannot be ordered are returned with a reason and left out of the link. Prices are gross EUR as shown in the checkout; the checkout reprices on order. The link is valid for 24 hours, bound to the account behind the credential and can be taken over once. Limits: 20 domains per call, 30 prepared orders per account and hour, 100 per day.
POST
/orders/prepare
Orders

Authentication

x-api-keyapplication/json

Request body

application/jsonRequired
No description was provided in the specification.
prepareOrderRequest
prepareOrderRequest
{
  "items": [
    {
      "domain": "example"
    }
  ]
}

Fields

Name
Type
Format
Required
Description
items
array<object>
-
Required
-
items[].domain
string
-
Required
Domain to order, e.g. example.de (IDN allowed)
items[].action
register, transfer
string
-
Optional
Optional expectation; the registry state decides and a mismatch is refused

Request example

POST
curl --request POST \
  --url 'https://api.regfish.com/orders/prepare' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --data '{
  "items": [
    {
      "domain": "example"
    }
  ]
}'

Responses

200
Prepared order with checkout link
application/jsonprepareOrderResponse
Response example 200
{
  "success": true,
  "code": 0,
  "response": {
    "checkout_url": "https://api.regfish.com",
    "expires_at": "2026-03-11T12:00:00Z",
    "total_gross": 1,
    "currency": "EUR",
    "positions": [
      {
        "ok": true,
        "domain": "example"
      }
    ]
  }
}
400
Invalid request
application/jsonError
Response example 400
{
  "success": false,
  "message": "Invalid request",
  "error": "Invalid request"
}
401
Unauthorized
application/jsonError
Response example 401
{
  "success": false,
  "message": "Unauthorized",
  "error": "Unauthorized"
}
403
Missing permission order:prepare, or account locked
application/jsonError
Response example 403
{
  "success": false,
  "message": "Missing permission order:prepare, or account locked",
  "error": "Missing permission order:prepare, or account locked"
}
422
None of the domains can be ordered
application/jsonError
Response example 422
{
  "success": false,
  "message": "None of the domains can be ordered",
  "error": "None of the domains can be ordered"
}
429
Too many prepared orders
application/jsonError
Response example 429
{
  "success": false,
  "message": "Too many prepared orders",
  "error": "Too many prepared orders"
}
502
Availability could not be determined
application/jsonError
Response example 502
{
  "success": false,
  "message": "Availability could not be determined",
  "error": "Availability could not be determined"
}
Community

Become part of the community

The regfish DNS API is a great solution for developers who want to automate domains and DNS zones. Become part of the community and benefit from DNS automation. The DNS API is available free of charge to every regfish customer.