Build with AfterLaunch
The AfterLaunch API and MCP server let AI agents and software read a product run's ranked growth moves, automated loops and drafted outputs, and act on them.
Keys are self-serve. Any account on an active trial or the Founder plan can mint one in Settings, and it carries the read, act and write scopes: read the surface, ship, skip, redraft or archive a move, mint a checkout link, and trigger the metered actions. On the Founder plan the key also carries the config scope for the autonomy and cadence levers. Metered actions draw on your credit balance under the per-tenant spend caps, so what you can run is bounded by credits rather than by a tier wall.
Quickstart
- Create your account and mint a key. Run the free Growth Snapshot to enrol your product, then open Settings and create an API key under API access. It carries the read, act and write scopes (plus config on the Founder plan). The key is shown once; store it securely. An agent can do this part for you instead: see agent-driven onboarding below.
- Connect over MCP or plain HTTPS. Every request carries the key as a bearer token (Authorization: Bearer al_...). From Claude Code:
Or read the Feed directly:claude mcp add afterlaunch --transport http https://afterlaunch.io/api/mcp --header "Authorization: Bearer al_..."curl -H "Authorization: Bearer al_..." https://afterlaunch.io/api/v1/feedOn claude.ai or ChatGPT, add https://afterlaunch.io/api/mcp as a custom connector and sign in. Discovery runs over OAuth, so there is no key to paste.
- Read, then act. The read scope covers the ranked Feed of prepared growth moves, the measured signal data (AI visibility, SEO, competitors, outcomes, the day-0 snapshot, the Timeline), the Memory pages, the automated loops and their autonomy, the enrollment summary and drafted outputs. The act scope ships, skips, redrafts, archives and restores moves and mints a checkout link, all of it free. The write scope triggers the metered runs, bounded by credits and the per-tenant spend caps. Every key minted in Settings and every key the device flow delivers carries all three. The autonomy and cadence levers need the config scope, which Settings adds to keys minted on the Founder plan, and publishing to a channel needs the egress scope, which self-serve keys never carry, so an agent can never post on your behalf without a human. A key holding write also satisfies act, so an older key keeps working unchanged.
Endpoints and tools
This reference is generated from the same action registry that produces the OpenAPI document and the MCP tool list, so it always matches the shipped API. Metered actions can cause a per-call charge and are subject to the per-tenant daily and monthly spend caps.
| Endpoint | Scope | What it does | MCP tool |
|---|---|---|---|
| GET /api/v1/feed | read | The ranked backlog of prepared growth moves. | list_feed |
| GET /api/v1/loops | read | The automated loops on the enrollment and their autonomy. | get_loop_status |
| GET /api/v1/loops/{loopType} | read | The automated loops on the enrollment and their autonomy. | get_loop_status |
| GET /api/v1/enrollment | read | The product-run summary and delivery settings. | get_enrollment |
| GET /api/v1/outputs | read | The enrollment's drafted outputs (id, status, kind, title). | list_outputs |
| GET /api/v1/outputs/{id} | read | A single drafted output by id. | get_output |
| GET /api/v1/visibility | read | The measured AI visibility (GEO) results: share of voice, per-engine coverage, tracked questions, gaps, cited sources, trend, plus the off-site reach signals. | get_visibility |
| GET /api/v1/seo | read | The site-wide SEO audit: issue groups, score trend, page performance, links and authority, and the day-0 search ranks. | get_seo |
| GET /api/v1/competitors | read | The competitor roster with the measured stat battery for you and each rival. | get_competitors |
| GET /api/v1/outcomes | read | What the shipped moves earned: tracked-link clicks, shipped counters, the weekly movement scoreboard. | get_outcomes |
| GET /api/v1/snapshot | read | The Growth Snapshot diagnostic this product run started from (the stable business context). | get_snapshot |
| GET /api/v1/activity | read | The product timeline: what the agent and the founder already did and why. Newest first. | get_activity |
| GET /api/v1/kb/pages | read | The Memory pages (the shared record): summaries only, no bodies. | list_kb_pages |
| GET /api/v1/kb/pages/{slug} | read | One Memory page by slug, with its full markdown body. | get_kb_page |
| GET /api/v1/standup | read | The daily growth standup in one call: what shipped and was verified, what is ready to act on, what is waiting on the founder, what is still running, and when the next scan lands. | get_standup |
| GET /api/v1/moves/{id} | read | One growth move in full: the writing brief (evidence, deliverable, receipt, the rules the finished work must meet and the voice to write it in). | get_move |
| POST /api/v1/moves/{id}/ship | act | Mark a move shipped (the founder's Ship action). | ship_move |
| POST /api/v1/moves/{id}/skip | act | Dismiss a move (the founder's Skip action). | skip_move |
| POST /api/v1/moves/{id}/draft | act | Replace a pending move's draft body before shipping. | update_draft |
| POST /api/v1/moves/{id}/archive | act | Archive a move (a lighter dismissal that hides it from the Feed). | archive_move |
| POST /api/v1/moves/{id}/undo | act | Restore a just-shipped or just-skipped move to pending (the founder's Undo). | undo_move |
| POST /api/v1/outputs/{id}/status | act | Resolve one drafted output in the review queue: ship (mark done / posted-status, no channel publish) or skip. | set_output_status |
| POST /api/v1/outputs/{id}/redraft | act | Replace a drafted output's body with an edited version before it is resolved (manual edit only). | redraft_output |
| POST /api/v1/scans/{scan}/refresh | writeMetered | Run an on-demand AI Visibility scan (metered; one scan per scan type per product per local day). | refresh_scan |
| POST /api/v1/feed/replenish | writeMetered | Generate a fresh batch of Feed moves on demand (metered). | replenish_feed |
| POST /api/v1/loops/{loopType}/run | writeMetered | Run a loop's generation once, on demand (metered; 1 credit per loop per cycle, repeats in the same cycle replay at no cost). | run_loop |
| POST /api/v1/loops/{loopType}/autonomy | config | Set a growth loop's autonomy rung (Founder tier). | set_loop_autonomy |
| POST /api/v1/loops/{loopType}/cadence | config | Slow or pause a growth loop's cadence for this product (Founder tier). | set_loop_cadence |
| POST /api/v1/scans/ai_visibility/intensity | config | Set how many passes an AI visibility scan makes per question (Founder tier). | set_scan_intensity |
| POST /api/v1/billing/checkout | act | Mint a Founder-tier checkout link for the founder to complete payment. | create_checkout |
| POST /api/v1/billing/topup | act | Mint a credit top-up checkout link for the founder to complete payment (Founder tier). | create_topup |
| POST /api/v1/outputs/{id}/approve | egressMetered | Approve one drafted output for dispatch (metered egress). | REST only |
| GET /api/v1/connections | read | Which growth data sources and posting channels are connected to this product run, and honestly why the rest are not. | list_connections |
| POST /api/v1/connections/start | write | Mint a one-time link the founder opens to connect a source. The founder completes the consent; the agent never does. | start_connection |
| POST /api/v1/connections/poll | read | Learn the outcome of a connection link the founder was given. Idempotent. | poll_connection |
| POST /api/v1/connections/disconnect | config | Disconnect a source and delete its stored credential. Config scope: it is an account setting, not a move. | disconnect_connection |
| GET /api/v1/visibility/prompts | read | The buyer questions this product run is measured on across the AI answer engines, with the cap and how much of it is used. | list_tracked_prompts |
| POST /api/v1/visibility/prompts/track | config | Add one buyer question to the tracked AI visibility set (Founder tier; hard cap of 15). | track_prompt |
| POST /api/v1/visibility/prompts/untrack | config | Remove one buyer question from the tracked AI visibility set (Founder tier; idempotent). | untrack_prompt |
| GET /api/v1/scoreboard | read | The period proof: measured AI visibility before and after, what was shipped between them, and the verified receipts. | get_scoreboard |
| POST /api/v1/visibility/gaps/dismiss | act | Resolve an AI visibility gap the founder is not going to act on, on both the AI Visibility surface and the Feed. | dismiss_gap |
| POST /api/v1/memory/insights/record | act | Write one durable thing the founder just revealed (a preference, a voice rule, a fact, an outcome) into this product run's Memory. | record_insight |
| POST /api/v1/onboard/start | pre-auth | Agent-initiated onboarding: submit a founder URL + email; the founder approves by email. Each site (registrable domain; subdomains count as the same site) gets one free trial, so do not retry with a fresh email or a different subdomain if the site has already been onboarded. | REST only |
| POST /api/v1/onboard/poll | pre-auth | Agent-initiated onboarding: exchange the device code for the minted API key (exactly once). | REST only |
MCP also exposes whoami, get_setup_snippet as a handshake convenience with no REST endpoint: it confirms the key works and reports what it is bound to.
Machine-readable docs
Everything an agent needs to self-wire, served from stable public URLs:
- /api/v1/openapi.json : the OpenAPI 3.1 description of every endpoint.
- /.well-known/mcp.json : the MCP discovery descriptor (endpoint, auth scheme, docs).
- /llms.txt : plain-language instructions for AI agents, including the onboarding flow.
Find AfterLaunch in the MCP registries
The same server, listed where agents and their operators look for MCP tools. Every entry resolves to the endpoint above, https://afterlaunch.io/api/mcp.
- Official MCP registry: io.afterlaunch/agentic-growth-marketing (v1.0.0).
- Glama.
- Smithery.
- npm: afterlaunch.
- GitHub: github.com/afterlaunch/mcp.
Agent-driven onboarding
An AI agent can set AfterLaunch up for its founder without a browser session. The device flow works like this: the agent submits the founder's site URL and email to POST /api/v1/onboard/start and receives a device code; the founder gets one approval email and nothing runs until they click it; the agent polls POST /api/v1/onboard/poll and, on approval, receives an API key exactly once, carrying the read, act and write scopes. The founder's free Growth Snapshot and trial start at approval.
The flow is open. It is rate limited per IP address and per email address, and each site gets one free trial (per registrable domain, so subdomains count as the same site). Access is opening in waves, so a refused request means your wave has not opened yet.
Start with the free Growth Snapshot, then mint a key in Settings.
See what AfterLaunch does