Search and buy domain names: live prices, buy links, renewals, transfers and approved DNS changes.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add a preset's DNS records to one domain this organization manages (records that already exist are skipped). Applies at once when you act for an owner or admin and the workspace lets agents apply changes (the default); otherwise it waits in list_approvals. workflow.state says which. undo_dns_apply takes it back.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Tool list last changed Oct 26, 2026.
Add a preset's DNS records to one domain this organization manages (records that already exist are skipped). Applies at once when you act for an owner or admin and the workspace lets agents apply changes (the default); otherwise it waits in list_approvals. workflow.state says which. undo_dns_apply takes it back.
| Argument | Type | Description |
|---|---|---|
| domain* | string | |
| preset* | string | |
| target | string |
{
"type": "object",
"required": [
"domain",
"preset"
],
"properties": {
"domain": {
"type": "string"
},
"preset": {
"type": "string"
},
"target": {
"type": "string"
}
},
"additionalProperties": false
}Apply a DNS preset (list_dns_presets) or a saved template (tpl_…) to up to 100 domains at once; existing records are skipped. dry_run: true shows what each domain would get. Applies at once when you act for an owner or admin and the workspace lets agents apply changes.
| Argument | Type | Description |
|---|---|---|
| preset* | string | |
| target | string | |
| domains* | array | |
| dry_run | boolean |
{
"type": "object",
"required": [
"domains",
"preset"
],
"properties": {
"preset": {
"type": "string"
},
"target": {
"type": "string"
},
"domains": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"minItems": 1
},
"dry_run": {
"type": "boolean"
}
},
"additionalProperties": false
}Cancel a registration made in the last few days (the registry's add grace period, about 5 days): the domain is deleted and the payment refunded. Applies at once when you act for an owner or admin and the workspace lets agents apply changes (the default); otherwise it waits in list_approvals. workflow.state says which.
| Argument | Type | Description |
|---|---|---|
| domain* | string |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
},
"additionalProperties": false
}Cancel a transfer: direction "in" stops one coming to Nymwell (the payment is refunded), "out" stops a domain leaving for another registrar. Applies at once when you act for an owner or admin and the workspace lets agents apply changes (the default); otherwise it waits in list_approvals. workflow.state says which.
| Argument | Type | Description |
|---|---|---|
| domain* | string | |
| direction* | any |
{
"type": "object",
"required": [
"domain",
"direction"
],
"properties": {
"domain": {
"type": "string"
},
"direction": {
"enum": [
"in",
"out"
]
}
},
"additionalProperties": false
}Change DNSSEC, URL forwarding, email forwarding or a vanity nameserver. Applies at once when you act for an owner or admin and the workspace lets agents apply changes (the default); otherwise it waits in list_approvals. workflow.state says which. data: dnssec {key_tag, algorithm, digest_type, digest} (delete: digest); url_forwarding {host, forwards_to, type: masked|redirect|302, title?, meta?} (delete: host); email_forwarding {email_box, email_to} (delete: email_box); vanity_nameservers {hostname, ips} (delete: hostname).
| Argument | Type | Description |
|---|---|---|
| data* | object | |
| domain* | string | |
| service* | any | |
| operation* | any |
{
"type": "object",
"required": [
"domain",
"service",
"operation",
"data"
],
"properties": {
"data": {
"type": "object"
},
"domain": {
"type": "string"
},
"service": {
"enum": [
"dnssec",
"url_forwarding",
"email_forwarding",
"vanity_nameservers"
]
},
"operation": {
"enum": [
"create",
"update",
"delete"
]
}
},
"additionalProperties": false
}Checks, read-only. kind "dns": website, www, email (MX/SPF/DKIM/DMARC) and DNSSEC findings with one-step fixes. kind "ssl": does HTTPS work, which certificate authorities issued certificates (certificate transparency logs), CAA suggestions. kind "transfer": can these names (domains, up to 20) move to Nymwell now, grouped ready / needs action / not possible, with reasons.
| Argument | Type | Description |
|---|---|---|
| kind* | any | |
| domain | string | |
| domains | array |
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"dns",
"ssl",
"transfer"
]
},
"domain": {
"type": "string"
},
"domains": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20
}
},
"additionalProperties": false
}Before a sensitive action, ask whether it can happen now. For transfer_out, renew and cancel it returns state (eligible, action_required, blocked, in_progress), reasons with a code, the source (registry, namecom, nymwell), an until date when the block ends, the next action, and what the action requires (roles, Google confirmation, approval, payment). Staging checks the same rules again.
| Argument | Type | Description |
|---|---|---|
| action | string | |
| domain* | string |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"action": {
"enum": [
"transfer_out",
"renew",
"cancel",
"move"
],
"type": "string"
},
"domain": {
"type": "string"
}
},
"additionalProperties": false
}AI apps connected over OAuth. action "list"; "revoke" with id disconnects one (needs account:manage).
| Argument | Type | Description |
|---|---|---|
| id | string | |
| action* | any |
{
"type": "object",
"required": [
"action"
],
"properties": {
"id": {
"type": "string"
},
"action": {
"enum": [
"list",
"revoke"
]
}
},
"additionalProperties": false
}Send Nymwell support a message (category: domain, dns, billing, transfer, account, other; optional domain). The team is alerted at once and replies to the email of the person you act for. action "notices" lists what Nymwell told the workspace (security changes, renewals, price changes).
| Argument | Type | Description |
|---|---|---|
| action* | any | |
| domain | string | |
| message | string | |
| category | any |
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"send",
"notices"
]
},
"domain": {
"type": "string"
},
"message": {
"type": "string",
"maxLength": 5000
},
"category": {
"enum": [
"domain",
"dns",
"billing",
"transfer",
"account",
"other"
]
}
},
"additionalProperties": false
}Approve or reject a change waiting in list_approvals (one prepared by a teammate or another agent). Needs the account:manage scope and an owner or admin behind you. An approved change is applied at once and recorded in the person's name, with you named.
| Argument | Type | Description |
|---|---|---|
| comment | string | |
| decision* | any | |
| approval_request_id* | string |
{
"type": "object",
"required": [
"approval_request_id",
"decision"
],
"properties": {
"comment": {
"type": "string",
"maxLength": 500
},
"decision": {
"enum": [
"approved",
"rejected"
]
},
"approval_request_id": {
"type": "string"
}
},
"additionalProperties": false
}Saved DNS templates. action "list"; "save" with name and records (or from_domain to copy a domain's records); "delete" with id.
| Argument | Type | Description |
|---|---|---|
| id | string | |
| name | string | |
| action* | any | |
| records | array | |
| from_domain | string |
{
"type": "object",
"required": [
"action"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"action": {
"enum": [
"list",
"save",
"delete"
]
},
"records": {
"type": "array",
"items": {
"type": "object"
},
"maxItems": 50
},
"from_domain": {
"type": "string"
}
},
"additionalProperties": false
}action "export": the domain's records as a BIND zone file. action "import": a zone file becomes one change set of creates and deletes (dry_run: true only shows the plan).
| Argument | Type | Description |
|---|---|---|
| zone | string | |
| action* | any | |
| domain* | string | |
| dry_run | boolean |
{
"type": "object",
"required": [
"action",
"domain"
],
"properties": {
"zone": {
"type": "string",
"maxLength": 200000
},
"action": {
"enum": [
"export",
"import"
]
},
"domain": {
"type": "string"
},
"dry_run": {
"type": "boolean"
}
},
"additionalProperties": false
}Everything public about one domain, wherever it is registered: registry record (registrar, created, expires, statuses, transfer lock, DNSSEC), DNS (nameservers and where it is hosted, A/AAAA, MX, SPF, DMARC, parked for sale), whether HTTPS answers, and the next step: a buy_url for a name with no record, or a transfer_url (and when a transfer becomes possible) for a registered one. No sign-in needed.
| Argument | Type | Description |
|---|---|---|
| domain* | string |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
},
"additionalProperties": false
}Move a domain to another Nymwell workspace (it stays at the registrar). action "list" (incoming and outgoing); "request" with domain and to_email (an owner or admin there accepts within 5 days; possible 10 days after registration); "accept" or "decline" an incoming move (id) sent to the person you act for; "cancel" an outgoing one (id).
| Argument | Type | Description |
|---|---|---|
| id | string | |
| action* | any | |
| domain | string | |
| to_email | string |
{
"type": "object",
"required": [
"action"
],
"properties": {
"id": {
"type": "string"
},
"action": {
"enum": [
"list",
"request",
"accept",
"decline",
"cancel"
]
},
"domain": {
"type": "string"
},
"to_email": {
"type": "string"
}
},
"additionalProperties": false
}The domain's own page: "for_sale" (price, minimum offer, offers reach the owner) or "parked". action "get" shows it and the offers; "save" turns it on or off (enabled) and changes mode, price_minor, min_offer_minor, headline or message; fields left out keep what is saved.
| Argument | Type | Description |
|---|---|---|
| mode | any | |
| action* | any | |
| domain* | string | |
| enabled | boolean | |
| message | string | |
| headline | string | |
| price_minor | integer | |
| min_offer_minor | integer |
{
"type": "object",
"required": [
"action",
"domain"
],
"properties": {
"mode": {
"enum": [
"for_sale",
"parked"
]
},
"action": {
"enum": [
"get",
"save"
]
},
"domain": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"message": {
"type": "string"
},
"headline": {
"type": "string"
},
"price_minor": {
"type": "integer"
},
"min_offer_minor": {
"type": "integer"
}
},
"additionalProperties": false
}One look at the workspace: domain counts, what needs attention, recent notices, whether a card is saved, and the agent policy (do your changes apply at once, and how much you may charge to the saved card per order and per 30 days).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Live state of a domain this organization holds through Nymwell: expiry, renewal price, transfer lock, WHOIS privacy, registry locks, nameservers, contact verification and any transfer in progress.
| Argument | Type | Description |
|---|---|---|
| domain* | string |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
},
"additionalProperties": false
}Read where a purchase is: awaiting_payment, registering, registered, needs_attention or failed_refunded, with the DNS records that were created. workflow.state says what to do: in_progress or blocked = check again later; action_required = give workflow.action.url to the person; succeeded or failed = stop (failed carries workflow.error).
| Argument | Type | Description |
|---|---|---|
| order_id* | string |
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "string"
}
},
"additionalProperties": false
}Lock the exact price for one domain: action "register" (default) for an available name, "renew" for a domain this organization holds, or "transfer" to bring one from another registrar (adds one year; the owner then submits the auth code in the console). Valid for 40 minutes; purchase_domain charges exactly this.
| Argument | Type | Description |
|---|---|---|
| years | integer | |
| action | any | |
| domain* | string |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"years": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"action": {
"enum": [
"register",
"renew",
"transfer"
]
},
"domain": {
"type": "string"
}
},
"additionalProperties": false
}Whether this organization has its registrant on file, and its details. The customer is the legal holder of every domain; save_registrant sets it and accepts the registration terms for the person you act for, before the first registration or transfer.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}What an ending costs (registration, renewal, transfer) and its rules: allowed terms, days left to renew after expiry, WHOIS privacy, DNSSEC, HSTS preload. Pass up to 10 tlds for live answers, or none for every ending Nymwell sells (the same list as https://nymwell.com/tlds.json). No sign-in needed.
| Argument | Type | Description |
|---|---|---|
| tlds | array |
{
"type": "object",
"properties": {
"tlds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10
}
},
"additionalProperties": false
}Changes waiting for approval, and the ones already decided, each with workflow.state (action_required, in_progress, succeeded, failed). decide_approval approves or rejects one when you act for an owner or admin.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Read recent immutable audit evidence for the signed-in Nymwell organization: who (person, API key, OAuth app, schedule, registrar), how (console, API, MCP) and the outcome, with a summary. Reads are left out unless include_reads is true.
| Argument | Type | Description |
|---|---|---|
| days | integer | |
| actor | string | |
| limit | integer | |
| domain | string | |
| outcome | string | |
| category | string | |
| include_reads | boolean |
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"maximum": 365,
"minimum": 1
},
"actor": {
"enum": [
"person",
"api_key",
"oauth_app",
"system",
"registrar"
],
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1
},
"domain": {
"type": "string"
},
"outcome": {
"enum": [
"succeeded",
"failed",
"denied"
],
"type": "string"
},
"category": {
"enum": [
"domain",
"dns",
"billing",
"access",
"other"
],
"type": "string"
},
"include_reads": {
"type": "boolean"
}
},
"additionalProperties": false
}List the DNS presets purchase_domain and apply_dns_preset accept (Vercel, Netlify, GitHub Pages, Cloudflare Pages, Agent Lab Deploy, Google Workspace email). No sign-in needed.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List DNS records for a managed domain. refresh: true first pulls the records from the registrar (including ones changed outside Nymwell).
| Argument | Type | Description |
|---|---|---|
| domain* | string | |
| refresh | boolean |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
},
"refresh": {
"type": "boolean"
}
},
"additionalProperties": false
}Read DNSSEC DS records, URL forwarding, email forwarding or branded (vanity) nameservers for a domain, live from the registrar.
| Argument | Type | Description |
|---|---|---|
| domain* | string | |
| service* | any |
{
"type": "object",
"required": [
"domain",
"service"
],
"properties": {
"domain": {
"type": "string"
},
"service": {
"enum": [
"dnssec",
"url_forwarding",
"email_forwarding",
"vanity_nameservers"
]
}
},
"additionalProperties": false
}List domains visible to the signed-in Nymwell organization.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List invoice metadata for the signed-in Nymwell organization.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List members and roles for the signed-in Nymwell organization.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Recent orders (registrations, renewals, transfers) with status, amount, how they were paid and by whom.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Transfers into Nymwell for this organization and where each one is.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Registrant emails still waiting for ICANN verification on this organization's domains, with the deadline. A domain whose registrant misses it stops resolving.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}API keys of this workspace. action "list" (metadata only, never secrets); "create" with name, scopes (no wider than yours), expires_in_days (1-90), optional domain_allowlist and ip_allowlist; the secret is returned once. "revoke" with id. create and revoke need account:manage.
| Argument | Type | Description |
|---|---|---|
| id | string | |
| name | string | |
| action* | any | |
| scopes | array | |
| environment | any | |
| ip_allowlist | array | |
| expires_in_days | integer | |
| domain_allowlist | array |
{
"type": "object",
"required": [
"action"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"action": {
"enum": [
"list",
"create",
"revoke"
]
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"environment": {
"enum": [
"test",
"live"
]
},
"ip_allowlist": {
"type": "array",
"items": {
"type": "string"
}
},
"expires_in_days": {
"type": "integer",
"maximum": 90,
"minimum": 1
},
"domain_allowlist": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}action "list" members and pending invitations; "invite" email with role (admin, billing_admin, domain_manager, dns_operator, viewer). Inviting needs account:manage.
| Argument | Type | Description |
|---|---|---|
| role | any | |
| string | ||
| action* | any |
{
"type": "object",
"required": [
"action"
],
"properties": {
"role": {
"enum": [
"admin",
"billing_admin",
"domain_manager",
"dns_operator",
"viewer"
]
},
"email": {
"type": "string"
},
"action": {
"enum": [
"list",
"invite"
]
}
},
"additionalProperties": false
}The optional Managed Domain plan (managed DNS, SSL for secure redirects, renewal management; yearly on the saved card). action "get" shows price, status and the consent text; "enable" charges the first year (send accept_charge: true after the person agreed to the consent text; within the agent spending limits); "disable" stops renewal (no refund).
| Argument | Type | Description |
|---|---|---|
| action* | any | |
| domain* | string | |
| accept_charge | boolean |
{
"type": "object",
"required": [
"action",
"domain"
],
"properties": {
"action": {
"enum": [
"get",
"enable",
"disable"
]
},
"domain": {
"type": "string"
},
"accept_charge": {
"type": "boolean"
}
},
"additionalProperties": false
}Read Nymwell backend, database and provider-adapter readiness.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Buy what a quote priced (registration, renewal or transfer). You act for the person who connected you: when the workspace has a saved card and the amount is inside the agent spending limits (get_agent_policy), the card is charged at once and the order runs; the person is told. Otherwise (no card, over a limit, or pay_with "checkout") it returns a checkout_url and checkout_reason: give the link to the person to pay. The registrar call (and, for a registration, the DNS records you pass) then runs on its own. Poll get_order for the result. Nobody but a person can add or change the card.
| Argument | Type | Description |
|---|---|---|
| dns | object | Records to create right after registration: a preset from list_dns_presets, optional records, or both. |
| locale | any | Language of the page the person returns to after paying |
| pay_with | any | saved_card (default) charges the saved card within the agent limits; checkout always returns a link for the person |
| quote_id* | string | |
| idempotency_key | string | |
| tld_requirements | object | Extra registry fields some country endings need (see get_tld_info) |
| accept_trademark_notice | boolean | true only after the person has read the trademark notice get_quote returned |
Unlock a domain and get its transfer auth code, to move it to another registrar. When applied, the code is in the result (shown once; owners get a notice). Not possible within 60 days of a registration or transfer. Applies at once when you act for an owner or admin and the workspace lets agents apply changes (the default); otherwise it waits in list_approvals. workflow.state says which.
| Argument | Type | Description |
|---|---|---|
| domain* | string |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
},
"additionalProperties": false
}Send the ICANN verification email again for one verification_id from list_unverified_contacts.
| Argument | Type | Description |
|---|---|---|
| verification_id* | string |
{
"type": "object",
"required": [
"verification_id"
],
"properties": {
"verification_id": {
"type": "string"
}
},
"additionalProperties": false
}Set who every new domain is registered to (the legal holder) and accept the registration terms for the person you act for. Read links from get_registrant first and tell the person. contact: firstName, lastName, companyName?, address1, address2?, city, state?, zip?, country (2 letters), email, phone (+886.912345678). Needs account:manage.
| Argument | Type | Description |
|---|---|---|
| contact* | object | |
| accept_agreement* | boolean |
{
"type": "object",
"required": [
"contact",
"accept_agreement"
],
"properties": {
"contact": {
"type": "object"
},
"accept_agreement": {
"type": "boolean"
}
},
"additionalProperties": false
}The fast lookup, for many names at once (up to 500, or one name across every ending with tlds ["all"]): taken or not from DNS and public registry records (RDAP), with registrar and expiry, parked-for-sale, and for names with no record the ending's list price and a buy_url. Costs no registrar call, so use it first and widely; it is NOT availability, so confirm the names you will offer with search_domains (the registrar's answer and exact price). If the call runs out of lookups, pending lists the names to send again. No sign-in needed.
| Argument | Type | Description |
|---|---|---|
| name | string | A name without an ending, e.g. noren |
| tlds | array | Endings to try with name; ["all"] for every ending Nymwell sells; defaults to com, ai, dev, app, io, co, tw |
| details | boolean | Fetch the registry record for taken names too (registrar, dates). Default: on for up to 20 names. |
| domains | array |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A name without an ending, e.g. noren"
},
"tlds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 500,
"description": "Endings to try with name; [\"all\"] for every ending Nymwell sells; defaults to com, ai, dev, app, io, co, tw"
},
"details": {
"type": "boolean",
"description": "Fetch the registry record for taken names too (registrar, dates). Default: on for up to 20 names."
},
"domains": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 500,
"minItems": 1
}
},
"additionalProperties": false
}The authoritative check: which domain names can be registered and what they cost, from the live registrar (not DNS or RDAP). Call it on the few names you will offer, right before get_quote; for many names, run screen_domains first (it is free and wide). Up to 20 names: exact domains, or a name plus endings. If Nymwell is not connected to a live registrar, this tool refuses sandbox data; use screen_domains for a public-record first pass. Prices are USD for the minimum term; get_quote gives the exact price for a chosen term. Each name has tier (standard or premium) when it can be registered, or reason (domain_unavailable, extension_not_supported, extension_disallows_registration) when it cannot. No sign-in needed.
| Argument | Type | Description |
|---|---|---|
| name | string | A name without an ending, e.g. orbitnotes |
| tlds | array | Endings to try with name, e.g. ["com","ai","dev"] |
| domains | array |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A name without an ending, e.g. orbitnotes"
},
"tlds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"description": "Endings to try with name, e.g. [\"com\",\"ai\",\"dev\"]"
},
"domains": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"minItems": 1
}
},
"additionalProperties": false
}Turn Nymwell's auto-renew on or off for a domain. When it is on and the workspace has a saved card, Nymwell charges that card for a one-year renewal from 14 days before expiry (retrying 7, 3 and 1 day before); without a card it sends reminders instead. The answer says which applies. The registrar's own auto-renew always stays off.
| Argument | Type | Description |
|---|---|---|
| domain* | string | |
| enabled* | boolean |
{
"type": "object",
"required": [
"domain",
"enabled"
],
"properties": {
"domain": {
"type": "string"
},
"enabled": {
"type": "boolean"
}
},
"additionalProperties": false
}Change contacts. registrant is required (it is the legal holder); admin, tech and billing are optional. A new registrant must confirm by email within 15 days or the domain stops resolving. Applies at once when you act for an owner or admin and the workspace lets agents apply changes (the default); otherwise it waits in list_approvals. workflow.state says which.
| Argument | Type | Description |
|---|---|---|
| domain* | string | |
| contacts* | object |
{
"type": "object",
"required": [
"domain",
"contacts"
],
"properties": {
"domain": {
"type": "string"
},
"contacts": {
"type": "object",
"required": [
"registrant"
],
"properties": {
"tech": {
"type": "object",
"required": [
"firstName",
"lastName",
"address1",
"city",
"country",
"email",
"phone"
],
"properties": {
"fax": {
"type": "string"
},
"zip": {
"type": "string"
},
"city": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string",
"description": "Like +886.912345678"
},
"state": {
"type": "string"
},
"country": {
"type": "string",
"description": "Two-letter code"
},
"address1": {
"type": "string"
},
"address2": {
"type": "string"
},
"lastName": {
"type": "string"
},
"firstName": {
"type": "string"
},
"companyName": {
"type": "string"
}
},
"additionalProperties": false
},
"admin": {
"type": "object",
"required": [
"firstName",
"lastName",
"address1",
"city",
"country",
"email",
"phone"
],
"properties": {
"fax": {
"type": "string"
},
"zip": {
"type": "string"
},
"city": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string",
"description": "Like +886.912345678"
},
"state": {
"type": "string"
},
"country": {
"type": "string",
"description": "Two-letter code"
},
"address1": {
"type": "string"
},
"address2": {
"type": "string"
},
"lastName": {
"type": "string"
},
"firstName": {
"type": "string"
},
"companyName": {
"type": "string"
}
},
"additionalProperties": false
},
"billing": {
"type": "object",
"required": [
"firstName",
"lastName",
"address1",
"city",
"country",
"email",
"phone"
],
"properties": {
"fax": {
"type": "string"
},
"zip": {
"type": "string"
},
"city": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string",
"description": "Like +886.912345678"
},
"state": {
"type": "string"
},
"country": {
"type": "string",
"description": "Two-letter code"
},
"address1": {
"type": "string"
},
"address2": {
"type": "string"
},
"lastName": {
"type": "string"
},
"firstName": {
"type": "string"
},
"companyName": {
"type": "string"
}
},
"additionalProperties": false
},
"registrant": {
"type": "object",
"required": [
"firstName",
"lastName",
"address1",
"city",
"country",
"email",
"phone"
],
"properties": {
"fax": {
"type": "string"
},
"zip": {
"type": "string"
},
"city": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string",
"description": "Like +886.912345678"
},
"state": {
"type": "string"
},
"country": {
"type": "string",
"description": "Two-letter code"
},
"address1": {
"type": "string"
},
"address2": {
"type": "string"
},
"lastName": {
"type": "string"
},
"firstName": {
"type": "string"
},
"companyName": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Add or remove tags on up to 500 domains at once (tags filter the domain list).
| Argument | Type | Description |
|---|---|---|
| add | array | |
| remove | array | |
| domains* | array |
{
"type": "object",
"required": [
"domains"
],
"properties": {
"add": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10
},
"remove": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10
},
"domains": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 500,
"minItems": 1
}
},
"additionalProperties": false
}Change nameservers: 2 to 13 hostnames, or "default" to return to Nymwell DNS. Pointing elsewhere means the records in Nymwell stop applying. Applies at once when you act for an owner or admin and the workspace lets agents apply changes (the default); otherwise it waits in list_approvals. workflow.state says which.
| Argument | Type | Description |
|---|---|---|
| domain* | string | |
| nameservers* | any |
{
"type": "object",
"required": [
"domain",
"nameservers"
],
"properties": {
"domain": {
"type": "string"
},
"nameservers": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
},
"maxItems": 13,
"minItems": 2
},
{
"const": "default"
}
]
}
},
"additionalProperties": false
}Write a note on one DNS record (what it is for), shown next to it in the console. Empty note clears it.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| note | string | |
| type* | string | |
| value* | string | |
| domain* | string |
{
"type": "object",
"required": [
"domain",
"type",
"name",
"value"
],
"properties": {
"name": {
"type": "string"
},
"note": {
"type": "string",
"maxLength": 200
},
"type": {
"type": "string"
},
"value": {
"type": "string"
},
"domain": {
"type": "string"
}
},
"additionalProperties": false
}Change DNS records (create, update, delete), applied at the registrar in order. Applies at once when you act for an owner or admin and the workspace lets agents apply changes (the default); otherwise it waits in list_approvals. workflow.state says which. Values are checked first (invalid_record names the change and field). For update and delete, pass record_id from list_dns_records when a name has more than one record of that type.
| Argument | Type | Description |
|---|---|---|
| domain* | string | |
| changes* | array |
{
"type": "object",
"required": [
"domain",
"changes"
],
"properties": {
"domain": {
"type": "string"
},
"changes": {
"type": "array",
"items": {
"type": "object",
"required": [
"operation",
"type",
"name",
"value"
],
"properties": {
"ttl": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"name": {
"type": "string"
},
"type": {
"enum": [
"A",
"AAAA",
"CNAME",
"MX",
"TXT",
"CAA",
"SRV",
"NS"
]
},
"value": {
"type": "string"
},
"priority": {
"type": "integer",
"maximum": 65535,
"minimum": 0
},
"operation": {
"enum": [
"create",
"update",
"delete"
]
},
"record_id": {
"type": "string",
"description": "The record to update or delete, from list_dns_records"
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1
}
},
"additionalProperties": false
}Start a transfer in: give the auth code from the current registrar. Nymwell seals the code at rest, checks the name is held elsewhere, and returns a transfer quote; then call purchase_domain with its quote_id. A name nobody holds returns domain_not_exists (register it instead).
| Argument | Type | Description |
|---|---|---|
| domain* | string | |
| auth_code* | string |
{
"type": "object",
"required": [
"domain",
"auth_code"
],
"properties": {
"domain": {
"type": "string"
},
"auth_code": {
"type": "string",
"maxLength": 128
}
},
"additionalProperties": false
}Names a live registrar can sell now that fit a keyword, with prices (registration inventory only). Sandbox suggestions are refused; use screen_domains until nymwell_status reports a live registrar. No sign-in needed.
| Argument | Type | Description |
|---|---|---|
| tlds | array | |
| keyword* | string |
{
"type": "object",
"required": [
"keyword"
],
"properties": {
"tlds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20
},
"keyword": {
"type": "string",
"maxLength": 63
}
},
"additionalProperties": false
}Track a domain registered elsewhere (expiry, registrar, DNS) without moving it. Nymwell reads public registry data daily and reminds you before it expires.
| Argument | Type | Description |
|---|---|---|
| domain* | string |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
},
"additionalProperties": false
}Take back the records the last preset or template added to a domain (only those still there).
| Argument | Type | Description |
|---|---|---|
| domain* | string |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
},
"additionalProperties": false
}Change WHOIS privacy or the transfer lock. Applies at once when you act for an owner or admin and the workspace lets agents apply changes (the default); otherwise it waits in list_approvals. workflow.state says which.
| Argument | Type | Description |
|---|---|---|
| domain* | string | |
| transfer_lock | boolean | |
| privacy_enabled | boolean |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
},
"transfer_lock": {
"type": "boolean"
},
"privacy_enabled": {
"type": "boolean"
}
},
"additionalProperties": false
}What every new domain starts with: auto_renew, transfer_lock, privacy, dns_preset {preset, target}, forward_to, tags. action "get"; "save" (fields left out keep what is saved); "apply" puts them on the given domains now.
| Argument | Type | Description |
|---|---|---|
| tags | array | |
| action* | any | |
| domains | array | |
| privacy | boolean | |
| auto_renew | boolean | |
| dns_preset | object | null | |
| forward_to | string | null | |
| transfer_lock | boolean |
{
"type": "object",
"required": [
"action"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"action": {
"enum": [
"get",
"save",
"apply"
]
},
"domains": {
"type": "array",
"items": {
"type": "string"
}
},
"privacy": {
"type": "boolean"
},
"auto_renew": {
"type": "boolean"
},
"dns_preset": {
"type": [
"object",
"null"
]
},
"forward_to": {
"type": [
"string",
"null"
]
},
"transfer_lock": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"quote_id"
],
"properties": {
"dns": {
"type": "object",
"properties": {
"preset": {
"type": "string"
},
"target": {
"type": "string",
"description": "Hostname the preset points www at, when the preset needs one"
},
"records": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"name",
"value"
],
"properties": {
"ttl": {
"type": "integer",
"minimum": 300
},
"name": {
"type": "string"
},
"type": {
"enum": [
"A",
"AAAA",
"CNAME",
"MX",
"TXT",
"SRV",
"NS"
]
},
"value": {
"type": "string"
},
"priority": {
"type": "integer",
"maximum": 65535,
"minimum": 0
}
},
"additionalProperties": false
},
"maxItems": 20
}
},
"description": "Records to create right after registration: a preset from list_dns_presets, optional records, or both.",
"additionalProperties": false
},
"locale": {
"enum": [
"en",
"zh-tw"
],
"description": "Language of the page the person returns to after paying"
},
"pay_with": {
"enum": [
"saved_card",
"checkout"
],
"description": "saved_card (default) charges the saved card within the agent limits; checkout always returns a link for the person"
},
"quote_id": {
"type": "string"
},
"idempotency_key": {
"type": "string",
"maxLength": 120
},
"tld_requirements": {
"type": "object",
"description": "Extra registry fields some country endings need (see get_tld_info)",
"additionalProperties": {
"type": "string"
}
},
"accept_trademark_notice": {
"type": "boolean",
"description": "true only after the person has read the trademark notice get_quote returned"
}
},
"additionalProperties": false
}