How it works
- Sign in. The assistant asks for your email; we send you a 6-digit code; you give it the code and it gets an API key. New accounts are created the same way. (Or create a key yourself on API keys.)
- Owner details, once. The assistant sets the registrant details (name, address, phone) — domains are registered with them.
- Card, once (optional). The assistant gives you a Stripe link where you save a card and choose a monthly limit. After that it pays orders right away, within the limit.
- Buy. One call orders, pays and waits for the registry. Without a saved card you get a Stripe payment link (card or US bank account), in the chat and by email.
AI assistants (MCP)
Our MCP server is at https://www.metodai.com/mcp (Streamable HTTP). Add it without a key and let the assistant sign you in with sign_in — or give it your key:
Claude, ChatGPT and other apps that take only a URL — the personal URL with your key:
https://www.metodai.com/mcp?key=mdk_your_key
Claude Code
claude mcp add --transport http metoda https://www.metodai.com/mcp \
--header "Authorization: Bearer mdk_your_key"
Cursor, VS Code and other clients (JSON configuration)
{
"mcpServers": {
"metoda": {
"url": "https://www.metodai.com/mcp",
"headers": { "Authorization": "Bearer mdk_your_key" }
}
}
}
Tools: search_domains, get_prices, sign_in, account, setup_card, create_order, get_order, list_orders, list_domains, get_domain, set_nameservers, renew_domain. Try: “Find me an available .com for my bakery called Sweet Crumb and buy it.”
REST API
Base URL https://www.metodai.com/api/v1, JSON in and out, the key in the Authorization: Bearer header. Short answers: fields that do not apply are left out. Start with GET /api/v1; full description: openapi.json.
| Method | Path | What it does |
|---|---|---|
| GET | /check?name=…&tlds=com,io | Live availability and price · no key |
| GET | /prices | Yearly price of every extension · no key |
| POST | /auth | {"email"} → code by email; {"email","code"} → API key · no key |
| GET · PUT | /account | Account, owner details, saved card · set owner details |
| POST · DELETE | /card | {"monthly_limit_usd"} → Stripe link to save a card · remove it |
| POST | /orders | Order 1–10 domains → paid with the saved card, or payment_url |
| GET | /orders/{id}?wait=25 | Status, payment time, Stripe receipt; waits until it is done |
| GET | /orders · /domains · /domains/{domain} | Orders, domains, expiry, nameservers |
| PUT | /domains/{domain}/nameservers | Change nameservers |
| POST | /domains/{domain}/renew | Renew — paid like an order |
Sign in (twice: first the email, then the code from the email)
curl -X POST https://www.metodai.com/api/v1/auth -d '{"email":"you@example.com"}'
curl -X POST https://www.metodai.com/api/v1/auth -d '{"email":"you@example.com","code":"123456"}'
Buy
curl -X POST https://www.metodai.com/api/v1/orders \
-H "Authorization: Bearer mdk_your_key" -H "Content-Type: application/json" \
-d '{"domains":["pixelstudio.com"]}'
{"ok":true,"order":{"order_id":1234,"status":"paid","amount_usd":12.99,
"paid_at":"…","paid_with":"saved_card","receipt_url":"https://pay.stripe.com/receipts/…",
"items":[{"domain":"pixelstudio.com","years":1,"status":"registered","expires_at":"…"}],"next":"Done."}}
Without a saved card the order comes back with "status":"awaiting_payment" and payment_url. Errors: {"ok":false,"error":{"code":"taken","message":"…"}} with an HTTP status (400, 401, 404, 409, 429). Limit: 600 requests per 10 minutes per key.
Safe by design
- A key pays only with a card you saved for AI payments, never above your monthly limit; only you can raise it.
- We send a domain to the registry only after Stripe confirms the payment.
- Domains are registered in your name, with your account's owner details.
- No transfer codes, hosting passwords or transfer-lock changes through the API.
- We email you when a key is created, for every order and payment and when nameservers change. Revoke a key or remove the card at any time.