1Get an API key
Sign up for the agent plan — $5/month or $50/year for every Pulse in the catalogue. Your API key is issued automatically when your subscription activates and arrives by email. Picking Pulses is a follow preference, never a purchase, and anyone may follow 2 Pulses free, no card required.
- Sign up at junctionarypulse.com/#pricing and choose the agent plan.
- Copy the key from your welcome email (“Your Junctionary Pulse API key”). It's shown once — store it somewhere safe.
- Send it on every request as the
X-API-Keyheader. Query-string keys don't work.
# Every request looks like this:
curl https://api.junctionarypulse.com/api/pulses
2Use the framework integrations
The direct path — native integrations, zero boilerplate. We ship native LangChain and n8n integrations, built and maintained by Junctionary.
LangChain toolkit — 10 tools as standard BaseTools. Start every morning with get_watchlist_digest: one call returns today's headline, TL;DR, price, and story count for every subscribed ticker — roughly 1/10th the tokens of pulling full Pulses. Then drill in with get_briefing, compare_tickers, get_sentiment_trends, get_earnings_date, resolve_ticker, get_alerts, and more. Works with any LangChain agent:
pip install junctionary-pulse-langchain from junctionary_langchain import JunctionaryPulseToolkit toolkit = JunctionaryPulseToolkit(api_key="YOUR_KEY") agent = create_agent(model="claude-haiku-4-5", tools=toolkit.get_tools())
n8n node — install n8n-nodes-junctionary-pulse from Settings → Community Nodes. The action node pulls Pulses, history, trends, and alerts. The trigger node fires your workflow the moment each weekday morning's briefing lands — push delivery, no polling.
3Or plug in the MCP server
Prefer the open standard: our stdio MCP server exposes everything as 15 tools (list_pulses, get_briefing, get_briefing_history, get_sentiment_trends, get_alerts, list_my_tickers, add_ticker, remove_ticker, get_company_profile, get_market_snapshot, compare_tickers, get_company_people, get_earnings, get_sec_filings, get_insider_trades). Stdlib only, no dependencies. Works with any MCP-compatible agent — Claude Desktop, custom harnesses, anything speaking the protocol.
# Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json) { "mcpServers": { "junctionary-pulse": { "command": "python3", "args": ["/path/to/junctionary_mcp.py"], "env": { "JUNCTIONARY_API_KEY": "YOUR_KEY" } } } }
Download junctionary_mcp.py from https://api.junctionarypulse.com/api/mcp/download with your API key as the X-API-Key header. Your key is sent as X-API-Key on every upstream call — entitlement and rate limits are enforced server-side.
4Or pull via REST
Prefer raw HTTP over MCP? Each ticker you follow is a pulse. Pull today's Pulse, or any day from the 90-day archive. Every MCP tool maps to one of these endpoints.
# Today's Pulse for Apple curl https://api.junctionarypulse.com/api/pulse/apple/latest \ -H "X-API-Key: YOUR_KEY" # A past day curl https://api.junctionarypulse.com/api/pulse/apple/2026-10-09 \ -H "X-API-Key: YOUR_KEY" # What pulses exist (public, no key needed) curl https://api.junctionarypulse.com/api/pulses
A Pulse returns headline, tldr, the previous market close, and ranked items — each with summary, why_it_matters, sources (name + URL), and published timestamp. Only tickers in your subscription return data; anything else is a 403.
5History, trends & alerts
| Endpoint | What it gives you |
|---|---|
| GET /api/watchlist-digest | Start here. Compact digest of today's Pulses for all your tickers — headline, TL;DR, price, story count. ~1/10th the tokens of full Pulses |
| GET /api/pulse/<id>/history?days=30 | One rollup per day (headline, story count, sentiment label) — up to 90 days back |
| GET /api/pulse/<id>/trends?days=30 | Daily sentiment scores, story volume, category mix, plus a summary |
| GET /api/company/<ticker>/earnings | Next earnings date for a ticker |
| GET /api/tickers/resolve?t=Apple | Company name → ticker symbol |
| GET /api/alerts?ticker=AAPL | Price-move alerts (3% threshold, checked every 30 min in market hours) |
| GET /api/tickers | Public ticker catalog (public, no key needed) |
The archive is the part raw news APIs don't give you: your agent can wake up mid-quarter and backfill everything it missed.
6Manage your follows
# See your follow set and access level curl https://api.junctionarypulse.com/api/account/tickers \ -H "X-API-Key: YOUR_KEY" # → {"tickers": ["AAPL","NVDA","TSLA"], "pulses": ["apple","nvidia","tesla"], "plan": "agent", "access": "flat", "followed": 3, "free_pulse_limit": null} # Follow one (subscribers: any Pulse; free accounts: 2 total, 402 at the cap) curl -X POST https://api.junctionarypulse.com/api/account/tickers \ -H "X-API-Key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"ticker": "MSFT"}' # Unfollow one curl -X DELETE https://api.junctionarypulse.com/api/account/tickers/MSFT \ -H "X-API-Key: YOUR_KEY"
7Get push delivery (webhooks)
Instead of polling, register a webhook and we'll push each weekday morning's briefing to you — signed, so you can verify it's really us.
# Register (up to 5 per customer; secret shown once) curl -X POST https://api.junctionarypulse.com/api/webhooks \ -H "X-API-Key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://your-agent.example.com/hooks/pulse"}' # → {"id": "...", "url": "...", "secret": "whsec_...", "active": true}
Each delivery is a POST with X-Pulse-Timestamp and X-Pulse-Signature headers. Verify the signature: HMAC-SHA256(secret, timestamp + "." + raw_body). We retry once on failure; a webhook that fails 7 days running is auto-disabled.
8Why agents save money
Everything on this page is agent-exclusive — humans get email Pulses; agents get the full platform. Here's what that replaces:
| You get | Replaces | DIY cost (est.) |
|---|---|---|
| Pre-computed Pulses | 50k–100k LLM tokens/day of DIY research per ticker | ~$550–$750/mo in tokens |
| Push webhooks | Polling infrastructure + wasted API calls | Eng days + compute |
| 90-day archive API | S3/database + retention logic | Build + storage |
| Sentiment trends | Analytics pipeline + NLP | Build + maintain |
| Price alerts (30-min) | Monitoring service | Infra |
| Company profiles (SEC + Wikipedia) | Multi-source integration | Eng days |
| Market snapshots + comparison | Market data vendor contract | $50–500/mo |
| LangChain toolkit + n8n node | Framework integration code | Days of eng time |
| MCP server (16 tools) | Custom API integration | Days of eng time |
9Limits & errors
| Code | Meaning |
|---|---|
| 401 | Missing or invalid API key |
| 402 | Free follow limit reached — free accounts follow up to 2 Pulses; subscribe for the whole catalogue, or unfollow one first |
| 403 | Pulse not in your subscription or follow set |
| 404 | No Pulse for that selection/date |
| 429 | Rate limited — 120 requests/minute per key; respect Retry-After |
Retry-After seconds. Pulses publish every weekday morning — there's no reason to poll faster than that.What it costs
$5/month or $50/year for the whole Pulse catalogue. No usage tiers, no per-call billing. That covers the API, webhooks, the 90-day archive, and the MCP server. Humans on the email plan are $3/month or $30/year — the same whole catalogue, different delivery. Annual billing is 2 months free. Anyone may follow 2 Pulses free, no card required.
Questions? support@junctionarysystems.com