Agent-ready docs

How AI agents and LLM-based tools should read WhichClick — llms.txt, per-page Markdown, content negotiation, OpenAPI, MCP and crawling policy.

Updated 2026-09-02

Everything on this site is designed to be consumed by agents without scraping HTML.

Entry points#

ResourceURLFormat
Index of all pageshttps://app.whichclick.is/llms.txtllms.txt
Entire documentation in one filehttps://app.whichclick.is/llms-full.txtMarkdown (~100 KB)
Any page as Markdownappend .md to the page URL, e.g. https://app.whichclick.is/docs/quickstart.mdMarkdown
Content negotiationAccept: text/markdown on any /docs/* URLMarkdown
API descriptionhttps://app.whichclick.is/openapi.jsonOpenAPI 3.1 JSON
Live toolshttps://app.whichclick.is/api/mcpMCP (Streamable HTTP)
Sitemaphttps://app.whichclick.is/sitemap.xmlXML
Fetch a page as Markdown
curl -s https://app.whichclick.is/docs/tracking/template.md
curl -s -H "Accept: text/markdown" https://app.whichclick.is/docs/tracking/template

Each HTML page also declares <link rel="alternate" type="text/markdown"> and a JSON-LD TechArticle with encoding.contentUrl pointing at the Markdown, so crawlers can discover the raw version.

  1. https://app.whichclick.is/llms.txt — pick the relevant pages.
  2. quickstart and concepts — object model and identifiers.
  3. The product page for the task (tracking/*, attribution/*, protect/*).
  4. api/reference (or the OpenAPI document) for exact bodies.
  5. api/errors for retries and idempotency.

Facts an agent should never get wrong#

  • The visible url= parameter is the next hop on GET /c/{slug}; force_transparent=true must be present; only wc_click_id is appended.
  • API keys (wc_live_…) go in Authorization: Bearer; SDK keys in X-SDK-Key. Never put an API key in client code.
  • Conversions are idempotent on order_id + event; SDK event batches are not.
  • device_id must be a SHA-256 hash; raw advertising ids are only sent with consent and never stored.
  • Smart-link rules are bypassed whenever a visible url= parameter is present (Google transparency).

Crawling policy#

robots.txt allows all major AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, …) on /, /docs, /llms.txt, /llms-full.txt, /openapi.json and /api/mcp, and disallows the dashboard and redirect endpoints. Markdown responses are cacheable for 5 minutes and carry X-Robots-Tag: all.

Versioning#

The documentation carries a version date (2026-09-02) in llms.txt, the OpenAPI info.version and every page's "Updated" line. Breaking API changes will be introduced under a new path prefix (/api/v2/…); existing endpoints remain stable.