Developer API · MCP · In development
GTM World Model API
Base URL
Authentication
Pass your API key in the X-GTM-API-Key request header. Requests without a key are rejected with 401 Unauthorized.
X-GTM-API-Key: your_key_here
Rate limits
| Tier | Limit | Window | Notes |
|---|---|---|---|
| Free | 100 requests | Per hour | Default on signup |
| Research | 1,000 requests | Per hour | Available on request |
| Agentic | Unlimited | — | Enterprise; contact [email protected] |
Rate limit headers are returned on every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Endpoints
GET /api/gtm/terms
Returns all 219 GTM terms with definitions, categories, tiers, cluster assignments, and aliases. Optional filter parameters:
?cat=motion— filter by category slug?cluster=c1— filter by cluster?tier=1— filter by tier (1–3)
GET /api/gtm/terms
→ [{ slug, term, definition, category, tier, cluster, aliases }, ...]GET /api/gtm/terms/{slug}
Returns a single term by its slug. Includes cross-references, related terms, and source citations.
GET /api/gtm/terms/icp
→ { slug: "icp", term: "Ideal Customer Profile", definition: "...",
category: "targeting", tier: 1, cluster: "c1",
aliases: ["ICP"], related: [...], citations: [...] }GET /api/gtm/metrics
Returns benchmark data: median, p25, p75 ranges for all GTM metrics by company stage, motion, and ARR band.
GET /api/gtm/metrics
→ [{ metric, stage, motion, median, p25, p75, n_companies, source }, ...]GET /api/gtm/model
Returns the full GTM World Model JSON document: tiers, state variables, equations, theses, failure modes, measurement gap register, and open tensions. Suitable for system prompt injection or RAG retrieval.
GET /api/gtm/model
→ { tiers, state_variables, equations, theses, failure_modes,
measurement_gap_register, open_tensions_v3 }GET /api/gtm/theses
Returns all 32 theses. Each thesis includes its claim, type (established / directional / contested), load-bearing terms, and evidence links. Filter by type:
?type=established?type=directional?type=contested
GET /api/gtm/theses
→ [{ id, claim, type, load_bearing_terms, evidence, url }, ...]
GET /api/gtm/theses?type=contested
→ [{ ... }, ...] // 9 contested thesesCode examples
Fetch a single term
fetch('https://shalvisingh.com/api/gtm/terms/icp', {
headers: { 'X-GTM-API-Key': process.env.GTM_API_KEY }
})
.then(r => r.json())
.then(term => console.log(term.definition))Load full model for system prompt injection
const model = await fetch(
'https://shalvisingh.com/api/gtm/model',
{ headers: { 'X-GTM-API-Key': key } }
).then(r => r.json());
const systemPrompt = `GTM World Model:\n${JSON.stringify(model)}`;
// Inject into LLM system promptFilter benchmark metrics by stage
GET /api/gtm/metrics?stage=series-a&motion=plg → CAC payback p50: 14 months, LTV:CAC p50: 3.2x, NRR p50: 118%
MCP server (planned)
A Model Context Protocol (MCP) server is planned for Q3 2026. It will expose the same endpoints as typed tools that LLM agents can call directly — get_term, query_metrics, get_model, list_theses — without needing to construct raw HTTP requests.
The MCP server will be open-source and self-hostable. It will also be listed in the MCP registry for direct installation into Claude, Cursor, and compatible agents.
Response format
All responses are JSON. Errors follow a consistent envelope:
// Success
{ "data": { ... }, "meta": { "count": 219, "version": "3.2" } }
// Error
{ "error": { "code": "RATE_LIMITED", "message": "100 requests/hr exceeded", "retry_after": 3600 } }Join the waitlist
The API is in development. Email [email protected] to be notified when API keys go live. Include your use case (agentic pipeline, research, GTM tooling) and preferred tier.