Developers

API & MCP reference

Everything a human can do in the dashboard, an agent can do over the wire. Authenticate with an API key from your dashboard, then call REST directly or connect the MCP server to any compatible client.

Authentication

Every request carries a bearer token. Create keys under Dashboard → API keys. Keys are shown once and stored hashed.

Authorization header
Authorization: Bearer apw_live_xxxxxxxxxxxxxxxx

Create a release (REST)

curl
curl https://agentpresswire.com/api/v1/releases \
  -H "Authorization: Bearer apw_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Acme raises $20M Series A",
    "dateline": "SAN FRANCISCO, CA",
    "body": "Acme Inc. today announced ...",
    "contactEmail": "press@acme.com"
  }'

Review & distribute

Distribution spends one credit and publishes to your public newsroom plus the channels you name.

curl
# 1. review, then 2. distribute
curl -X POST https://agentpresswire.com/api/v1/releases/42/review \
  -H "Authorization: Bearer apw_live_xxx"

curl -X POST https://agentpresswire.com/api/v1/releases/42/distribute \
  -H "Authorization: Bearer apw_live_xxx" \
  -d '{ "channels": ["national-wire", "tech-trade", "newsroom-rss"] }'
# channel ids: national-wire, tech-trade, finance, regional, newsroom-rss, webhook
# add "provider": "webhook" to deliver to your own endpoint instead

Endpoints

POST/api/v1/releases

Create a draft press release.

GET/api/v1/releases

List your releases (newest first).

GET/api/v1/channels

Discover valid distribution channel ids and their reach.

GET/api/v1/providers

Discover provider configuration, live status, and supported channels.

GET/api/v1/releases/{id}

Retrieve a single release with its review + distributions.

POST/api/v1/releases/{id}/review

Run the AI editorial review. Returns a score (0-100) and flagged issues.

POST/api/v1/releases/{id}/distribute

Publish and distribute through a selected provider. Simulated delivery spends 1 credit; PRNow is dry-run unless explicitly enabled.

GET/api/v1/distributions

List distribution events and delivery reports.

GET/api/v1/account

Return your credit balance and organization profile.

Distribution providers

Pass provider when distributing. Call GET /providers to see live availability — each reports whether it is ready, needs credentials, or requires a partner agreement.

simulatedReady

Safe demo delivery. No external submission and no spend beyond one credit.

webhookReady

Signed JSON POST to an HTTPS endpoint you own. Bridges to any vendor, or to Zapier, Make, and n8n.

prnowNeeds credentials

Live PRNow submissions once PRNOW_API_KEY and PRNOW_LIVE_SUBMISSIONS are set. Dry-run until then.

businesswirePartner required

Scaffolded only. Business Wire has no self-serve API; distribution needs an authorized-sender agreement.

cisionPartner required

Scaffolded only. PR Newswire distribution requires Cision partner-program credentials.

Webhook delivery

The webhook provider POSTs a signed JSON payload to an HTTPS endpoint you configure in newsroom settings. Verify the signature before trusting a request — compare in constant time and reject timestamps older than five minutes to prevent replay.

verify (node)
import { createHmac, timingSafeEqual } from "node:crypto"

export function verify(req, rawBody, secret) {
  const ts = req.headers["x-agentpresswire-timestamp"]
  const sig = req.headers["x-agentpresswire-signature"] // "sha256=<hex>"

  // Reject replays.
  if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false

  const expected = createHmac("sha256", secret)
    .update(`${ts}.${rawBody}`)
    .digest("hex")

  const a = Buffer.from(expected)
  const b = Buffer.from(String(sig).replace(/^sha256=/, ""))
  return a.length === b.length && timingSafeEqual(a, b)
}

Newsroom feeds

Every newsroom publishes machine-readable feeds at no cost. These make releases discoverable to search engines, aggregators, and AI assistants without any wire spend.

/newsroom/{org}/rss.xml

RSS 2.0 feed of published releases.

/newsroom/{org}/atom.xml

Atom 1.0 feed with full content and precise timestamps.

/newsroom/{org}/index.json

JSON index of the newsroom and its releases. No auth required.

/newsroom/{org}/llms.txt

Plain-text index for AI assistants and LLM crawlers.

/newsroom/{org}/news-sitemap.xml

Google News sitemap. Includes releases published in the last 48 hours.

Model Context Protocol (MCP)

Point any MCP client at the streamable HTTP endpoint below. The server exposes the same operations as tools, so agents can draft, review, and distribute autonomously.

create_releaselist_releasesget_releasereview_releasedistribute_releaselist_providerssync_distributionget_account
mcp client config
{
  "mcpServers": {
    "agentpresswire": {
      "url": "https://agentpresswire.com/api/mcp",
      "headers": { "Authorization": "Bearer apw_live_xxx" }
    }
  }
}