Billing and Purchases
Review your team's billing charges and contract commitments. Get a domain registration quote, review its terms, and explicitly approve it before confirming the purchase. MCP does not purchase credits, subscriptions, or add-ons.
Register (purchase) a single domain for a team. The quote (get_purchase_quote with product: domain) checks availability and returns the live purchasePrice for the requested term. The confirm step must echo that price back as expectedPrice, and the order is rejected if the live price no longer matches, so you are never charged more than the amount you saw quoted.
Pass the registration term (years) from the quote and the full registrant (contact) details when confirming the purchase.
Domain registration completes asynchronously: a successful confirm step returns an orderId that you can use with get_domain_order to check whether the registration completed.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
domain | string | Yes | - | The domain to register, e.g. "example.com". |
years | integer | No | - | Registration term in years. Required on confirm. must match the term shown in the quote. Maximum: 10. |
autoRenew | boolean | No | - | Whether to auto-renew at the end of the term. Defaults to true. |
expectedPrice | number | No | - | Required on confirm: the purchasePrice (USD) from the quote. The server rejects the order if it no longer matches the live price. |
contact | object | No | - | Registrant (WHOIS) contact. Not needed for the quote. REQUIRED on confirm. All fields must be provided. |
teamId | string | Yes | - | The team ID or slug. Use the team that owns the resource. |
confirm | boolean | No | - | Set true to execute the purchase. Requires the idempotencyKey from get_purchase_quote. |
idempotencyKey | string | No | - | The idempotencyKey returned by get_purchase_quote. |
The contact object requires the following fields with an optional companyName:
| Field | Type | Description |
|---|---|---|
firstName | string | The first name of the domain registrant |
lastName | string | The last name of the domain registrant |
email | string | The email address of the domain registrant |
phone | string | The phone number in E.164 format (e.g., +14155550123) |
address1 | string | The street address of the domain registrant |
city | string | The city of the domain registrant |
state | string | The state/province of the domain registrant |
zip | string | The postal code of the domain registrant |
country | string | Two-letter ISO country code (e.g., US) |
companyName | string | The company name of the domain registrant (optional) |
Sample prompt: "Buy the domain mydomain.com"
Get the status of a domain purchase order returned by buy_domain, to confirm whether the asynchronous registration completed. It is read-only action.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
orderId | string | Yes | - | The orderId returned by buy_domain. |
teamId | string | No | - | The team ID or slug. Use the team that owns the resource. |
Sample prompt: "Did my domain purchase go through?"
Get a read-only domain registration quote for the selected team. Checks availability and pricing and returns disclosures and a signed quote token valid for five minutes. Present the price, taxes and fees, payment method, registration and auto-renew terms for explicit user approval before calling buy_domain. Does not register, reserve, or charge for a domain. Digital subscriptions, credits, and add-ons cannot be quoted or purchased through this tool.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
product | string | Yes | - | Only domain registration quotes are available. Value: "domain". |
teamId | string | Yes | - | The team ID or slug. Use the team that owns the resource. |
domain | string | Yes | - | The domain to register, e.g. "example.com". |
years | integer | No | - | Registration term in years. Defaults to the TLD minimum. Maximum: 10. |
autoRenew | boolean | No | - | Whether to auto-renew at term end. Defaults to true. Not part of the signed quote token. |
How purchases work
- Call this tool with
product: "domain", the team, domain, and registration term. It returns a read-only quote and a signedidempotencyKey. - Review the price, taxes and fees, payment method, registration terms, and auto-renew setting. Explicitly approve the purchase.
- Call
buy_domainwithconfirm: true, the quoted terms, contact details, and the quote token. An expired or mismatched quote requires a new quote. - Use
get_domain_orderto check registration status. An accepted order does not mean registration has finished.
This workflow quotes and purchases domains only. MCP does not quote or purchase credits, subscriptions, or add-ons.
List FOCUS billing charges.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
from | string | Yes | Inclusive start of the date range as an ISO 8601 date-time string in UTC. |
to | string | Yes | Exclusive end of the date range as an ISO 8601 date-time string in UTC. |
teamId | string | No | Team ID to use for this operation. |
slug | string | No | Team slug to use for this operation. Use instead of teamId. |
List FOCUS contract commitments.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
teamId | string | No | Team ID to use for this operation. |
slug | string | No | Team slug to use for this operation. Use instead of teamId. |
Was this helpful?