Documentation

Synorb writes so machines can reason. Structured signals, shared taxonomies, stable IDs. 1,000+ streams of temporal intelligence. See the structured news API and webhooks and S3 delivery guides.

  1. 01Quick Start
  2. 02Connecttry live
  3. 03Synorb Playgroundtry live
  4. 04Key Glossary
  5. 05Authentication
  6. 06REST APItry live
  7. 07Webhookstry live
  8. 08MCP Serverstry live
  9. 09WebSockettry live
  10. 10S3 Export
  11. 11Data Model
  12. 12Full Glossary
  13. 13Plans & Limits
  14. 14Synorb DigestsEnterprise included
01

Quick Start

Get your free credentials at synorb.com/credentials. Free credentials are emailed instantly and include 1,000 manifests per month on monthly delivery cadence.

Connect your agent

Add the Core MCP server to your editor config. Replace YOUR_TOKEN with the token from your email. Remote connectors can also send the same token as Authorization: Bearer YOUR_TOKEN or x-access-token: YOUR_TOKEN.

Claude Code / Cursor
{ "mcpServers": { "synorb": { "url": "https://mcp.synorb.com/sse?token=YOUR_TOKEN" } } }

First query

List available streams with a simple API call.

$ curl -H "api-key: YOUR_KEY" -H "secret: YOUR_SECRET" \ https://api.synorb.com/streams?page_size=2 { "streams": [ { "id": 17723038993558141, "name": "national-weather", "description": "NWS forecasts and alerts for major US metro areas.", "home_domain": "universe-earth", "manifests_last24h": 808, "manifests_last7d": 1821, "manifests_last30d": 2035 }, { "id": 17723038993540102, "name": "federal-reserve", "description": "Federal Reserve speeches, minutes, and policy statements.", "home_domain": "society-law-government", "manifests_last24h": 0, "manifests_last7d": 12, "manifests_last30d": 85 } ], "pagination": { "total_count": 452, "page_num": 0, "page_size": 2, "next": 1, "prev": null } }
02

Connect

One place to authenticate. Powers every Run button, the Synorb Playground, and webhook testing across the entire docs page.

API key + secret power Run buttons and Synorb Playground. MCP token is only for MCP-compatible assistants.

Best with reasoning models: Gemini 2.5 Pro, Claude Opus 4.6, OpenAI o3.

Get free credentials →

Connect your coding assistant

Copy-paste setup for your editor or agent framework.

Claude Code
claude mcp add synorb \
--transport sse URL
Cursor / Windsurf
{ "mcpServers": {
  "synorb": { "url": "..." }
} }
Codex / Copilot
curl -s synorb.com/connect?format=md
Lovable / Bolt / v0
curl -s synorb.com/connect?format=md
03

Synorb Playground

Connected above with an LLM key? Run profession-agent templates and ask follow-up questions over your streams.

> What streams cover AI infrastructure?
calling synorb-catalog { query: "AI infrastructure", home_domains: ["engineering-technology"] }
Found 47 streams. The most active ones this week:
  ai-infrastructure-signals — 312 manifests/7d
  nvidia-ecosystem — 189 manifests/7d
  cloud-compute-trends — 156 manifests/7d
> Get the latest signals from nvidia-ecosystem
calling synorb-manifests { stream_ids: [17723038993547201], page_size: 3 }
3 manifests from nvidia-ecosystem:
  1. Nvidia reported Q4 revenue of $39.3B, data center revenue up 93% YoY
    evidence: direct_quote · confidence: measured · type: disclosure
  2. TSMC confirmed 3nm capacity expansion for Blackwell architecture
    evidence: paraphrase · confidence: stated · type: announcement

Advanced MCP tools — collapsed reference

Core MCP exposes only the three primary tools. Advanced MCP exposes the configurable tools below, with content gated by plan at execution time.

synorb-streams
Browse and search streams by name, domain, or media type.
synorb-signals
Structured claims for reasoning systems completing workflows.
Example: "Get signals from the federal-reserve stream this week"
synorb-briefs
Structured narratives for reasoning systems delivering information to human operators.
synorb-records
Full canonical JSON payloads with tags, topics, provenance, and lineage. Enterprise only.
synorb-manifests
Signal + Brief on all plans. Record included at Enterprise.
synorb-stream-info
Filters, schema, and allowed values for a specific stream.
synorb-account
Account info, plan, quota, access level, and available endpoints.
synorb-digests
List your digests — both Synorb Digests (added) and User Digests (org-built).
synorb-digest-manifests
Fetch manifests from any digest across all its streams.
synorb-tags
Fuzzy search across entity tags (people, orgs, places, data sources).
synorb-sync
Create or update an internal-ID mapping. This is not a Stream subscription.
synorb-unsync
Remove a sync.
synorb-syncs
List internal-ID mappings with optional filters. This is not Stream inventory or access.
synorb-label
Create a custom label for organizing syncs.
synorb-labels
List all custom labels for your organization.
synorb-guide
Quick start guide — content types, key filters, all 12 domains, available workflow prompts.
synorb-prompts
9 pre-built workflow prompts (morning-briefing, competitor-watch, etc.) with step-by-step tool instructions.
04

Key Glossary

Ten terms that appear everywhere in Synorb. Learn these first.

TermWhat it is
ManifestA content package containing a Signal, Brief, and Record. The unit Synorb delivers to you.
SignalStructured claims extraction for reasoning systems completing workflows. Included on all plans.
BriefStructured narrative for reasoning systems delivering information to human operators. Headline, summary, sentiment, significance.
RecordSource content — one article, one podcast episode, one data release. Enterprise plans only.
ClaimAn atomic assertion extracted from a record. 15–50 per record. Each has a type, confidence level, and evidence classification.
StreamA filtered delivery view. Streams organize content by theme — "Federal Reserve Watch", "AI Infrastructure", etc.
TagA resolved entity — person, organization, place, or data source. Tags link claims across records.
TopicA curated thematic category from Synorb’s topic taxonomy, organized by domain. Used to filter streams by subject area.
DigestA grouping of manifests. Synorb Digests are pre-curated and included on Enterprise plans. User Digests are built by your org (included in plan). Query either type for aggregated content.
Source ChannelA specific content feed within a stream. Each channel has an ID and display name (e.g. "Federal Reserve Bank of St. Louis"). Filter manifests by source_channel_ids.
DomainOne of 12 canonical knowledge domains. Every stream has a home domain and up to three cross-domains.
05

Authentication

Token

Append ?token=YOUR_TOKEN to the MCP server URL. For REST API calls, send an access_token header.

Key + Secret

Send api-key and secret headers with every request.

$ curl -H "api-key: a1b2c3d4-..." -H "secret: xK9#mP2..." \ https://api.synorb.com/account

Manifest Access

Your plan determines which manifest types you can access.

Signals Structured claims for reasoning systems All plans Briefs Structured narratives for reasoning systems All plans Records Structured content objects, enriched with entity tags and topics Enterprise only
06

REST API test live now ↓

All require authentication. Base URL: https://api.synorb.com

Build with your coding assistant
Get free credentials
curl -s https://synorb.com/connect

// Returns:
{
  "credentials": {
    "api_key":    "sk_live_a1b2c3d4...",
    "api_secret": "xK9#mP2$vL...",
    "mcp_token":  "eyJhbGci..."
  },
  "mcp_server": "https://mcp.synorb.com/sse?token=...",
  "mcp_servers": {
    "core": { "url": "https://mcp.synorb.com/sse?token=..." },
    "advanced": { "url": "https://mcp.synorb.com/advanced/sse?token=..." }
  }
}
No signup form. 1,000 free manifests/month on monthly delivery. The secret is shown only once.
Tool-specific setup instructions
Claude Code
claude mcp add synorb --transport sse https://mcp.synorb.com/sse?token=YOUR_MCP_TOKEN
Cursor / Windsurf / ChatGPT Desktop (Core MCP)
Add to MCP config:
{ "mcpServers": { "synorb": { "url": "https://mcp.synorb.com/sse?token=YOUR_MCP_TOKEN" } } }
Advanced MCP (configured workflows)
{ "mcpServers": { "synorb-advanced": { "url": "https://mcp.synorb.com/advanced/sse?token=YOUR_MCP_TOKEN" } } }
REST API (any language)
curl -H "api-key: YOUR_API_KEY" -H "secret: YOUR_API_SECRET" \
  https://api.synorb.com/streams?page_size=5
Codex / Copilot / Any Agent
curl -s https://synorb.com/connect?format=md
Any LLM chat (Claude, ChatGPT, Gemini)
curl -s https://synorb.com/connect?format=md

Paste your API Key and Secret below, then hit Run on any endpoint to see live responses. No credentials yet?

Credentials Get Credentials → Enter your key and secret first.

Account

GET /account
Your profile, plan, and usage.
{ "org": { "id": "17724793080269856", "name": "Acme AI", "org_type": "individual", "contact_email": "team@acme.ai", "is_active": true }, "subscription": { "status": "active", "plan_display_name": "Pro Developer", "endpoint_mcp": true, "endpoint_api": true, "endpoint_s3": false, "endpoint_websocket": false, "endpoint_webhook": false, "endpoint_digests": false }, "users": [{ "name": "User", "role": "owner", "has_active_key": true }], "usage": { "period": "2026-03", "manifests_limit": 100000, "manifests_remaining": 87660 }, "mcp_connector": { "url": "https://mcp.synorb.com/sse?token=YOUR_TOKEN", "docs": "https://synorb.com/docs#mcp" } }

Streams

Most common call
curl -H "api-key: KEY" -H "secret: SEC" \ https://api.synorb.com/streams?home_domain=engineering-technology&page_size=5
GET /streams
List all streams with volume metrics. Filter by home_domain and is_public.
ParamTypeDescription
home_domainenumFilter by canonical domain (12 values)
is_publicboolPublic streams only
pageintPage number, 0-indexed
page_sizeintResults per page, max 200
{ "streams": [ { "id": 17723038993558141, "name": "national-weather", "description": "NWS forecasts and alerts for major US metro areas.", "home_domain": "universe-earth", "manifests_last24h": 808, "manifests_last7d": 1821, "manifests_last30d": 2035 }, { "id": 17723038993547086, "name": "bloomberg-podcasts", "description": "Bloomberg podcast network: Odd Lots, Surveillance, and The Big Take.", "home_domain": "economics-business-work", "manifests_last24h": 0, "manifests_last7d": 18, "manifests_last30d": 157 } ], "pagination": { "total_count": 452, "page_num": 0, "page_size": 50, "next": 1, "prev": null } }
GET /streams/{id}
Stream details — title, status, stream_class, filters, source_channels, and volume metrics.
{ "id": 17723038993540102, "name": "federal-reserve", "title": "Federal Reserve", "description": "All Federal Reserve content: speeches, minutes, press releases, balance sheet data, and Beige Book.", "home_domain": "society-law-government", "status": "live", "stream_class": "discovery", "source_type": "organization", "is_public": true, "manifests_last24h": 5, "manifests_last7d": 42, "manifests_last30d": 187, "claims_last24h": 85, "claims_last7d": 720, "claims_last30d": 3210, "source_channels": [{ "id": "17730001234567891", "name": "openai-blog", "source_channel_display": "OpenAI Blog", "source_type": "firecrawl", "media_format": "text", "is_active": true, "activated_on": "2026-01-15T00:00:00Z", "deactivated_on": "1970-01-01T00:00:00Z", "deactivation_reason": "none" }], "filter_definition": { "tag_ids": ["17723038993540102"], "source_type": "organization" } }
GET /streams/{id}/manifests
Full manifests — source + signal + brief triplets in one call. Paginated and date-filtered. Signal and brief included on all plans. Record (structured enriched objects) at Enterprise only.
ParamTypeDescription
published_date_fromdateStart date (YYYY-MM-DD)
published_date_todateEnd date (YYYY-MM-DD)
tag_idsstringComma-separated tag IDs to filter by (e.g. "123,456"). Returns manifests mentioning ANY of these tags.
tag_typestringFilter by tag type: person, organization, place, topic, data
pageintPage number, 0-indexed
page_sizeintResults per page, max 200
GET /streams/17723038993540102/manifests?page_size=1 { "manifests": [ { "manifest_id": 1772303896681792043, "record_id": 1772303895259186451, "stream_ids": [17723038993540102], "stream_names": ["Federal Reserve Bank of St. Louis"], "matched_at": "2026-03-04T14:22:01", "source": { "record_title": "The End of Rapid Population Growth", "source_url": "https://stlouisfed.org/on-the-economy/2023/mar/end-rapid-population-growth", "source_published_date": "2023-03-06", "source_name": "fed-stlouis-blog", "source_type": "organization", "media_format": "text", "claim_type": "publication", "author": "Charles S. Gascon", "source_channel_ids": ["17732516384529123"], "source_channel_display": "Federal Reserve Bank of St. Louis" }, "signal": {
"story_id": 17737682899496764, "headline": "The End of Rapid Population Growth", "summary": "Analysis of demographic shifts as global population growth decelerates...", "body": { "signal": { "source_url": "...", "claim_count": 18, "featured_count": 4 }, "claims": [ { "claim_text": "Global population growth rate fell below 1% for the first time since 1950", "claim_type": "data", "confidence": "measured", "evidence": "derived", "signal": "Historic demographic inflection point with broad economic implications.", "featured": true, "entities": [{ "name": "United Nations", "type": "organization", "role": "source_org" }] }, ... 17 more claims ], "entity_details": [{ "tag_type": "Organization", "tag_value": "Federal Reserve Bank of St. Louis" }, { "tag_type": "Person", "tag_value": "Charles S. Gascon" }], "topics": ["demographics", "population", "economics"], "domain_classification": { "home_domain": "economics-business-work", "cross_domains": ["health-medicine", "society-law-government"] } }, "sentiment": "neutral", "significance": "high", "version": 1, "claim_count": 18, "reading_time_minutes": 4.5
}, "brief": {
"story_id": 17737682899496765, "headline": "The End of Rapid Population Growth", "summary": "The world's population recently reached 8 billion, but the growth rate has slowed dramatically...", "body": { "key_insights": [ "Global population growth rate fell below 1% for the first time since 1950", "Fertility rates declining in both developed and developing nations", "Economic implications include labor shortages and pension system strain" ], "notable_quotes": [ { "text": "We are witnessing a historic demographic transition...", "speaker": "Charles S. Gascon", "context": "Author's analysis in the St. Louis Fed report." } ], "entity_details": [{ "tag_type": "Organization", "tag_value": "Federal Reserve Bank of St. Louis" }], "topics": ["demographics", "population", "economics"], "domain_classification": { "home_domain": "economics-business-work", "cross_domains": ["health-medicine", "society-law-government"] } }, "sentiment": "neutral", "significance": "high", "version": 1, "reading_time_minutes": 3.0, "key_points_count": 3, "quote_count": 1
}, "record": {
"record_id": "17731495170319394", "title": "Global Population Growth Falls Below 1% for First Time Since 1950", "url": "https://fredsource.stlouisfed.org/population-growth-2026", "source_published_date": "2026-03-18", "source_name": "Federal Reserve Bank of St. Louis", "source_type": "organization", "media_format": "text", "claim_type": "publication", "content": "Is the thought of transitioning into retirement stressing you out? You're not alone. According to the Federal Reserve Bank of St. Louis, global population growth rate fell below 1% for the first time since 1950, signaling a historic demographic shift...", "extra_data": { "extraction": { "entity_details": [{ "tag_type": "Organization", "tag_value": "Federal Reserve Bank of St. Louis" }], "topics": ["demographics", "population", "economics"], "domain_classification": { "home_domain": "economics-business-work", "cross_domains": ["health-medicine"] } } }
} } ], "pagination": { "total_count": 11864, "page_num": 0, "page_size": 1, "next": 1, "prev": null } }

Response Schemas

Every authenticated response wraps the payload in a standard envelope. Full OpenAPI 3.1 spec available for code generation.

Response Envelope (all endpoints) { "data": { ... endpoint-specific payload ... }, "usage": { "quota_limit": 1000000, // monthly manifest quota "quota_used": 6639, // consumed this period "quota_remaining": 993361, // remaining this period "period": "2026-03", // billing period (YYYY-MM) "available": "signal, brief, record", // content levels on your plan "items_in_response": 200 // items in this response } }
Manifest structure

Each manifest contains a source envelope plus three content types. Signal and Brief on all plans; Record at Enterprise.

Shared envelope (every manifest) { "manifest_id": "17723038966...", // unique ID (string) "record_id": "17723038952...", // links to the source record "stream_ids": ["17723038993..."], // streams this manifest routes to "stream_names": ["Bloomberg"], // human-readable stream names "matched_at": "datetime", // when routed to this stream "source": { "record_title": "string", "source_url": "string", "source_published_date": "date", "source_name": "string", "source_type": "person | organization | data", "media_format": "text | audio | social | data | regulatory", "claim_type": "publication | announcement | disclosure | ...", "author": "string or null", "record_version": integer, "source_channel_ids": ["string"], // source channel IDs (list) "source_channel_display": "string or null" // e.g. "Federal Reserve Bank of St. Louis" }, "signal": { ... see Signal below ... }, "brief": { ... see Brief below ... }, "record": { ... see Record below (Enterprise) ... } }
Signal all plans
{ "story_id": "string (unique ID)", "stream_id": "string", "source_published_date": "YYYY-MM-DD", "source_type": "person | organization | data", "media_format": "text | audio | social | data", "headline": "string", "summary": "string", "body": { "claims": [ { "claim_text": "string", "claim_type": "publication | announcement | disclosure | remarks | data | analysis | event", "confidence": "stated | implied | inferred | measured", "evidence": "direct_quote | paraphrase | derived | observed", "quote": "string or null", "signal": "why it matters", "featured": boolean, "key_point_index": int|null, "entities": [{ "name": "", "type": "organization | person | place | topic", "role": "source_org | speaker | subject | mentioned" }] } ], "entity_details": [// array of objects (not a dict) { "tag_type": "Organization | Person | Place | Topic", "tag_value": "string" } ], "topics": ["string", ...], "domain_classification": { "home_domain": "string", "cross_domains": [""] } }, "sentiment": "positive | negative | neutral | mixed | indeterminate", "significance": "low | medium | high", "story_version": integer, "reading_time_minutes": integer, "record_id": "string", "record_url": "https://...", "record_version": integer }
Brief all plans
{ "story_id": "string (unique ID)", "stream_id": "string", "source_published_date": "YYYY-MM-DD", "source_type": "person | organization | data", "media_format": "text | audio | social | data", "headline": "string", "summary": "string", "body": { "key_insights": [ "string", ... ], "notable_quotes": [{ "text": "string", "speaker": "string", "context": "string" }], "entity_details": [// array of objects (not a dict) { "tag_type": "Organization | Person | Place | Topic", "tag_value": "string" } ], "topics": ["string", ...], "domain_classification": { "home_domain": "string", "cross_domains": [""] }, // Audio only (media_format = "audio"): "actionable_takeaways": ["string"], "guest_details": [{ "name": "string", "title": "string", "affiliation": "string" }], "cross_promotion": "string", "cultural_relevance": "string" }, "body_markdown": "## Key Insights\n- ...\n\n## Notable Quotes\n- ...", "sentiment": "positive | negative | neutral | mixed | indeterminate", "significance": "low | medium | high", "story_version": integer, "key_points_count": integer, "quote_count": integer, "reading_time_minutes": integer, "record_id": "string", "record_url": "https://...", "record_version": integer }
Record Enterprise
{ "record_id": "string (unique ID)", "title": "string", "url": "string", "source_published_date": "date", "synorb_ingested_at": "datetime", "source_name": "string", "source_type": "person | organization | data", "media_format": "text | audio | social | data | regulatory", "claim_type": "publication | announcement | disclosure | remarks | data | analysis | event", "author": "string or null", "content": "full source text", "record_version": integer, "extra_data": { "extraction": { "entity_details": [{ "tag_type": "", "tag_value": "" }] } }, "status": "pending | complete", "record_version_note": "string or null", "stream_id": "string", "matched_at": "datetime" }
Enum Reference
claim_type publication — research/report announcement — press release disclosure — filing/regulatory remarks — speech/interview data — statistic analysis — editorial insight event — occurrence
confidence stated — explicitly stated implied — strongly implied inferred — derived by reasoning measured — quantitative data
evidence direct_quote — exact quote paraphrase — restated derived — synthesized observed — from facts/data

Lookups

GET /manifests/{record_id}
Single manifest lookup by record ID. Returns the same nested structure as the stream manifests endpoint — source, signal, brief, and record. Signal and Brief on all plans; Record included at Enterprise.
ParamTypeDescription
record_idintThe record's unique ID (string)
GET /manifests/1772303895259186451 { "manifest_id": 1772303896681792043, "record_id": 1772303895259186451, "stream_ids": [17723038993540102], "stream_names": ["Federal Reserve Bank of St. Louis"], "source": { "record_title": "The End of Rapid Population Growth", "source_url": "https://stlouisfed.org/on-the-economy/2023/mar/end-rapid-population-growth", "source_published_date": "2023-03-06", "source_name": "fed-stlouis-blog", "source_type": "organization", "media_format": "text", "claim_type": "publication", "author": "Charles S. Gascon", "source_channel_ids": ["17732516384529123"], "source_channel_display": "Federal Reserve Bank of St. Louis" }, "signal": { "story_id": 17737682899496764, "headline": "The End of Rapid Population Growth", "summary": "Analysis of demographic shifts...", "body": { "claims": [{ "claim_text": "...", "claim_type": "data", "confidence": "measured", "evidence": "derived", ... }] }, "sentiment": "neutral", "significance": "high", "version": 1, "claim_count": 18 }, "brief": { "story_id": 17737682899496765, "headline": "The End of Rapid Population Growth", "summary": "The world's population recently reached 8 billion...", "body": { "key_insights": ["..."], "notable_quotes": [{ "text": "...", "speaker": "..." }] }, "body_markdown": "## Key Insights\n- ...", "sentiment": "neutral", "significance": "high", "version": 1, "key_points_count": 3, "quote_count": 1 }, "record": { // Enterprise only "record_id": "17731495170319394", "title": "Global Population Growth Falls Below 1% for First Time Since 1950", "url": "https://fredsource.stlouisfed.org/population-growth-2026", "source_published_date": "2026-03-18", "source_name": "Federal Reserve Bank of St. Louis", "source_type": "organization", "media_format": "text", "claim_type": "publication", "content": "Is the thought of transitioning into retirement stressing you out? You're not alone...", "extra_data": null } }

Firehose Endpoints Platform plans only

Firehose customers receive manifest_id via WebSocket delivery. Use these endpoints to pull individual components by manifest ID.

GET /signal/{manifest_id}
Signal by manifest ID.
GET /brief/{manifest_id}
Brief by manifest ID.
GET /record/{manifest_id}
Record by manifest ID. Streams customers on Enterprise plans get records within the /manifests endpoint response.

Digest Builder Startup | Enterprise

Digests are custom groupings of manifests. Build your own using stream IDs, dynamic filter rules (topics, tags, domains, sources), or both. Included in Startup and Enterprise plans at no extra cost.

Create a digest
curl -X POST -H "api-key: KEY" -H "secret: SEC" \ -d '{"name":"AI Policy Watch","stream_ids":[17723038993540102]}' \ https://api.synorb.com/digests
POST/digests
Create a new digest. Requires at least one of stream_ids or filter_spec. Optional content_filters filter content within matched streams.
POST /digests { "name": "AI Policy Watch", "stream_ids": [17723038993540102, 17723038993544463], "filter_spec": { "rules": [ {"dimension": "topic", "values": ["AI", "machine learning"]}, {"dimension": "domain", "values": ["society-law-government"]} ], "combine": "AND" }, "content_filters": { "media_format": ["audio"], "source_channel_ids": [42, 87] } } filter_spec dimensions: topic, tag, domain, source, source_type, claim_type, media_format. content_filters: delivery-time filters applied within matched streams. • media_format: text, audio, video, social, data, regulatory • source_channel_ids: specific source channel IDs to include
GET /digests
List your org's digests with stream counts and filter status.
{ "digests": [ { "id": 1, "name": "AI Policy Watch", "stream_count": 8, "digest_type": "user", "has_dynamic_filter": true } ] }
GET /digests/{id}
Digest details including resolved stream list and filter spec.
{ "digest": { "id": 1, "stream_ids": [...], "filter_spec": {...} }, "streams": [{ "id": ..., "title": "Federal Reserve", "manifests_last7d": 312 }] }
PUT /digests/{id}
Update name, description, filter_spec, or content_filters. Set content_filters to null to remove.
DELETE/digests/{id}
Soft-delete a digest (permanently deactivates).
POST/digests/{id}/activate
Re-enable a deactivated digest.
POST/digests/{id}/deactivate
Pause a digest (reversible via activate).
POST/digests/{id}/streams
Add streams to a digest.
{ "stream_ids": [17723038993540102, 17723038993544463] }
DELETE/digests/{id}/streams
Remove streams from a digest.
{ "stream_ids": [17723038993540102] }
POST/digests/preview-filter
Preview matching streams before creating a digest. Returns up to 50 results.
POST /digests/preview-filter { "filter_spec": { "rules": [ {"dimension": "topic", "values": ["AI"]} ] } } { "stream_count": 23, "streams": [{ "id": ..., "title": ... }] }
GET /digests/{id}/manifests
Full manifests across all streams in a digest. Same nested structure as /streams/{id}/manifests — source, signal, and brief on all plans. Record at Enterprise.
ParamTypeDescription
published_date_fromdateStart date (YYYY-MM-DD)
published_date_todateEnd date (YYYY-MM-DD)
tag_idsstringComma-separated tag IDs to filter by
tag_typestringFilter by tag type: person, organization, place, topic, data
pageintPage number, 0-indexed
page_sizeintResults per page, max 200

Ontology Sync Enterprise

Map Synorb tags and topics to your internal identifiers. Once synced, every delivery payload automatically includes your IDs alongside Synorb’s.

Sync a tag
curl -X POST "https://api.synorb.com/ontology/sync?object_type=tag&object_id=1234&external_id=CRM-TSLA-001" \ -H "api-key: KEY" -H "secret: SEC"
POST/ontology/sync
Create or update a sync. Re-syncing the same object overwrites the previous one.
ParamTypeDescription
object_typestringWhat to sync — tag, topic, or stream
object_idintThe Synorb object ID (from tag search or topic browse)
external_idstringYour internal ID (e.g. CRM-TSLA-001, ticker:TSLA)
external_namestringYour display name (optional)
labelsstringComma-separated labels (optional)
POST /ontology/sync?object_type=tag&object_id=1234&external_id=CRM-TSLA-001&external_name=Tesla+Corp&labels=watchlist,buy-side { "id": 42, "status": "created" }
DELETE/ontology/sync/{id}
Remove a sync. Soft-deletes the record, which can be re-created later.
GET /ontology/syncs
List active syncs for your organization with Synorb names resolved.
ParamTypeDescription
object_typestringFilter by type: tag, topic, or stream
labelstringFilter by label
pageintPage number, 0-indexed
page_sizeintResults per page, max 200
GET /ontology/tags
Search the Synorb tag catalog with fuzzy matching. Returns tags with canonical name, type, and aliases.
ParamTypeDescription
searchstringFuzzy search term
typestringFilter: person, organization, place, topic
GET /ontology/topics
Browse the Synorb topic catalog by name and domain.
ParamTypeDescription
searchstringSearch term
domainstringFilter by domain
POST/ontology/labels
Create a custom label for organizing syncs (e.g. ‘buy-side’, ‘watchlist’).
GET /ontology/labels
List all custom label definitions for your organization.

Python SDK

Manage syncs programmatically. Install via pip install synorb.

# Initialize from synorb import Synorb client = Synorb(api_key="YOUR_KEY", api_secret="YOUR_SECRET") # Search tags results = client.ontology.search("Tesla", tag_type="organization") # Create a sync client.ontology.sync(tag_id=1234, external_id="CRM-TSLA-001", external_name="Tesla Corp", labels=["watchlist", "buy-side"]) # List syncs for s in client.ontology.syncs(): print(f"{b.tag_name} → {b.external_id}") # Remove a sync client.ontology.unsync(tag_id=1234)
07

Webhooks test live now ↓

Push notifications when events happen in your streams. Startup and above. Webhook payloads contain metadata only — fetch full content via the REST API.

Event Types

EventTriggerDescription
manifest.matchedReal-timeA new manifest was delivered to one of your subscribed streams
digest.new_contentReal-timeA new manifest was delivered to a stream in your user digest
digest.createdOn actionA Synorb Digest was added to your account
digest.updatedOn actionA digest was updated — payload includes message describing what changed (streams added/removed, metadata, filters)
digest.removedOn actionA Synorb Digest was removed from your account
stream.createdOn publishA new stream went live on the platform
stream.removedOn actionA stream was permanently deactivated — payload includes reason
stream.unpublishedOn actionA stream was temporarily unpublished (may return) — payload includes reason

Register a Webhook

POST /webhooks { "url": "https://your-app.com/webhook", "label": "Production alerts", "events": ["manifest.matched", "stream.created"] } { "id": 7, "secret": "whsec_..." } Save the secret — it is shown only once. Default events: ["manifest.matched"]. Add "stream.created" to get notified about new streams.

Payload: manifest.matched

{ "event": "manifest.matched", "webhook_id": 7, "timestamp": "2026-03-04T14:30:00.000Z", "data": { "manifest_id": 1772434238663730227, "stream_id": 17723038993540102, "stream_name": "federal-reserve", "headline": "The End of Rapid Population Growth", "published_date": "2026-03-04", "claim_count": 7, "tags": ["Federal Reserve", "United Nations"], "home_domain": "society-law-government" } } Metadata only. Call GET /streams/{stream_id}/manifests for full content.

Payload: stream.created

{ "event": "stream.created", "webhook_id": 7, "timestamp": "2026-03-04T14:30:00.000Z", "data": { "stream_id": 17723038993540102, "name": "federal-reserve", "title": "Federal Reserve", "description": "All Federal Reserve content: speeches, minutes, press releases, balance sheet data, and Beige Book.", "home_domain": "society-law-government", "cross_domains": ["economics-business-work", "physical-sciences-mathematics"] } }

Digest Webhooks

Get notified when new content lands in your user digest. Register a webhook scoped to a specific digest — it fires digest.new_content every time a manifest is delivered to any stream in that digest.

POST /digests/{digest_id}/webhook { "url": "https://your-app.com/digest-hook", "label": "Federal Reserve alerts" } { "id": 12, "digest_id": 42, "secret": "whsec_..." } Save the secret — it is shown only once. Max 5 webhooks per digest.

Payload: digest.new_content

{ "event": "digest.new_content", "webhook_id": 12, "timestamp": "2026-03-13T14:30:00.000Z", "data": { "digest_id": 42, "digest_name": "Federal Reserve", "manifest_id": 1772434238663730227, "stream_id": 17723038993540102, "stream_name": "federal-reserve", "headline": "The End of Rapid Population Growth", "published_date": "2026-03-13", "available": ["signal", "brief"] } } Metadata only. Call GET /digests/{digest_id}/manifests for full content.

HMAC Signature Verification

Header: X-Synorb-Signature: sha256=<hex_digest> # Python import hmac, hashlib expected = hmac.new(secret.encode(), payload_bytes, hashlib.sha256).hexdigest() assert hmac.compare_digest(f"sha256={expected}", signature_header)

Retry & Circuit Breaker

Attempt 1: Immediate Timeout: 10s Attempt 2: After 60s Timeout: 10s Attempt 3: After 300s Timeout: 10s 10 consecutive failures → webhook auto-disabled. Reactivate: POST /webhooks/{id}/reactivate

Webhook Management

GET/webhooksList your webhooks
POST/webhooksRegister new webhook
POST/webhooks/{id}/disableDisable (reversible)
POST/webhooks/{id}/reactivateRe-enable disabled webhook
DELETE/webhooks/{id}Permanently delete + logs
POST/webhooks/{id}/testSend test event
GET/webhooks/{id}/logsDelivery history
POST/digests/{id}/webhookRegister digest webhook
GET/digests/{id}/webhooksList digest webhooks

Try It Live

Plan must include webhooks. Register webhooks in your dashboard first.

Credentials Get Credentials →
08

MCP Servers test live now ↓

Core MCP exposes 3 tools for the normal agent loop. Advanced MCP is a separate configured surface for account, digest, sync ontology, labels, prompt templates, and lower-level content tools. Both use the same Redis-backed cache layer.

$ connect mcp.synorb.com/sse Core loop — synorb-catalog, synorb-details, synorb-manifests mcp.synorb.com/advanced/sse Advanced tools — account, stream aliases, signals, briefs, records, digests, ontology, labels, help 9 prompts — morning-briefing, central-bank-watch, earnings-roundup, podcast-recap, vc-landscape, tech-pulse, research-briefing, competitor-watch, policy-tracker Compact mode: headlines + summaries by default. Set compact=False for full bodies. Auth: ?token=YOUR_TOKEN, Authorization Bearer, or x-access-token.

Setup

Core MCP — Claude Code / Cursor / Windsurf
{ "mcpServers": { "synorb": { "url": "https://mcp.synorb.com/sse?token=YOUR_TOKEN" } } }
Advanced MCP — configured workflows
{ "mcpServers": { "synorb-advanced": { "url": "https://mcp.synorb.com/advanced/sse?token=YOUR_TOKEN" } } }
ChatGPT / Other

Paste the Connector URL from your credentials page into your MCP connector settings.

Perplexity Computer

New Perplexity users can activate Synorb Free with email only. The response returns the Core MCP URL and token immediately, and the same credentials are emailed. Existing Synorb users validate with api-key and secret.

$ curl -X POST https://api.synorb.com/perplexity/free-credentials \ -H "content-type: application/json" \ -d '{"email":"user@company.com"}'
$ curl -X POST https://api.synorb.com/perplexity/auth/validate \ -H "api-key: YOUR_API_KEY" \ -H "secret: YOUR_API_SECRET"

Primary Agent Workflow

synorb-catalog
Find Streams from user intent. Search by topic, company, domain, media type, source domain, or broad exploratory query.
synorb-catalog(query='AI infrastructure earnings', home_domains=['economics-business-work'])
synorb-details
Inspect selected Streams before pulling. Returns source channels, media formats, available filters, volume, and a recommended Manifest call.
synorb-details(stream_ids=[17723038993540102, ...])
synorb-manifests
Pull Manifest triplets across one or more Streams. Supports stream_ids, home_domains, tag_names, tag_ids, media_format, source_channel_ids, significance, dates, compact/full output, and target_count diagnostics.
synorb-manifests(stream_ids=[...], tag_names=['AI infrastructure'], significance='high', target_count=10)

How Agents Should Loop

Start with synorb-catalog, read synorb-details for the best filters, then pull with synorb-manifests. If the result count is low, follow diagnostics.retry_guidance: relax significance, add adjacent Streams, broaden home_domains, or remove narrow tag filters. If the result count is too broad, add tag_names, media_format, source_channel_ids, or a tighter date range.

Key Features

Compact Mode
Manifest tools return headlines + summaries by default. Set compact=False when the agent needs full bodies, key insights, and quotes.
Significance Filter
Use significance='high' for precision. Relax it to medium or remove it when the diagnostics say the result set is thin.
Tag/Topic Filtering
Pass human-readable tag_names directly to Core synorb-manifests. Use Advanced synorb-tags only when you need to inspect exact canonical tags or IDs.

Advanced MCP Discovery Tools

Use the Advanced server when you need direct low-level control. For most work, prefer the Core loop above.

synorb-streams
Advanced catalog alias for explicit stream browsing. Prefer synorb-catalog for agent workflows.
"Find podcast streams" — synorb-streams(media_format='audio')

Advanced MCP Stream Content Tools

Fetch narrow content from a specific Stream. These remain available on the Advanced server for specialized workflows, while Core synorb-manifests is the primary retrieval surface.

synorb-signals
Structured claims — atomic assertions with confidence and evidence tags. Best for data extraction.
synorb-briefs
Editorial narratives with key insights, notable quotes, and actionable takeaways. Best for most LLM tasks.
synorb-multi-stream
Advanced legacy multi-Stream story search. Prefer synorb-manifests for primary Manifest pulls.
synorb-records
Raw source content (full article text, transcripts). Enterprise only.
synorb-manifests
Primary retrieval surface: complete triplets across one or more Streams with diagnostics and retry guidance.
synorb-stream-info
Advanced single-Stream detail alias. Prefer synorb-details when selecting filters across a candidate set.
synorb-account
Plan, quota usage, and available endpoints.
synorb-digests
List your digests — curated bundles of streams with AND/OR filtering.
synorb-digest-manifests
Content from a digest across all its streams. Supports tag_ids filtering.

Sync Ontology Tools

Search entities and topics, manage syncs, create labels.

synorb-tags
Search all 5 tag types: person, organization, place, topic, data. Unified search with fuzzy matching.
synorb-sync
Map a Synorb entity to your internal ID. All delivery payloads include your identifier. This is not a Stream subscription.
synorb-unsync
Remove a sync.
synorb-syncs
List internal-ID mappings with resolved names. This is not Stream inventory or access.
synorb-label
Create a label for organizing syncs (buy-side, portfolio, watchlist).
synorb-labels
List your custom labels.

Help & Workflow Tools

Onboarding and guided workflows. These tools surface prompts and resources for MCP clients that don't support the prompts/resources protocol.

synorb-guide
Quick start guide — content types, key filters, all 12 domains, and available workflow prompts. Call this first if you're unsure which tool to use.
synorb-prompts
9 pre-built workflow prompts with step-by-step tool instructions. Call with no arguments to list all, or pass a name to get a specific prompt.
synorb-prompts(name='morning-briefing') — or synorb-prompts(name='competitor-watch:Google')
ParamTypeRequired
namestringno — omit to list all, or 'morning-briefing', 'competitor-watch:Google', 'policy-tracker:tariffs'

Prompt Templates

Pre-built workflows — also available via the synorb-prompts tool above.

morning-briefing
Executive overnight briefing of top stories.
central-bank-watch
Fed, ECB, and global monetary policy update for fixed income analysts.
earnings-roundup
Latest earnings results, guidance, and management commentary.
research-briefing
What are banks and asset managers publishing? Goldman, Bridgewater, Vanguard.
podcast-recap
Best business podcast episodes this week. Bloomberg, All-In, Lex Fridman.
vc-landscape
What are top VCs writing about? Sequoia, a16z, Bessemer.
tech-pulse
What's happening in tech? Engineering blogs, AI news, tech leaders.
competitor-watch(company)
Track a specific company's blog, press, and mentions.
policy-tracker(topic)
Think tank research on a specific topic. Brookings, CSIS, RAND.

Try Synorb Live

Paste your Synorb API key, API secret, and LLM API key, pick a provider, hit Connect — then ask anything about your streams.

Enter your Synorb API key, secret, and LLM API key.
09

WebSocket

Real-time firehose. Platform plans only. Manifests pushed as they arrive.

Connect & Authenticate

Connect to wss://ws.synorb.com. Send an auth message within 30 seconds or the connection closes.

# Token auth { "type": "auth", "token": "YOUR_TOKEN" } # Or API key auth { "type": "auth", "api_key": "KEY_ID", "secret": "SECRET" } { "type": "auth_ok", "org_id": 42, "org_name": "Acme Corp", "plan": "platform", "available": 3, "connected_at": "2026-03-04T14:29:58.000Z" }

Subscribe

Filter by stream IDs, domains, or tag types. All filters are OR — a manifest matching any filter is delivered. Update subscriptions anytime by sending a new subscribe message.

{ "type": "subscribe", "streams": [17723038993540102], "domains": ["economics-business-work"], "tag_types": ["organization"] } { "type": "subscribed", "streams": [17723038993540102], "domains": ["economics-business-work"], "tag_types": ["organization"], "subscribed_at": "2026-03-04T14:30:00.000Z" } # Manifests pushed as they arrive { "type": "manifest", "stream_id": 17723038993540102, "manifest_id": 1772434238663730227, "home_domain": "society-law-government", "data": { ... }, "timestamp": "2026-03-04T14:30:01.000Z" }

Message Types

Client sendsServer respondsDescription
authauth_ok / auth_errorAuthenticate (required first)
subscribesubscribedSet stream/domain/tag_type filters
unsubscribeunsubscribedRemove specific streams
pingpongHeartbeat
statusstatusConnection info + subscription state
manifestPushed when a manifest matches your filters

Subscription Filters

FilterTypeDescription
streamsint[]Match by stream ID
domainsstring[]Match by home domain (e.g. "economics-business-work")
tag_typesstring[]Match by tag type (person, organization, place, data)

Contact us to enable WebSocket access.

10

S3 Export

Bulk export. All three formats per stream, organized by calendar month.

GET /backfill/grants
List your available export grants.
POST /backfill/{grant_id}/download
Generate a presigned S3 URL. Valid for 7 days.
POST /export/trigger
Trigger bulk export for a stream and date range.
ParamTypeDescription
stream_idintTarget stream
date_fromdateStart date
date_todateEnd date

S3 Structure

exports/streams/{stream_id}/2026-01/ records.jsonl signals.jsonl briefs.jsonl exports/streams/{stream_id}/2026-02/ records.jsonl signals.jsonl briefs.jsonl
11

Data Model

Signals

Atomic claims extracted from content. 15-50 per record. Each has a type, confidence level, and evidence classification.

Types: publication announcement disclosure remarks data analysis event

Confidence: stated implied inferred measured

Evidence: direct_quote paraphrase derived observed

Featured claims are linked to brief key points via key_point_index.

Briefs

Structured narratives for reasoning systems delivering information to human operators. Headline, summary, body, sentiment, significance score, and reading time.

Records

Source content with full provenance — source URL, publication date, author, content type, and metadata. Enterprise plans only.

Source Types

Every source is classified as one of three types:

person — an individual (founder, researcher, executive).

organization — a company, publication, government body, or institution.

data — a statistical or data feed (indices, filings, datasets).

Media Formats

Every record carries a media format describing the original medium:

text — articles, blog posts, essays, reports, press releases, white papers.

audio — podcasts, earnings calls, conference talks, radio interviews.

video — YouTube, keynotes, TV interviews, webinars, demos.

social — tweets/X posts, threads, short-form social content.

data — statistical releases, datasets, indices, API data feeds.

Source Channels

Each stream is fed by one or more source channels. A source channel represents a specific content feed — e.g. "OpenAI Blog", "Federal Reserve Bank of St. Louis", "Jim Fan on X".

Every manifest includes source_channel_ids (list) and source_channel_display in the source object. Use source_channel_ids as a query parameter to filter manifests by channel.

Streams

Filtered views over content. Three types:

Discovery — structured summaries from web content (news, blogs, reports).

Narrative — machine-written narratives from numerical and statistical data.

Research — analysis reports written for machine consumption.

Domains

Every stream has one home domain and three cross-domains. 12 canonical domains:

12

Full Glossary

Every term in the Synorb system. Click a category to expand.

TermDefinition
ManifestA content package containing a Signal, Brief, and Record. The unit Synorb delivers to you.
SignalStructured claims extraction for reasoning systems completing workflows. body contains: claims (array), entity_details (array of {tag_type, tag_value} objects), topics (array of strings), domain_classification (object). Available on all plans.
BriefStructured narrative for reasoning systems delivering information to human operators. body contains: key_insights (array of strings), notable_quotes (array of objects), entity_details (array of {tag_type, tag_value} objects), topics (array of strings), domain_classification (object), sentiment, significance. Available on all plans. Audio manifests include 4 additional fields: actionable_takeaways, guest_details (name/title/affiliation), cross_promotion, cultural_relevance.
RecordSource content enriched with entity tags, topics, and domain classification in extra_data.extraction. Enterprise plans only.
ClaimAtomic assertion extracted from a record. 15–50 per record. The fundamental unit of Synorb intelligence.
SourceA tracked publication. Each source has a category and crawl frequency.
TermDefinition
StreamFiltered delivery view. Organizes content by theme. Three types: Discovery, Narrative, Research.
DigestGrouping of manifests. Synorb Digests (pre-curated, included on Enterprise) and User Digests (org-built, included in plan).
TermDefinition
TagA resolved entity — person, organization, place, or data source. Tags link claims across records.
Tag TypeOne of five: person, organization, place, topic, data.
Tag AliasAlternate name for a tag. "Elon Musk" and "Musk" resolve to the same tag.
TopicA curated thematic category from Synorb’s topic taxonomy. Topics are organized by domain and used to filter streams by subject area.
Topic DomainTop-level grouping for topics. Maps to the 12 canonical domains (e.g. economics-business-work, engineering-technology).
TermDefinition
claim_typepublication announcement disclosure remarks data analysis event
confidencestated (explicitly said) · implied (strongly suggested) · inferred (derived by reasoning) · measured (numerical data)
evidencedirect_quote · paraphrase · derived · observed
featuredBoolean. Featured claims are linked to brief key points via key_point_index.
arts-culture-entertainment
economics-business-work
engineering-technology
everyday-life-practical-knowledge
health-medicine
people-biography-history
language-literature
life-environment
physical-sciences-mathematics
places-geography
society-law-government
universe-earth
TierScheduleAvailable On
ContinuousContent available as it's produced. No batching delay.Enterprise
DailyPrevious day's content delivered at 0 UTC. Today's content appears tomorrow.Vibe Coder, Pro Developer, Startup
WeeklyPrevious week's content delivered Monday at 0 UTC. This week's content appears next Monday.Vibe Coder, Pro Developer, Startup
MonthlyPrevious month's content delivered on the 1st at 0 UTC. This month's content appears on the 1st of next month.Free, Vibe Coder, Pro Developer, Startup

Delivery cadence is selectable — choose the tier that fits your workflow. All plans share the same 4-month data window; cadence controls freshness, not depth. Free plan is monthly only.

TermDefinition
source_typeperson (individual) · organization (company, government) · data (statistical feed)
media_formattext · audio · video · social · data · transcript
availableFormats included in your plan. All plans include signal + brief. Enterprise adds record (structured enriched objects).
TermDefinition
DiscoveryStructured summaries from human web content — news, blogs, podcasts, reports.
NarrativeMachine-written narratives generated from numerical and statistical data sources.
ResearchAnalysis reports and research written specifically for machine consumption.
TermDefinition
significance0–100 score. How important the content is within its domain. Used for ranking and filtering.
sentiment-1.0 to 1.0. Directional sentiment of the overall content.
13

Plans & Limits

STREAMS PRODUCT Free $0 1,000 manifests/mo Core MCP + REST API. Signals + Briefs. Vibe Coder $10–$18/mo 10,000 manifests/mo Core MCP + REST API. Signals + Briefs. Pro Developer $50–$90/mo 100,000 manifests/mo Core MCP + REST API. Signals + Briefs. Startup $500–$900/mo 1,000,000 manifests/mo Core MCP + Advanced MCP + REST API + Digest Builder + Webhooks + S3. Signals + Briefs. Enterprise Contact us Custom Core MCP + Advanced MCP + REST API + Digest Builder + Synorb Digests + Webhooks + Sync Ontology + Support. Signals + Briefs + Records. MANIFEST ACCESS Signal Structured claims extraction All plans Brief Structured narrative summary All plans Record Structured content objects, enriched with entity tags and topics Enterprise only FEATURE GATING MCP Server All plans REST API All plans Digest Builder Startup | Enterprise Synorb Digests Enterprise (included) Webhooks Startup | Enterprise S3 Export Startup | Enterprise Records Enterprise only Sync Ontology Enterprise only Support Enterprise only OVERAGE Free: hard cap. Vibe Coder | Pro Developer | Startup: $0.001/manifest. Enterprise: negotiated. REFRESH CADENCE Manifests are produced continuously but delivered in batches at 0 UTC. Monthly Batch on the 1st at 0 UTC. Last month's manifests available on the 1st. Weekly Batch on Monday at 0 UTC. Last week's manifests available Monday. Daily Batch at 0 UTC. Yesterday's manifests available today. Continuous Real-time. Manifests available as produced. Free: monthly only. Vibe Coder | Pro Developer | Startup: choose monthly, weekly, or daily. Enterprise: continuous. PAYMENT Free: none. Vibe Coder | Pro Developer: Credit Card. Startup: ACH. Enterprise: Wire. Platform (Firehose) Contact us Custom All channels + WebSocket. Sync Ontology. Signals + Briefs + Records.

Quotas reset monthly. Free plans have a hard cap. Paid plans allow overage at per-manifest rates. Backfills available as one-time purchases via S3 (up to 3 years).

Every response includes usage headers: X-Synorb-Quota-Limit, X-Synorb-Quota-Used, X-Synorb-Quota-Remaining, X-Synorb-Period, X-Synorb-Content-Level.

14

Synorb Digests Included at no additional charge on Enterprise

Pre-curated intelligence bundles built by Synorb. Each digest groups streams around a theme and is included with Enterprise plans. Different from the Digest Builder, which lets you build your own on Startup | Enterprise plans.

1. Browse the catalog

The public catalog is open — no auth required.

GET /api/digests { "digests": [ { "name": "Federal Reserve Watch", "slug": "federal-reserve-watch", "stream_count": 12, "manifests_last30d": 72 } ]}

2. Add (Enterprise included)

Enterprise plans can add Synorb Digests directly. No billing, no clones — the canonical digest is shared read-only. Changes flow through automatically.

POST /digests/synorb/{id}/add { "status": "added", "digest_id": 5 } # Remove DELETE /digests/synorb/{id}/remove { "status": "removed", "digest_id": 5 } # List added Synorb Digests GET /digests/synorb { "digests": [{ "digest_type": "synorb", "access_type": "included" }] }

3. Fetch manifests

Once added, pull manifests via REST API or MCP — same signal + brief structure as stream manifests.

# REST API GET /digests/{id}/manifests?published_date_from=2026-03-01&published_date_to=2026-03-09 Same manifest structure: source + signal + brief (record at Enterprise). # MCP synorb-digests List your added digests synorb-digest-manifests Fetch manifests from a digest

Give your agents the context they deserve.

Get Credentials