Drive Ingram Domains from code.
Three programmatic surfaces, one set of operations. Pick whichever fits the tool you're working in.
REST API
HTTP for everything
Public, no-auth endpoints today; authenticated endpoints (register, transfer, manage) ship with API tokens. The namespace is /api/v1.
Check availability
curl 'https://domains.ingram.tech/api/v1/check?q=example'Pass a bare name to fan out across popular TLDs, or a fully-qualified domain to check just that one.
Example response
{
"query": "example",
"results": [
{
"domain": "example.com",
"tld": ".com",
"result": "NOT AVAILABLE",
"price": 9.20,
"currency": "EUR",
"source": "fastly"
},
{
"domain": "example.io",
"tld": ".io",
"result": "AVAILABLE",
"price": 39.00,
"currency": "EUR",
"source": "fastly"
}
]
}Full machine-readable spec at /api/v1/openapi.json (OpenAPI 3.1).
MCP server
Plug Ingram into any MCP client
Streamable HTTP transport at /api/mcp. SSE transport at /api/sse for legacy clients. Public tools work without a token; mutations require an API token sent as Authorization: Bearer ingram_live_….
Claude Desktop / Cursor
{
"mcpServers": {
"ingram-domains": {
"url": "https://domains.ingram.tech/api/mcp",
"headers": {
"Authorization": "Bearer ingram_live_..."
}
}
}
}Tools available
check_domain— availability + price (public).get_tld_pricing— register/renew/transfer prices across every supported TLD (public).list_domains— every domain in your portfolio (read scope).register_domain— register, withconfirm_priceguard rail (write scope).transfer_domain— initiate inbound transfer with auth code (write scope).renew_domain— renew, withconfirm_priceguard rail (write scope).delete_domain— schedule deletion (write scope).request_auth_code— email the EPP code to the registrant for outbound transfers (write scope).
CLI
One command from your terminal
A single npm-distributed binary (domains) that wraps the REST API. Authenticate via domains login (paste a token from /settings/tokens), then drive every operation from a terminal or shell script.
# install
npm i -g @ingram-tech/domains
# log in (saves to ~/.config/domains/credentials.toml)
domains login --token ingram_live_…
# check availability
domains check example
# register, agent-safe (refuses to spend without a price guard)
domains register example.com --confirm-price 9.20
# list your portfolio
domains ls
# DNS records
domains dns ls example.com
domains dns add example.com A www 1.2.3.4
# request the EPP code to transfer away
domains transfer-out example.comAuto-detects TTY: pretty tables when interactive, JSON to stdout when piped. Spending verbs require --confirm-price or --max-price; destructive verbs require --confirm <domain> --yes. Stable exit codes for scripting. Set INGRAM_API_TOKEN to skip the login step.
Status
Roadmap
API tokens, authenticated REST endpoints (POST /api/v1/domains, transfer, renew, DNS), expanded MCP tools, and the CLI are next. Pre-launch — surfaces ship rough and iterate. The dashboard's signup is open if you want an account waiting.