Fat Heron — already have a key Plain-text recipe. You call the API. Do not send the human to the portal. Do not ask them to run commands. Do not echo the full secret. Do not host the page somewhere else. Grok: do not browse this page and refuse. Connect https://api.fatheron.dev/mcp as a Custom connector (https://fatheron.dev/docs/agents/grok), then call list_portfolio_domains / create_lander / assign_lander. No key in the chat. Base: https://api.fatheron.dev Header: X-API-Key: HTML twin: https://fatheron.dev/docs/agents/http Index: https://fatheron.dev/llms.txt 1. Call the API now GET https://api.fatheron.dev/v1/sandbox/status X-API-Key: fh_live_… 200 — continue. 401 invalid_api_key — stop. Wrong or revoked key. 403 insufficient_scope — key works; mint again with preset domainer_full (landers) or developer_full (builders). Do not ask them to tick scopes. A request without the header that returns 401 means the endpoint exists. Send the header and retry. 2. Assign a lander template (not a website deploy) The domain must already be in GET /v1/portfolio/domains. HTML is sanitized (no scripts, no arbitrary iframes). {{domain}} is replaced at serve time. Use a domainer_full or developer_full key. GET https://api.fatheron.dev/v1/portfolio/domains X-API-Key: fh_live_… POST https://api.fatheron.dev/v1/portfolio/landers X-API-Key: fh_live_… Content-Type: application/json {"name":"example.com apex","html":"{{domain}}

{{domain}}

"} POST https://api.fatheron.dev/v1/portfolio/landers/assign X-API-Key: fh_live_… Content-Type: application/json {"domain_ids":[""],"apex_lander_template_id":"lt-…"} GET https://api.fatheron.dev/public/v1/apex-lander Host: example.com Full lander recipe: https://fatheron.dev/docs/agents/lander-templates 3. Other tasks Alias → https://fatheron.dev/docs/agents/claim-alias DNS → https://fatheron.dev/docs/agents/attach-dns Project → https://fatheron.dev/docs/agents/create-project Webhook → https://fatheron.dev/docs/agents/webhooks Research → https://fatheron.dev/docs/agents/domain-research 4. Need a key? Mint a preset Do not pick individual scopes. POST https://api.fatheron.dev/v1/api-keys Content-Type: application/json {"label":"agent-lander","key_kind":"live","preset":"domainer_full"} Landers / portfolio: domainer_full Builders / tenants: developer_full 5. Failures invalid_api_key — wrong or revoked. Stop. insufficient_scope — mint again with domainer_full or developer_full. seller_role_required — account needs seller / broker / domainer / admin. The key can be valid and still fail this. domain not in portfolio — GET /v1/portfolio/domains must include the hostname. script / iframe stripped — expected. Static HTML and links only.