Ingramdomains.ingram.tech
Developer reference

Drive Ingram Domains from code.

Three programmatic surfaces, one set of operations. Pick whichever fits the tool you're working in.

Read the full documentation →

REST API

HTTP for everything

partial

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

shipped

One endpoint at /api/mcp, speaking the 2026-07-28 MCP spec with a Streamable HTTP fallback for 2025-era 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, with confirm_price guard rail (write scope).
  • transfer_domain — initiate inbound transfer with auth code (write scope).
  • renew_domain — renew, with confirm_price guard 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

partial

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.com

Auto-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.