API & Developers

Your content strategy, programmable

80+ REST API endpoints. An MCP server for AI assistants. Generate an API key in your account settings and build on top of your briefs, sources, articles, and pipeline data.

REST API

Full access to everything in the dashboard and more. Manage sources, query briefs, trigger the pipeline, generate articles, pull GSC data, and manage your account.

Base URL
https://api.contentmarketingideas.co

MCP server

Give Claude, Cursor, or any MCP-compatible AI assistant direct access to your content strategy. 59 tools covering every operational action.

Install
npx @houtini/contentmarketingideas
Authentication

API keys with the cr_ prefix

Generate an API key from your account settings. Keys are prefixed with cr_ and authenticate via the Authorization header.

# Example request
curl https://api.contentmarketingideas.co/api/briefs \
  -H "Authorization: Bearer cr_your_api_key"

API endpoints

Briefs
List, filter, and manage editorial briefs. Access synthesis, enrichment, and signal data.
GET /api/briefs — List briefs (paginated, filterable by status, signal_type, site_id)
GET /api/briefs/{id} — Full brief with synthesis, enrichment, keywords, entities
POST /api/briefs/{id}/feedback — Submit feedback (thumbs_up, thumbs_down, made_this)
POST /api/briefs/{id}/share — Generate a public share link
POST /api/briefs/{id}/draft — Generate a voice-matched draft (paid plans)
POST /api/briefs/bulk-archive — Archive up to 50 briefs
Sources
CRUD operations on content sources. Auto-detect source type from URL.
GET /api/sources — List sources for a site
POST /api/sources — Create source (auto-assigns type from URL)
POST /api/sources/detect — Auto-detect source type without creating
PATCH /api/sources/{id} — Update name, keywords, tags
DELETE /api/sources/{id} — Delete source and cascade items
Articles
Create, generate, and publish voice-matched articles from briefs.
POST /api/sites/{siteId}/articles — Create article from brief or custom prompt
GET /api/sites/{siteId}/articles — List articles with status tracking
GET /api/articles/{id} — Full article with markdown, outline, provenance
POST /api/articles/{id}/generate — Queue article for generation
POST /api/articles/{id}/publish — Publish to WordPress as draft
Topics & coverage
Topic Explorer data, entity clusters, traffic correlation, lifecycle states.
GET /api/topics/explore — Full Topic Explorer (entities, GSC traffic, clusters)
GET /api/rag/coverage/explore — Brief clusters with coverage analysis
GET /api/rag/search — Hybrid semantic + full-text corpus search
GET /api/rag/stats — Corpus statistics
Google Search Console
GSC data after OAuth connection. Aggregate and daily granularity.
GET /api/sites/{siteId}/gsc/summary — Clicks, impressions, avg position
GET /api/sites/{siteId}/gsc/queries — Top queries by clicks
GET /api/sites/{siteId}/gsc/opportunities — Low-position, high-impression queries
GET /api/sites/{siteId}/gsc/declining-queries — Queries losing clicks
GET /api/sites/{siteId}/gsc/growing-queries — Queries gaining clicks
GET /api/sites/{siteId}/gsc/daily-summary — Daily sparkline data
Pipeline & triggers
Trigger ingestion and synthesis manually instead of waiting for the schedule.
POST /api/trigger/ingestion — Queue source ingestion for your sources
POST /api/trigger/synthesis — Generate briefs from indexed content
POST /api/profile — Generate or refresh site voice profile
Account & sites
Manage your account, sites, delivery schedule, and API keys.
GET /api/account — Full account with plan, limits, usage
GET /api/sites — List sites with source/brief counts
POST /api/sites — Create new site
PATCH /api/sites/{siteId}/schedule — Update delivery frequency and hour
POST /api/account/api-key — Generate API key

MCP server setup

The MCP server gives AI assistants like Claude Desktop, Cursor, and VS Code Copilot direct access to 59 tools covering your full content strategy workflow. List briefs, trigger the pipeline, create articles, query GSC data, manage sources, and more.

claude_desktop_config.json / .cursor/mcp.json
{
  "mcpServers": {
    "contentmarketingideas": {
      "command": "npx",
      "args": [
        "-y",
        "@houtini/contentmarketingideas"
      ],
      "env": {
        "CMI_API_KEY": "cr_your_api_key"
      }
    }
  }
}
59 tools

Every operational action available through the MCP protocol. Briefs, sources, articles, GSC, corpus, pipeline triggers.

Zero config

One npx command. No installation, no dependencies to manage. Always runs the latest version.

Same API key

Uses your cr_ API key. Same permissions, same rate limits, same data access as the REST API.

Example MCP workflows

Content planning session

"Show me my latest briefs, find the ones with rising momentum, and create an article from the best one"

list_briefs get_brief create_article
GSC analysis

"What queries am I losing clicks on? Cross-reference with my briefs to find refresh opportunities"

gsc_declining_queries search_briefs get_coverage_explore
Source management

"Add these three YouTube channels as sources and trigger ingestion"

detect_source add_source trigger_ingestion

Response format

All endpoints return JSON. Brief responses include parsed synthesis, enrichment, and signal data so you don't have to deal with nested JSON strings. Errors return a JSON object with an error field and appropriate HTTP status codes.

GET /api/briefs/:id (abbreviated)
200 OK
{
  "id": "302666ea-86ad-4c47-87e9-2662d136abcf",
  "topic": "Stop reading AI newsletters and start indexing them",
  "status": "sent",
  "signal_type": "trending",
  "trending_direction": "rising",
  "originality_score": 4,
  "thesis": "Programmatically index newsletter build logs...",
  "editorial_play": "Position as a practical workflow guide...",
  "what_to_cover": ["The messy middle of build-log ingestion", "..."],
  "enrichment": {
    "keywords": [{"keyword": "...", "search_volume": 4400}],
    "topic_momentum": {"direction": "rising", "quarterly_change": 48},
    "entities": [{"name": "LlamaIndex", "qid": "Q116761278"}],
    "paa": [{"question": "...", "answer": "..."}]
  },
  "signal": {"sources": ["..."]}
}

Plan limits

API access is available on all plans. Your plan tier determines data limits, not API access.

Limit Free Pro Business Publisher
Sources 5 25 50 100
Sites 1 1 5 10
Articles / month 0 10 25 50
Delivery frequency weekly daily daily daily
WordPress publish - -
GSC integration

Start building

Create a free account, generate an API key, and start querying your content strategy programmatically.