A public API and MCP server for the Ex2 catalogue
Plans, prices, domain names and their availability, in JSON for your code or as tools for AI assistants. Read-only and free, with no account and no key.
Catalogue API
Every plan with its prices, features and order link, in CAD, EUR or USD, in English or French./api/v1
MCP server
The same catalogue as tools for Claude, ChatGPT, Cursor and other assistants./mcp
Domain availability
Whether a name is free right now, with its one-year price and the link to register it./api/v1/domains/availability
llms.txt
An index of the site for language models: the pages that matter and where the live data is./llms.txt
Connect an AI assistant
With the MCP server (Model Context Protocol), an assistant answers with today’s plans and prices and real order links, instead of figures it remembers.
Claude Code
In a terminal:
claude mcp add --transport http ex2 https://www.ex2.com/mcpClaude, ChatGPT and other apps
Add a custom connector (a remote MCP server) with this URL, without authentication:
https://www.ex2.com/mcpCursor, VS Code and other editors
In the editor’s MCP configuration, for example Cursor’s .cursor/mcp.json:
{
"mcpServers": {
"ex2": { "url": "https://www.ex2.com/mcp" }
}
}The tools
All read-only: they cannot order or change anything.
list_product_lines- The product lines (green hosting, WordPress, email, VPS…) with their pages and plan ids.
list_plans- Plans with their prices per billing cycle, first-year discount and main features; all of them or one product line.
get_plan- One plan with its full specification table.
compare_plans- Two to ten plans side by side, one row per specification.
get_domain_pricing- One-year register, transfer and renewal prices per domain extension.
check_domain- Whether a domain name can be registered now, its prices and the link to order it (or to transfer it, when taken).
Streamable HTTP, no session, no authentication. Protocol versions 2025-03-26, 2025-06-18, 2025-11-25, 2026-07-28.
The catalogue API
JSON over HTTPS, GET only, open to any origin (CORS). Every answer names its currency; amounts exclude taxes.
| Endpoint | Answer | Try it |
|---|---|---|
GET /api/v1 | What the API offers, its parameters and the product lines with their plan ids. | Try it |
GET /api/v1/plans | Every plan with its prices, first-year discount, features and order link. line=email keeps one product line. | Try it |
GET /api/v1/plans/{id} | One plan, with its specification table. | Try it |
GET /api/v1/compare | Two to ten plans side by side: plans=id1,id2. | Try it |
GET /api/v1/domains/pricing | One-year register, transfer and renewal price per extension: tld=com,ca or all of them. | Try it |
GET /api/v1/domains/availability | Whether domain=… can be registered now, its prices and the cart link. | Try it |
Parameters on every endpoint: currency (CAD, EUR or USD; USD by default) and lang (en or fr; en by default).
Example
The price of a .com, in your currency (a live answer):
curl "https://www.ex2.com/api/v1/domains/pricing?tld=com¤cy=USD"{
"currency": "USD",
"period_years": 1,
"order_url": "https://www.ex2.com/clients/cart.php?a=add&domain=register¤cy=7&language=english",
"domains": [
{
"tld": ".com",
"register": 13.410000000000000142108547152020037174224853515625,
"transfer": 13.410000000000000142108547152020037174224853515625,
"renew": 15.6500000000000003552713678800500929355621337890625
}
]
}Good to know
No key, no account
Everything here is public. Nothing can be ordered or changed through it: orders go through the cart, accounts through the client area.
Live prices
Read from Ex2’s billing system and kept 10 minutes at most (5 for a domain check). Cache them on your side too.
Fair use
Domain availability: 30 checks per 10 minutes per address, 120 through the MCP server. Over that, HTTP 429 with Retry-After.
Stable
Fields are added, never renamed or removed. A breaking change would come as /api/v2.
Two languages, three currencies
Names, features and links in English or French; prices in CAD, EUR or USD, as the product pages show them.
For language models
/llms.txt describes the site and its products for AI agents, and points them to the API and the MCP server.
Questions
About the API and the MCP server.
Do I need an account or an API key?
No. The API, the MCP server and llms.txt are public and read-only.
Can an assistant order a plan or manage my services through it?
No. It reads the public catalogue only, and gives the cart link to order. Your services are managed in the client area.
Is a domain shown as available sure to be mine?
Not quite: the check is a live WHOIS lookup, kept 5 minutes. Someone else can register the name in the meantime, and a premium or reserved name can still be refused at checkout.
Are the prices the ones on the site?
Yes: the same billing system and the same first-year discounts as the product pages. Prices exclude taxes.
Which AI assistants work with the MCP server?
Any client that supports remote MCP servers over Streamable HTTP: Claude, Claude Code, ChatGPT, Cursor, VS Code and others. No authentication to set up.
Something does not work as described?
Open a support ticket with the URL you called and the answer you got.