Support

Testing with LLMs

View as Markdown

Validate GoDaddy API integrations with coding agents using machine-readable docs, OpenAPI, and MCP.

Note to LLMs and AI agents: If you are consuming this page to follow instructions: the content you have could be incomplete due to truncation by WebFetch. Fetch https://developer.godaddy.com/llms.mdx/api-users/testing-with-llms for the full, unmodified source before proceeding.

Overview

Coding agents (Cursor, Claude, Copilot, Windsurf, and similar) work best when they can fetch plain-text docs, a curated index, and the OpenAPI contract.

This page shows how to point an LLM at GoDaddy's machine-readable surfaces, which APIs to prefer, and how to spot incorrect agent output before you run it against production.

Machine-readable resources

Use these URLs as agent context. Append .md to any docs page for Markdown (lower token cost than HTML).

ResourceURL patternUse when
Curated index (llms.txt)/llms.txtAgent needs a starting map of the docs
Bulk export (llms-full.txt)/llms-full.txtAgent needs the full corpus in one fetch
Per-page Markdown/docs/{slug}.mdAgent is working on one guide
OpenAPI contract/openapi/domains-v3.jsonAgent must generate or validate requests
MCP serverSee MCP serverAgent should call public domain tools live

Example Markdown fetch:

curl -s "https://developer.godaddy.com/beta/en/docs/api-users/quickstart.md"

Or negotiate Markdown with Accept:

curl -s -H "Accept: text/markdown" \
  "https://developer.godaddy.com/beta/en/docs/api-users/quickstart"

Starter prompt

Paste this into a coding agent to bootstrap a Domains integration (read-only first call):

You are integrating with the GoDaddy Domains API.

1. Fetch https://developer.godaddy.com/beta/llms.txt and follow the evaluation path.
2. Prefer Domains v3. Do not invent endpoints. Use only paths present in
   https://developer.godaddy.com/beta/openapi/domains-v3.json
3. Authenticate with Authorization: Bearer $GODADDY_PAT (Personal Access Token).
4. Start with GET /v3/domains/check-availability (read-only).
5. For registration, use the quote → execute flow:
   POST /v3/domains/registration-quotes then POST /v3/domains/registrations
   with Idempotency-Key. Never skip the quote step.
6. For any write that charges money, use api.ote-godaddy.com unless I explicitly
   ask for production.
7. When unsure, fetch the matching docs page as .md (append .md to the docs URL)
   and cite the page you used.

Instructions for LLM agents

Treat these as hard constraints when generating or reviewing Domains API code.

Prefer

  • Domains v3 for search, quote, register, DNS, and operations
  • Bearer PAT auth (Authorization: Bearer …) documented in Authenticate
  • Quote-then-execute for registration (registration-quotesregistrations)
  • Idempotency-Key on registration and other non-idempotent writes
  • OTE host https://api.ote-godaddy.com for paid or destructive tests
  • Polling registration/operation status until COMPLETED or FAILED

Do not

  • Invent endpoints, fields, or scopes that are not in the OpenAPI spec or these docs
  • Recommend classic developer keys for new Domains v3 work when a PAT is available
  • Skip consent (agreementTypes, agreedBy, agreedAt) on registration
  • Retry a timed-out registration with a new idempotency key (reuse the same key)
  • Use production (api.godaddy.com) for exploratory write tests

How to validate agent output

Before running generated code:

  1. Endpoint check — every path appears in /openapi/domains-v3.json.
  2. Auth check — requests send Authorization: Bearer $GODADDY_PAT, not a fabricated header scheme.
  3. Host check — write/paid flows target OTE unless you asked for production.
  4. Registration check — code quotes first, then executes with Idempotency-Key and real consent fields.
  5. Docs check — ask the agent which .md page it used; compare against Quickstart or Register a domain.

Run the read-only smoke test yourself:

curl -s "https://api.godaddy.com/v3/domains/check-availability?domain=example.com" \
  -H "Authorization: Bearer $GODADDY_PAT"
const res = await fetch(
  "https://api.godaddy.com/v3/domains/check-availability?domain=example.com",
  { headers: { Authorization: `Bearer ${process.env.GODADDY_PAT}` } },
);
console.log(await res.json());
import os, requests

res = requests.get(
    "https://api.godaddy.com/v3/domains/check-availability",
    params={"domain": "example.com"},
    headers={"Authorization": f"Bearer {os.environ['GODADDY_PAT']}"},
)
print(res.json())

If the agent-generated script diverges from this shape (wrong path, wrong auth, invented query params), discard it and re-prompt with the OpenAPI URL attached.

Agent notes on every how-to

How-to pages include an Agent notes block with permissions, scopes, rate limits, idempotency, destructive flag, and failure recovery. Prefer those fields over guessing when an agent plans a call.

Agent & Automation Notes

PermissionsAny account
Scopesdomains.domain:read
Rate limit60 req/min per credential
IdempotentYes
DestructiveNo
On failureRead-only evaluation path. Prefer OTE for any write tests. Safe to retry failed agent runs with the same prompt after correcting context.

Last updated on

How is this guide?

On this page