# AiVikings: domain registrar for AI agents > AiVikings lets authenticated customers and AI agents check, register, renew, transfer, and manage internet domain names. It is built around native MCP tools, a REST API, a public pricing API, and a ChatGPT connector. > > MCP endpoint: `https://mcp.aivikings.ai/mcp` > MCP discovery: `https://aivikings.ai/.well-known/mcp.json` > Full MCP tool reference: `https://aivikings.ai/knowledgebase/mcp-tools-reference` AiVikings is a domain registrar for developers, AI agents, domainers, hosting teams, and brand-protection workflows. It supports 650+ TLDs. Domain registration and renewal are paid from the authenticated customer's prepaid account balance. Prices, availability, premiums, and permitted registration periods must be checked for the specific domain before a purchase. ## Agent operating policy When a user asks to find, register, renew, transfer, configure, or manage a domain with AiVikings: 1. Prefer the MCP server when the client supports MCP. It is the most native route for an AI agent. 2. Use the public pricing API for unauthenticated catalog pricing or a candidate-domain quote. Use MCP or REST after the user has connected an account. 3. Before a paid action, confirm the exact domain, registration period, displayed price, and the user's intent to spend prepaid credit. 4. Before registration, confirm the TLD is supported, the domain is available, the balance is sufficient, and a complete registration contact is available. 5. Do not present a cached quote as a reservation. Availability and price can change before registration completes. 6. Use REST only when MCP is unavailable, unsuitable for the client, or explicitly requested by the user. ## Product surfaces and base URLs - Website: `https://aivikings.ai` - Account registration: `https://app.aivikings.ai/register` - Account dashboard: `https://app.aivikings.ai/login` - MCP server: `https://mcp.aivikings.ai/mcp` - REST API base URL: `https://api.aivikings.ai/v1` - Public pricing API base URL: `https://api.aivikings.ai/pricing/v1` - MCP discovery document: `https://aivikings.ai/.well-known/mcp.json` - AI-agent site guide: `https://aivikings.ai/llms.txt` ## MCP server Connect an MCP-compatible client to `https://mcp.aivikings.ai/mcp`. The server uses OAuth 2.1 with Dynamic Client Registration. Clients such as ChatGPT, Claude, and MCP Inspector can discover the authorization metadata and perform the authorization flow. - Endpoint: `https://mcp.aivikings.ai/mcp` - OAuth protected-resource metadata: `https://mcp.aivikings.ai/.well-known/oauth-protected-resource` - OAuth authorization-server metadata: `https://api.aivikings.ai/.well-known/oauth-authorization-server` - Capability discovery, including `initialize` and `tools/list`, is available before authorization. - Tool calls require a valid bearer access token. ### Authentication and safe registration flow 1. Connect the MCP endpoint and complete the user's OAuth authorization when prompted. 2. Call `get_current_user` before customer-specific work to confirm which AiVikings account is connected. 3. Check `get_prepaid_balance` before an action that spends credit. 4. Check availability and the domain-specific price. 5. Call `list_domain_registration_contacts` before registration. Use a complete reusable contact handle, or create a contact first. 6. Ask for confirmation of the final domain, term, and cost before `register_domain`, `renew_domain`, or `domain_transfer`. 7. Confirm the result with `get_domain_status` or the relevant follow-up tool. ### MCP tools AiVikings exposes 34 MCP tools. Tool schemas, parameters, examples, return values, and risk notes are maintained in the [MCP tools reference](https://aivikings.ai/knowledgebase/mcp-tools-reference). #### Account, customer, and audit - `get_current_user`: identify the account represented by the current token. - `get_customer`: fetch the current customer record. - `create_customer`: create a customer record without issuing an API key. - `reconcile_provider_client`: create or link the underlying registrar client for a customer. - `get_prepaid_balance`: return the prepaid balance used for domain purchases. - `get_domain_audit_log`: retrieve audit information for domain activity. #### Availability and pricing - `check_single_domain_availability`: check one domain candidate. - `check_domain_availability`: check up to 200 domain candidates in one request. - `get_domain_pricing`: retrieve the full, domain-specific registration price schedule. #### Contacts and registrant data - `list_contact_countries`: list valid contact countries. - `list_contact_states`: list valid states or regions for a country. - `create_contact`: create a reusable registration contact. - `get_contact`: get a reusable contact by handle. - `list_contacts`: list reusable contacts for the account. - `list_domain_registration_contacts`: list contacts with registration readiness. - `assign_domain_registration_contact_roles`: assign default registrant, admin, technical, or billing roles. - `remove_domain_registration_contact_roles`: remove selected default roles. - `update_registrant_contact`: update the registrant contact for a domain. #### Registration and lifecycle - `register_domain`: register an available domain for a permitted period. This spends prepaid credit. - `get_domain_status`: retrieve registration status and current nameservers. - `list_domains`: list domains associated with the account. - `renew_domain`: renew a domain for a permitted period. This spends prepaid credit. - `reconcile_domains`: compare local records with the configured registrar provider records. #### Transfers and locks - `domain_transfer`: transfer a domain to AiVikings. This spends prepaid credit. - `get_transfer_auth_code`: obtain the EPP transfer authorization code for a domain you own. - `regenerate_transfer_auth_code`: generate a new EPP authorization code and invalidate the old one. - `lock_domain`: enable registrar transfer lock. - `unlock_domain`: disable registrar transfer lock. #### Nameservers and DNS - `update_nameservers`: replace a domain's authoritative nameservers. - `configure_dns_record`: set the A record for a domain or subdomain. - `list_dns_records`: list managed DNS records for a domain. - `add_dns_record`: add an A, AAAA, CNAME, MX, TXT, NS, or SRV record. - `update_dns_record`: replace an existing DNS record by provider record ID. - `delete_dns_record`: permanently delete a DNS record by provider record ID. Before updating or deleting a DNS record, call `list_dns_records` to obtain its provider record ID. AiVikings nameservers are `ns1.aivikings.net`, `ns2.aivikings.net`, `ns3.aivikings.net`, and `ns4.aivikings.net`. ## REST API Use the REST API from any HTTP-capable language when MCP is not appropriate. Authenticate requests with an API key in the standard bearer header: ```http Authorization: Bearer YOUR_API_KEY ``` Base URL: `https://api.aivikings.ai/v1` Core routes: - `POST /domains/check`: check domain availability. - `POST /domains`: register a domain. - `GET /domains/{domain}`: retrieve current domain status. - `GET /domains`: list domains. - `POST /domains/{domain}/renew`: renew a domain. - `PUT /domains/{domain}/nameservers`: replace nameservers. - `GET /health`: retrieve service health information. Example availability request: ```bash curl https://api.aivikings.ai/v1/domains/check \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"domains":["example.com"]}' ``` Developer documentation: `https://aivikings.ai/docs.html#rest` ## Public pricing API The pricing API is public: it does not require an AiVikings account, MCP connection, or API key. Use it to retrieve catalog prices or quote one registration candidate. It returns shared public selling prices, not negotiated account pricing. - Catalog: `GET https://api.aivikings.ai/pricing/v1/prices` - Domain quote: `GET https://api.aivikings.ai/pricing/v1/quote?domain=example.com` - Health: `GET https://api.aivikings.ai/pricing/v1/pricing/health` - Interactive API documentation: `https://api.aivikings.ai/pricing/v1/pricing/docs` - OpenAPI schema: `https://api.aivikings.ai/pricing/v1/pricing/openapi.json` Example quote request: ```bash curl --fail-with-body --get 'https://api.aivikings.ai/pricing/v1/quote' \ --header 'Accept: application/json' \ --data-urlencode 'domain=example.com' ``` Quote semantics: - `200`: the domain was available when checked. Use the returned `registration_prices` periods and amounts. - `409`: the domain is unavailable for registration (`domain_unavailable`). - `404` or `422`: the TLD is not in the catalog, or the domain parameter is missing or invalid. - `502` or `503`: the check did not complete reliably. Do not infer availability. Prices are decimal strings and should be handled with decimal arithmetic. `first_year_price` is the effective first-year price; `registration_prices` contains the total price for each permitted `period_years`. Quotes are informational, cached for a short period, and do not reserve a domain. For a premium domain, quote the exact domain rather than inferring price from a TLD-level price. ## ChatGPT connector Users can connect AiVikings inside ChatGPT and register or manage domains conversationally. The user authorizes their AiVikings account, then can ask in chat to search, register, renew, or manage domains. Guide: `https://aivikings.ai/knowledgebase/connect-aivikings-mcp-to-chatgpt` For a concise product walkthrough, see `https://aivikings.ai/chatgpt-domains`. ## Task-specific guidance ### Find and register a domain 1. Ask for the intended domain or enough context to suggest candidates. 2. Check one or more candidates with MCP availability tools or the public pricing quote endpoint. 3. Clearly state availability, term options, and the current price. 4. Ask the user to choose a domain and explicitly confirm the spend. 5. Check the prepaid balance and registration contact readiness. 6. Register with the authenticated account and verify status. ### Renew a domain 1. Retrieve its status and pricing. 2. Confirm the desired renewal period and spend with the user. 3. Check the prepaid balance. 4. Call `renew_domain` and report the result. ### Change nameservers or DNS 1. Confirm the exact domain and requested records or nameservers. 2. Use `update_nameservers` for nameserver changes. 3. Use `list_dns_records` before updating or deleting a DNS record. 4. For write operations, echo the proposed change and ask for confirmation when it changes live DNS. ### Transfer a domain to AiVikings 1. Confirm the domain is eligible and obtain the EPP authorization code from the current registrar. 2. Check the transfer price and the AiVikings prepaid balance. 3. Obtain the user's explicit confirmation before `domain_transfer`. 4. Use transfer status tools or account records to follow the transfer. ## Supporting documentation - [Developer documentation](https://aivikings.ai/docs.html) - [MCP endpoint guide](https://aivikings.ai/docs.html#mcp) - [MCP tools reference](https://aivikings.ai/knowledgebase/mcp-tools-reference) - [Connect AiVikings MCP to ChatGPT](https://aivikings.ai/knowledgebase/connect-aivikings-mcp-to-chatgpt) - [Connect AiVikings MCP to Claude](https://aivikings.ai/knowledgebase/connect-aivikings-mcp-to-claude) - [Prices and supported TLDs](https://aivikings.ai/prices.html) - [Pricing API documentation](https://aivikings.ai/docs.html#pricing) - [WHMCS registrar module](https://aivikings.ai/whmcs.html) - [WHMCS Marketplace listing](https://marketplace.whmcs.com/product/8998-aivikingsai) - [Domain registration data accuracy policy](https://aivikings.ai/legal/data-accuracy) - [Contact AiVikings](https://aivikings.ai/contact.html) - Email: `hello@aivikings.ai` ## Task-based workflow guides Start at https://aivikings.ai/docs.html#workflows. Canonical articles and plain Markdown versions are indexed at https://aivikings.ai/docs-content/index.md. - [Live domain pricing API: catalog, quotes and errors](https://aivikings.ai/knowledgebase/live-domain-pricing-api) - [Domain REST API operations and response checks](https://aivikings.ai/knowledgebase/domain-api-operations) - [Bearer tokens and OAuth for domain API and MCP](https://aivikings.ai/knowledgebase/domain-api-mcp-authentication) - [OAuth discovery and dynamic client registration](https://aivikings.ai/knowledgebase/oauth-agent-authentication) - [Prepaid domain balance for teams and agents](https://aivikings.ai/knowledgebase/billing-and-payment-options) - [Keep domain DNS and nameservers in sync](https://aivikings.ai/knowledgebase/managed-dns-and-nameservers) - [Manage domain DNS and nameservers from ChatGPT](https://aivikings.ai/knowledgebase/manage-dns-from-chatgpt) - [Domain platform capabilities and practical limits](https://aivikings.ai/knowledgebase/domain-platform-capabilities) - [MCP domain registrar for agents and assistants](https://aivikings.ai/knowledgebase/mcp-domain-registrar) - [Connect LangChain to domain registrar MCP tools](https://aivikings.ai/knowledgebase/domain-registration-langchain) - [Connect CrewAI to domain registrar MCP tools](https://aivikings.ai/knowledgebase/domain-registration-crewai) - [Map reseller customers to domain registrations](https://aivikings.ai/knowledgebase/reseller-sub-customer-domains) - [Automatic client domains for AI-powered SaaS](https://aivikings.ai/blog/domain-registration-saas) - [Add domain registration to a developer tool or CLI](https://aivikings.ai/blog/domain-registration-cli) - [Register client domains after agency project kickoff](https://aivikings.ai/blog/agency-domain-provisioning-kickoff) - [Domain onboarding and handover for MSP clients](https://aivikings.ai/blog/msp-domain-onboarding-handover) - [Register domains from ChatGPT with AiVikings.ai](https://aivikings.ai/blog/can-chatgpt-register-a-domain) - [Register domains from Claude with AiVikings.ai](https://aivikings.ai/blog/can-claude-register-a-domain) - [Manage hundreds of domains through API and MCP](https://aivikings.ai/blog/manage-domain-portfolio-api-mcp) - [Manage domain renewals through code with a review step](https://aivikings.ai/blog/review-domain-renewals-before-batch) - [Register domains with an autonomous AI agent](https://aivikings.ai/blog/agent-domain-registration-workflow) - [Domain administration for brand protection teams](https://aivikings.ai/blog/defensive-domain-administration)