Three API calls. That's it. No dashboard, no config files, no waiting for approval.
1
Get your API key
POST /api/auth/signup Send email + password. Get back a hoist_ prefixed API key instantly.
2
Search domains
POST /api/domains/search Send a name, get availability across 14 TLDs with prices. No auth needed.
3
Register & deploy
POST /api/domains/register Pick a domain, pay via Stripe, then deploy code from a GitHub repo.
🔑 Authentication
Hoist uses API key authentication. Keys are prefixed with hoist_ and sent as Bearer tokens.
Some endpoints (domain search, pricing, checkout) are public — no auth needed. Endpoints that manage your account or domains require authentication.
Authorization Header
Authorization: Bearer hoist_your_api_key_here
Get your API key by signing up or logging in. The key is returned in the response body.
🚀 Quickstart
Get from zero to a registered domain in 3 API calls.
1
Create an account
Sign up to get your API key. You'll use this for all authenticated requests.
Hoist is built for programmatic domain management. Here's how developers and AI agents use it.
🤖
Register a Domain for Your AI Agent
Give your AI agent its own identity. Search for available domains, register one, and configure DNS — all through the API or MCP tools. Your agent can do it autonomously via Claude Desktop or Cursor.
search_domain → register_domain → manage_dns
🚀
Deploy a Static Site via API
Ship a landing page, docs site, or portfolio in one API call. Point it to a GitHub repo, Hoist builds and deploys it. Anonymous deploys work with zero auth — perfect for prototyping.
POST /api/deploy
🌐
Set Up DNS for Agent Infrastructure
Point your domain to any server, add CNAME records for CDNs, set up MX records for email. Full DNS management via API — A, AAAA, CNAME, MX, TXT, NS, and SRV records.
POST /api/domains/:domain/dns
Example: AI Agent Registers a Domain
Node.js — AI agent workflow
// Your AI agent decides it needs a domain for a new projectconst HOIST = 'https://hoist-g8do.polsia.app/api';
// Step 1: Search (no auth required)const search = awaitfetch(`${HOIST}/domains/search`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: 'my-agent' })
}).then(r => r.json());
// Step 2: Pick the cheapest available domainconst pick = search.results
.filter(r => r.available)
.sort((a, b) => a.price_cents - b.price_cents)[0];
// Step 3: Register via guest checkout (email only, no account needed)const reg = awaitfetch(`${HOIST}/domains/checkout`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
domain: pick.domain,
email: 'agent@mycompany.com'
})
}).then(r => r.json());
console.log(`Registered ${pick.domain} for ${pick.price_formatted}`);
console.log(`Payment: ${reg.checkout_url}`);
import requests
res = requests.post('https://hoist-g8do.polsia.app/api/domains/search',
json={'name': 'myproject'})
available = [r for r in res.json()['results'] if r['available']]
Deploy code instantly. No account needed — anonymous deploys get a temporary URL that expires in 24 hours. Sign up to keep it permanently and add a custom domain.
POST/api/deployAuth Optional▾
Anonymous deploy (no auth): Just send source_url — no account needed. Returns a temporary URL (slug.hoist-g8do.polsia.app) that expires in 24 hours, plus a claim_token to claim it later.
Authenticated deploy: Send domain + source_url with your API key to deploy to a registered domain.
Request Body
Field
Type
Required
Description
source_url
string
required
GitHub repo URL or local path
domain
string
optional
Target domain (required if authenticated, ignored for anonymous)
source_type
string
optional
Default: "git"
Anonymous Deploy (no auth needed)
curl-X POSThttps://hoist-g8do.polsia.app/api/deploy \
-H"Content-Type: application/json" \
-d'{"source_url": "https://github.com/user/repo"}'# With auth (deploy to your domain):curl-X POSThttps://hoist-g8do.polsia.app/api/deploy \
-H"Content-Type: application/json" \
-H"Authorization: Bearer hoist_your_api_key" \
-d'{"domain": "myapp.dev", "source_url": "https://github.com/user/repo"}'
{
"deployment": {
"deploy_id": "dpl_a1b2c3d4e5f6",
"slug": "abc123",
"status": "live",
"deploy_url": "https://abc123.hoist-g8do.polsia.app",
"claimed": true,
"expires_at": null
},
"message": "Deploy claimed! It will no longer expire."
}
GET/api/deploy/:deployIdAuth Optional▾
Poll deployment status. Works for anonymous deploys without auth (or with ?claim_token=). Status transitions: queued → building → deploying → live or failed.
Live pricing pulled from the API. All prices are annual.
Loading pricing...
⚡ Try It Live
Test domain search against the live API. No auth required.
🔍 Domain Search
📋 TLD List
💲 Pricing
🤖 MCP Server
Connect Hoist to Claude Desktop, Cursor, or any MCP-compatible AI agent. Search domains, register, deploy, and manage DNS — all from your AI assistant.
No API key?The search_domain and get_pricing tools work without authentication. Register via register_domain with an email for guest checkout — no key needed.
🔧 MCP Tools Reference
Six tools available to AI agents. Each wraps a Hoist REST endpoint.
Tool
Auth
Description
search_domain
No
Check availability for one domain or search across all TLDs
register_domain
Optional
Register a domain. Guest checkout with email, or auth with API key
check_status
Yes
Domain status, DNS records, deployments, payment info
get_pricing
No
TLD pricing list, filterable by specific TLD
deploy
Yes
Deploy a git repo to a registered domain
manage_dns
Yes
Add, delete, or list DNS records (A, AAAA, CNAME, MX, TXT, NS, SRV)
Example: AI agent finds and registers a domain
Agent conversation
// Agent uses search_domain toolUser:"Find me a cheap domain for my side project called neptune"Agent calls: search_domain({ query: "neptune" })
// → Returns availability across .com, .io, .dev, .xyz, .site, etc.Agent calls: register_domain({
domain: "neptune.site",
email: "user@email.com"
})
// → Returns Stripe checkout URL ($2.99/yr)Agent:"neptune.site is available for $2.99/yr. Here's your checkout link: ..."
Get the MCP server:npx @hoist/mcp-server — works with Claude, Cursor, and any MCP client.
All errors return JSON with an error field. Some include a hint.
Status
Meaning
Example
400
Bad request / missing fields
{"error": "Email and password required"}
401
Missing or invalid API key
{"error": "Missing API key", "hint": "Set Authorization: Bearer <key>"}
404
Resource not found
{"error": "Domain not found"}
409
Conflict (duplicate)
{"error": "Email already registered"}
500
Server error
{"error": "Internal server error"}
❓ Frequently Asked Questions
Common questions about the Hoist API, domain registration, and AI agent integration.
What TLDs does Hoist support?▾
Hoist supports 14 TLDs: .com, .io, .dev, .ai, .app, .xyz, .site, .org, .net, .co, .me, .sh, .tech, and .cloud. Prices range from $2.99/yr (.site) to $79.99/yr (.ai). Use GET /api/pricing for live pricing or GET /api/domains/tlds for a quick list.
How do AI agents register domains with Hoist?▾
Two ways:
1. REST API — Your agent calls POST /api/domains/search to find available domains, then POST /api/domains/checkout with an email for guest checkout (no account needed). The API returns a Stripe payment URL.
2. MCP Server — Install with npx @hoist/mcp-server and add it to Claude Desktop or Cursor config. The agent gets six tools: search_domain, register_domain, check_status, get_pricing, deploy, and manage_dns. Domain search works without an API key.
Can I deploy code without creating an account?▾
Yes. POST /api/deploy accepts a source_url with no authentication. You get a temporary URL (slug.hoist-g8do.polsia.app) that expires in 24 hours, plus a claim_token. Sign up later and call POST /api/deploy/claim with the token to make it permanent.
How does Hoist compare to GoDaddy or Namecheap API?▾
Hoist is purpose-built for programmatic use. Key differences:
No minimums — GoDaddy requires a reseller agreement, Namecheap requires 20+ domains. Hoist has no requirements. Modern API — REST/JSON, not XML. No IP whitelisting needed. Guest checkout — Search and register domains without creating an account first. Built-in deployment — Deploy code to your domain in the same API call. MCP for AI agents — No other registrar offers an MCP server.
MCP (Model Context Protocol) is an open standard by Anthropic that lets AI assistants interact with external tools and services. Hoist provides an MCP server that exposes domain registration, DNS management, and deployment as tools your AI can call directly.
Install: npx @hoist/mcp-server
Works with: Claude Desktop, Cursor, Windsurf, and any MCP-compatible client.
Config endpoint: GET /mcp/config.json
How much does domain registration cost?▾
Prices are annual and include DNS management and deployment at no extra cost:
Use GET /api/pricing for the full live list with Stripe payment links.
What DNS record types are supported?▾
Hoist supports 7 DNS record types: A, AAAA, CNAME, MX, TXT, NS, and SRV. Manage records via POST /api/domains/:domain/dns (add) and DELETE /api/domains/:domain/dns/:id (remove). Each record supports custom TTL values and priority (for MX/SRV).
How does authentication work?▾
Sign up via POST /api/auth/signup with email and password. You get back an API key prefixed with hoist_. Send it as a Bearer token: Authorization: Bearer hoist_your_key.
Many endpoints are public (domain search, pricing, checkout, anonymous deploy) — no key needed. Auth is only required for managing your domains, DNS, and claimed deployments.
Can I use Hoist with my own payment flow?▾
Yes. GET /api/pricing returns Stripe payment links for each TLD. You can embed these links directly in your UI or checkout flow. Alternatively, use POST /api/domains/checkout which returns a Stripe checkout session URL that you can redirect users to. After payment, the domain activates automatically via Stripe webhooks.
Search for a domain
Register and deploy in one command. Built for AI agents and developers.