API & MCP

Everything your agent needs to do PR.

Plug InsightFuse into Claude, ChatGPT, Cursor or your own code. Your agent searches 289,000 contactable journalists, builds a fit-scored media list from a one-line brief, and drafts a pitch for each person — then hands the drafts back to you. Agents draft. People send.

289kJournalists with a reachable address
7Tools, over MCP and REST
0–100Fit score, with the reason why
0Emails sent without a person

Primitives

Three things agents ask for, each one call.

01

Build a media list from a sentence

Describe the story and who should hear it. InsightFuse turns that into a search plan — beats, keywords, country — and returns a ranked list. Each person comes with a fit score and a plain reason: covers business; profile mentions “fintech”; works as finance correspondent; based in United Kingdom. Lists are saved for 90 days.

build_media_list · POST /api/v1/media-lists

$ curl https://insightfuse.com/api/v1/media-lists \
  -H "Authorization: Bearer $INSIGHTFUSE_KEY" \
  -d '{"prompt": "Seed round for a London fintech
       cutting remittance fees", "size": 25}'

→ {
  "id": "ml_3f9a1c2b7d10",
  "plan": { "beats": ["business"], "country": "united kingdom" },
  "journalists": [
    { "id": 48211, "name": "…", "outlet": "…",
      "fit": 100, "why": "Covers business; works as
      finance correspondent; based in United Kingdom" }, …
  ]
}

02

Search the database directly

Filter by beat, keyword and country when the agent already knows what it wants. Keywords match job title, outlet and industry, so "reuters" or "climate" both work. Synonyms like fintech, AI and biotech map onto the database’s beats.

search_journalists · GET /api/v1/journalists/search

$ curl -G https://insightfuse.com/api/v1/journalists/search \
  -H "Authorization: Bearer $INSIGHTFUSE_KEY" \
  -d beats=technology,health -d country=us \
  -d query=diagnostics -d limit=20

03

Draft the pitch — never send it

A short, specific pitch for one journalist: why it matters to their readers, one concrete fact, one ask, no hype words, with an unsubscribe line. It comes back as a draft. There is no send tool in the API on purpose — the person reviews it and sends from their own mailbox or the InsightFuse dashboard.

draft_pitch · POST /api/v1/pitches/draft

$ curl https://insightfuse.com/api/v1/pitches/draft \
  -H "Authorization: Bearer $INSIGHTFUSE_KEY" \
  -d '{"journalist_id": 48211,
       "brief": {"company": "Acme", "news": "raised £4M seed"}}'

→ { "subject": "…", "body": "…", "status": "draft" }

MCP server

Connect your agent.

Create a key in Settings → API keys & MCP, then add the server. It speaks streamable HTTP and takes the key as a bearer token.

Claude Code

claude mcp add --transport http insightfuse \
  https://insightfuse.com/mcp \
  --header "Authorization: Bearer ifk_…"

Cursor, Windsurf, VS Code

{
  "mcpServers": {
    "insightfuse": {
      "url": "https://insightfuse.com/mcp",
      "headers": {
        "Authorization": "Bearer ifk_…"
      }
    }
  }
}

Claude.ai, ChatGPT & URL-only clients

Some clients take only a URL. Add a custom connector with the key in the query string:

https://insightfuse.com/mcp?key=ifk_…

Treat that URL like a password. Use a key made just for that client, so you can revoke it on its own.

MCP tools
ToolWhat it doesPlan
build_media_listBrief in plain language → ranked, fit-scored list, saved 90 daysFree
search_journalistsBeat, keyword and country search with fit scoresFree
get_media_listFetch a saved list, or list recent onesFree
list_beatsThe beats and how many journalists carry eachFree
draft_pitchPersonalised pitch draft for one journalist. Never sent.Free
get_campaignRead-only status of your autopilot campaign: who was pitched, who repliedFree
get_usageToday’s calls and reveals against your limitsFree

Limits, plainly

  • Free key: 200 calls a day.
  • Pro key: 2,000 calls a day, per key. Up to 5 keys per account.
  • Limits reset at 00:00 UTC. Hitting one returns 429 with a message your agent can read.
  • Keys are shown once and stored only as a hash. Revoke one from the dashboard and it stops working on the next call.

Contact details stay in InsightFuse

Email addresses and LinkedIn profiles are never returned by the API or the MCP server, on any plan — every response is scrubbed on the way out. Your agent works with names, outlets, beats and ids. When it is time to reach out, a person does it from the InsightFuse dashboard.

Why there is no send tool

An agent that can email real journalists unattended can damage a sender’s reputation in an afternoon. So the API stops at the draft. Your agent can do the research, the list and the writing — the slow parts — and a person reads what goes out. If you want InsightFuse to send and follow up for you, that is the PR Agent in the dashboard, which has its own step budget, duplicate guard and stop button.

REST reference

All endpoints take Authorization: Bearer ifk_… (or X-API-Key) and return JSON. GET /api/v1/journalists/search, POST /api/v1/media-lists, GET /api/v1/media-list?id=, POST /api/v1/pitches/draft, GET /api/v1/beats, GET /api/v1/campaign, GET /api/v1/usage. Errors are {"error": "…"} with a meaningful status: 400, 401, 404, 429, 502, 503.

Get started

Give your agent a press list.

Free keys search, build lists and draft pitches today, no card needed. Pro raises the limits, and unlocks contacts and sending in the dashboard.