# Synorb

> Synorb's Temporal Context Graph is a live, growing graph of structured claims, Source Channels, Streams, and Manifests. It is a feed-first alternative to repeated web scraping and cold web search for AI teams that need content feeds for AI agents, RAG data streams, and source-grounded context from known coverage areas.

## Test Synorb Feeds for Free

Want to connect to Synorb's graph to test source-grounded feeds for free?

  curl -s https://synorb.com/connect

The response returns Starter credentials, API key, API secret, MCP token, the Core MCP URL (`https://mcp.synorb.com/mcp`), Advanced MCP details, and REST API setup details. Use it to test content feeds for AI agents, RAG data streams, and source-grounded Manifests.

## Quick Start

Get Starter keys (1,000 manifests/month, Daily Batch delivery) from
the Starter email flow at `https://synorb.com/keys` or programmatically:

```
curl -s https://synorb.com/connect
```

Returns:

```json
{
  "credentials": {
    "api_key": "sk_live_...",
    "api_secret": "xK9#...",
    "mcp_token": "eyJhbGci..."
  },
  "mcp_server": "https://mcp.synorb.com/mcp",
  "mcp_servers": {
    "core": {
      "url": "https://mcp.synorb.com/mcp",
      "headers": { "Authorization": "Bearer ..." }
    },
    "core_sse": { "url": "https://mcp.synorb.com/sse?token=..." },
    "advanced": {
      "url": "https://mcp.synorb.com/advanced/mcp",
      "headers": { "Authorization": "Bearer ..." }
    }
  },
  "config": {
    "mcpServers": {
      "synorb": {
        "url": "https://mcp.synorb.com/mcp",
        "headers": { "Authorization": "Bearer ..." }
      }
    }
  }
}
```

Save all three values. The `api_secret` is shown only once. Use `mcp_token` for MCP connections, `api_key` + `api_secret` for REST API calls. The email flow also includes tokenized connector URLs for hosts that ask for one pasteable URL.

Existing MCP users can validate the same `mcp_token` with the MCP profile
endpoint before installing the server config. REST API users and partners should
validate with `api_key` + `api_secret` via `/account`.

### Setup Guides for Coding Agents

Use these public setup pages when connecting Synorb to an MCP-capable coding
agent or another MCP client:

- Build hub: `https://synorb.com/build`
- Any MCP client: `https://synorb.com/build/mcp`
- Lovable: `https://synorb.com/build/lovable-mcp`
- Cursor: `https://synorb.com/build/cursor-mcp`
- Claude: `https://synorb.com/build/claude-mcp`
- Codex: `https://synorb.com/build/codex-mcp`
- Windsurf: `https://synorb.com/build/windsurf-mcp`

Task-specific build guides:

- AI app builder examples with Synorb: `https://synorb.com/build/ai-app-builder-examples`
- Build a content feed app with Lovable: `https://synorb.com/build/lovable-content-feed-app`
- Build a news website with Lovable: `https://synorb.com/build/lovable-news-website`
- Build a news website with Cursor: `https://synorb.com/build/cursor-news-website`
- Build a company monitor with Cursor: `https://synorb.com/build/cursor-company-monitor`
- Build a research dashboard with Claude: `https://synorb.com/build/claude-research-dashboard`
- Build an MCP news feed: `https://synorb.com/build/mcp-news-feed`
- Build a content feed app with Replit: `https://synorb.com/build/replit-content-feed-app`
- Build a company monitor with Windsurf: `https://synorb.com/build/windsurf-company-monitor`
- Build an agent data feed with Codex: `https://synorb.com/build/codex-agent-data-feed`
- Build an AI newsletter with Lovable: `https://synorb.com/build/lovable-ai-newsletter`
- Build a research dashboard with Cursor: `https://synorb.com/build/cursor-research-dashboard`
- Build a Next.js AI news app: `https://synorb.com/build/nextjs-ai-news-app`
- Build an agent research monitor: `https://synorb.com/build/agent-research-monitor`

Agent-specific build intent pages:

- How to Build a Client Briefing Portal with Lovable and Synorb: `https://synorb.com/build/lovable-client-briefing-portal`
- How to Build a Market Intelligence App with Lovable and Synorb: `https://synorb.com/build/lovable-market-intelligence-app`
- How to Add a Content Feed API with Cursor and Synorb: `https://synorb.com/build/cursor-content-feed-api`
- How to Build a Policy Monitor with Cursor and Synorb: `https://synorb.com/build/cursor-policy-monitor`
- How to Build a Next.js Research Dashboard with Cursor and Synorb: `https://synorb.com/build/cursor-nextjs-research-dashboard`
- Build a 50-State Policy Signal Room with Replit and Synorb: `https://synorb.com/build/replit-statehouse-alert-app`
- Build an Exact-Source Policy Wire with Replit and Synorb: `https://synorb.com/build/replit-slack-email-policy-watcher`
- How to Build a Public Issue Microsite with Bolt and Synorb: `https://synorb.com/build/bolt-public-issue-microsite`
- How to Build a State Policy Dashboard Prototype with Bolt and Synorb: `https://synorb.com/build/bolt-state-policy-dashboard`
- How to Design a Policy Dashboard UI with v0 and Synorb: `https://synorb.com/build/v0-policy-dashboard-ui`
- How to Build a Source-Linked Briefing Component with v0 and Synorb: `https://synorb.com/build/v0-source-linked-briefing-component`
- How to Design a Statehouse Briefing Workflow with Claude and Synorb: `https://synorb.com/build/claude-statehouse-briefing-workflow`
- How to Add a Production Feed Integration with Codex and Synorb: `https://synorb.com/build/codex-production-feed-integration`
- How to Build a Watchlist Monitor with Windsurf and Synorb: `https://synorb.com/build/windsurf-watchlist-monitor`

AI operator and developer intent pages:

- Content feeds for AI: https://synorb.com/content-feeds-for-ai
- AI feed definition: https://synorb.com/ai-feed
- RSS feeds for AI agents: https://synorb.com/rss-feeds-for-ai-agents
- RAG data streams: https://synorb.com/rag-data-streams
- Market intelligence feeds for AI agents: https://synorb.com/market-intelligence-feeds-for-ai-agents
- AI-readable website feeds: https://synorb.com/ai-readable-website-feeds
- Synorb vs. web scraping for AI agents: https://synorb.com/synorb-vs-web-scraping
- Why web scraping breaks in agentic workflows: https://synorb.com/why-web-scraping-breaks-in-agentic-workflows
- Real-time content feeds for AI agents: https://synorb.com/real-time-content-feeds-for-ai-agents
- Source-grounded content API: https://synorb.com/source-grounded-content-api
- Web search alternative for AI agents: https://synorb.com/web-search-alternative-for-ai-agents
- Context graph for AI agents: https://synorb.com/context-graph-for-ai-agents
- Structured content API for AI agents: https://synorb.com/structured-content-api-for-ai-agents
- Agent web search API pattern: https://synorb.com/agent-web-search-api
- Real-time web data for AI agents: https://synorb.com/real-time-web-data-for-ai-agents
- Low-cost web search alternative for AI agents: https://synorb.com/low-cost-web-search-alternative-for-ai-agents
- What Are Content Feeds for AI Agents?: https://synorb.com/what-are-content-feeds-for-ai-agents
- Best Content Feeds for AI Agents: https://synorb.com/best-content-feeds-for-ai-agents
- Data Feeds for AI Agents: https://synorb.com/data-feeds-for-ai-agents
- Context Feeds for AI Agents: https://synorb.com/context-feeds-for-ai-agents
- Inject Web Context Into AI Agents: https://synorb.com/inject-web-context-into-ai-agents
- Keep AI Agents Up to Date: https://synorb.com/keep-ai-agents-up-to-date
- Agent Context API: https://synorb.com/agent-context-api
- Real-Time RAG Data Sources: https://synorb.com/real-time-rag-data-sources
- Source-Grounded RAG: https://synorb.com/source-grounded-rag
- Web Context API for AI Agents: https://synorb.com/web-context-api-for-ai-agents
- MCP Server for Content Feeds: https://synorb.com/mcp-server-for-content-feeds
- Feed API for AI Agents: https://synorb.com/feed-api-for-ai-agents
- LLM Data Feeds: https://synorb.com/llm-data-feeds
- Structured Web Data for LLMs: https://synorb.com/structured-web-data-for-llms
- AI Agent News Feed: https://synorb.com/ai-agent-news-feed
- Crawl vs Feed for AI Agents: https://synorb.com/crawl-vs-feed-for-ai-agents
- Provenance API for AI Agents: https://synorb.com/provenance-api-for-ai-agents
- Best Web Search API for AI Agents: https://synorb.com/best-web-search-api-for-ai-agents
- Web Access for AI Agents: https://synorb.com/web-access-for-ai-agents
- AI Agent Web Access API: https://synorb.com/ai-agent-web-access-api
- Real-Time Web Data API for LLMs: https://synorb.com/real-time-web-data-api-for-llms
- LLM-Ready Web Data: https://synorb.com/llm-ready-web-data
- Data Grounding for AI Agents: https://synorb.com/data-grounding-for-ai-agents
- LLM Data Grounding API: https://synorb.com/llm-data-grounding-api
- AI Search API for RAG: https://synorb.com/ai-search-api-for-rag
- RAG Pipeline with Live Web Data: https://synorb.com/rag-pipeline-with-live-web-data
- MCP Server for Web Data: https://synorb.com/mcp-server-for-web-data
- MCP Server for AI Search: https://synorb.com/mcp-server-for-ai-search
- Agentic Web Search: https://synorb.com/agentic-web-search
- Web Crawling API for AI Agents: https://synorb.com/web-crawling-api-for-ai-agents
- Structured Data Extraction for LLMs: https://synorb.com/structured-data-extraction-for-llms
- Knowledge Graph for AI Agents: https://synorb.com/knowledge-graph-for-ai-agents
- Temporal Knowledge Graph for AI: https://synorb.com/temporal-knowledge-graph-for-ai
- Live Context API for AI Applications: https://synorb.com/live-context-api-for-ai-applications
- Source-Cited AI Search API: https://synorb.com/source-cited-ai-search-api
- Provenance Layer for RAG: https://synorb.com/provenance-layer-for-rag
- Live Web Context for RAG: https://synorb.com/live-web-context-for-rag
- News Feeds for AI Agents and RAG Applications: https://synorb.com/news-feeds-for-ai-agents-and-rag-applications
- Data Feeds for AI Agents and RAG Applications: https://synorb.com/data-feeds-for-ai-agents-and-rag-applications
- MCP Server for News Feeds: https://synorb.com/mcp-server-for-news-feeds
- Agentic Search API for News: https://synorb.com/agentic-search-api-for-news
- RAG News Data Pipeline: https://synorb.com/rag-news-data-pipeline
- Real-Time News Data Feed for LLM Grounding: https://synorb.com/real-time-news-data-feed-for-llm-grounding
- JSON News API for AI Agents: https://synorb.com/json-news-api-for-ai-agents
- Markdown News Feed for LLMs: https://synorb.com/markdown-news-feed-for-llms
- Structured News Feed for AI Agents: https://synorb.com/structured-news-feed-for-ai-agents
- News Dataset with Extracted Entities: https://synorb.com/news-dataset-with-extracted-entities
- News API with Sentiment and Signals: https://synorb.com/news-api-with-sentiment-and-signals
- Semantic Search API for Live News: https://synorb.com/semantic-search-api-for-live-news
- LLM-Optimized News Search API: https://synorb.com/llm-optimized-news-search-api
- News Data Feed with Deduplication: https://synorb.com/news-data-feed-with-deduplication
- News Clustering API for Event Detection: https://synorb.com/news-clustering-api-for-event-detection
- External Data for AI Agents: https://synorb.com/external-data-for-ai-agents
- AI Agent Knowledge Base API: https://synorb.com/ai-agent-knowledge-base-api
- RAG Ingestion API: https://synorb.com/rag-ingestion-api
- Retrieval API for AI Agents: https://synorb.com/retrieval-api-for-ai-agents
- Agentic RAG Data Sources: https://synorb.com/agentic-rag-data-sources
- MCP Data Source Server: https://synorb.com/mcp-data-source-server
- MCP Server for RAG: https://synorb.com/mcp-server-for-rag
- Grounding API for AI Applications: https://synorb.com/grounding-api-for-ai-applications
- Citation API for AI Agents: https://synorb.com/citation-api-for-ai-agents
- Live Knowledge Base for AI Agents: https://synorb.com/live-knowledge-base-for-ai-agents
- Agent Memory vs Context Feeds: https://synorb.com/agent-memory-vs-context-feeds
- Vector Database Feed for RAG: https://synorb.com/vector-database-feed-for-rag
- Agent Tool Data Source: https://synorb.com/agent-tool-data-source
- AI App Data Layer: https://synorb.com/ai-app-data-layer
- Fresh Context for LLM Apps: https://synorb.com/fresh-context-for-llm-apps
- AI Agent Data Feeds: https://synorb.com/ai-agent-data-feeds
- Structured Web Data for AI Agents: https://synorb.com/structured-web-data-for-ai-agents
- RAG Data Feeds: https://synorb.com/rag-data-feeds
- AI Agent Data API: https://synorb.com/ai-agent-data-api
- Web Data API for AI Agents: https://synorb.com/web-data-api-for-ai-agents
- Agent-Ready Datasets: https://synorb.com/agent-ready-datasets
- Source-Grounded Context API: https://synorb.com/source-grounded-context-api
- Web Data for RAG: https://synorb.com/web-data-for-rag
- AI Agent Data Infrastructure: https://synorb.com/ai-agent-data-infrastructure
- Agent-Ready Web Data: https://synorb.com/agent-ready-web-data

## Connect via MCP (Recommended)

Synorb has two MCP server configurations. Add Core MCP over Streamable HTTP to
MCP-compatible clients and partner connector hosts by default:

```json
{
  "mcpServers": {
    "synorb": {
      "url": "https://mcp.synorb.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      }
    }
  }
}
```

Recommended MCP auth is `Authorization: Bearer YOUR_TOKEN` against `https://mcp.synorb.com/mcp`. `x-access-token: YOUR_TOKEN` remains a backward-compatible alternative. Use the tokenized connector URL from the credentials email for Claude custom connectors or hosts that ask for one pasteable URL.

Core MCP exposes 9 tools: `synorb-profile`, `synorb-stream-search`, `synorb-catalog`, `synorb-details`, `synorb-manifests`, `synorb-configure-beacon`, `synorb-save-beacon`, `synorb-beacons`, and `synorb-archive-beacon`. Advanced MCP is a separate URL for configured workflows that need digest, sync ontology, label, prompt-template, or low-level content tools:

For reusable monitoring queries, call `synorb-configure-beacon` first. Beacons are available on every plan with per-plan count caps (Starter 10, Individual 50, Professional 250, Startup 1,000, Enterprise unlimited). If `synorb-save-beacon` returns `beacon_limit_exceeded`, tell the user to archive an active Beacon (`synorb-archive-beacon`) or upgrade their plan for a higher cap, rather than retrying. Improve obvious metadata first (a short useful name, plain-English description, and 1-5 lowercase tags), keep stream/source/topic/entity scope faithful to the proposal, then call `synorb-save-beacon` and return the `beacon_id`. Use `synorb-beacons` to list saved Beacons and `synorb-archive-beacon` to clean up stale ones. Run a Beacon later with `synorb-manifests` plus `beacon_id` and an explicit date window or lookback.

```json
{
  "mcpServers": {
    "synorb-advanced": {
      "url": "https://mcp.synorb.com/advanced/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      }
    }
  }
}
```

`https://mcp.synorb.com/profile?token=YOUR_TOKEN` returns quota, plan, delivery model (Daily Batch for self-serve plans, Continuous Delivery for Enterprise; the `refresh_tier` field exposes `daily` or `continuous`), and date-window context for MCP clients and connector UIs without consuming Manifest quota.

For interactive agent workflows, reuse a persistent Streamable HTTP MCP session. Initialize once for the user or workspace, keep the session warm across `tools/list` and follow-on tool calls, and reconnect only after idle timeout, auth failure, or network failure. Cold sessions and one-shot initialize/call/close flows are supported for compatibility and diagnostics, but they are not the recommended low-latency path.

MCP clients that support newer protocol affordances can also use tool output schemas, progress notifications during longer Manifest pulls, and argument completions for common filters such as domains, media formats, Stream IDs, source channels, and tag names.

### MCP and API Connection Flows

For any MCP-compatible client or partner host, use the user's `mcp_token`,
validate it with the MCP profile endpoint, install Core MCP first, and add
Advanced MCP only for configured workflows that need the larger surface.
Claude custom connectors can use the tokenized connector URL from the email.
ChatGPT apps/connectors are configured through Apps & Connectors, and Codex
workspace plugins use the same Core MCP credentials exposed by the approved app.

For REST API clients and partners, use `api_key` + `api_secret`, validate with
`GET https://api.synorb.com/account`, then call REST endpoints for scheduled
jobs, server-side product paths, deterministic polling, or REST-shaped
contracts. Authenticated MCP also supports high-throughput relevant Manifest
pulls under monthly quota and per-call caps.

### Connector UIs

Connector UIs can call the canonical MCP profile endpoint to show plan, quota,
refresh cadence, content access, and the allowed date window without consuming
Manifest quota:

```bash
curl "https://mcp.synorb.com/profile?token=YOUR_MCP_TOKEN"
```

REST-first clients can fetch equivalent account and usage context with:

```bash
curl -H "api-key: YOUR_API_KEY" \
  -H "secret: YOUR_API_SECRET" \
  https://api.synorb.com/account
```

## After Connecting — What To Do First

Start with user intent, not the full tool list. For most tasks the Core workflow is:

1. **`synorb-profile()`** - check plan, quota, delivery model (Daily Batch for self-serve plans, Continuous Delivery for Enterprise), and date-window context when the user asks about status or limits.
2. **`synorb-stream-search(query="...")`** - handle stream/source/podcast inventory and availability questions directly.
3. **`synorb-catalog(query="...")`** - find Streams that match the user's topic, company, domain, or media need.
4. **`synorb-details(stream_ids=[...])`** - inspect available filters, source channels, media formats, and volume.
5. **`synorb-manifests(stream_ids=[...], filters...)`** - pull Signal + Brief plus source metadata for the chosen Streams.
6. **`synorb-configure-beacon(intent="...")`** - draft a reusable Beacon when the user asks to save/reuse a tracking query.
7. **`synorb-save-beacon(proposal={...}, name="...", description="...", tags=[...])`** - save that proposal with refined obvious metadata and return `beacon_id` when the user asks to save/create it.
8. **`synorb-beacons()`** - list saved Beacons and reusable handles.
9. **`synorb-archive-beacon(beacon_id="...")`** - archive a saved Beacon when the user asks for cleanup/archive, when an existing Beacon is stale, when a plan cap is reached and the user chooses one to archive, or for approved eval cleanup. Archive calls do not consume Manifest quota.

Use the `diagnostics.retry_guidance` returned by `synorb-manifests` to loop. If too few Manifests return, relax `significance`, expand `stream_ids`, broaden `home_domains`, or remove narrow tag filters. If too many return, add `tag_names`, `media_format`, `source_channel_ids` from `synorb-details`, `source_channel_names` when the exact channel is known, or a tighter date range.

Use Advanced MCP only when digests, sync ontology mappings, labels, prompt templates, or lower-level content tools are explicitly needed.

For direct questions, keep calls tight. Use `synorb-profile()` only for quota, plan, usage, refresh cadence, connector status, or date-window questions. For Stream/source/podcast availability, call `synorb-stream-search`; for full media-surface requests like "show me all podcast streams", pass `media_format='audio'`, use `page_size=200`, and answer from `coverage`, `pagination`, and `inventory_summary` instead of asking the user to narrow. Ask for a `home_domain` only when the inventory request has no media, source, or topic signal. Same-Manifest co-mention/count/list questions can go straight to `synorb-manifests` with `tag_names` for each entity, `tag_logic='and'`, `tag_type` when clear, and the user's date range. Direct Manifest questions with known `stream_ids`, `home_domains`, `source_channel_ids`, or `source_channel_names` can also go straight to `synorb-manifests`. For exact source/form requests, pass the exact source channel and do not substitute adjacent sources; examples include `sec_form_type='8-K'` with `ticker='NVDA'` (or another company identifier) for SEC Form 8-K filings, and exact channel slugs such as `source_channel_names=['scotus-opinions']` for Supreme Court opinions. If requested `source_channel_names` do not resolve, MCP returns zero Manifests without consuming quota rather than broadening.

`synorb-manifests` is the primary multi-Stream Manifest tool. It can filter by `stream_ids` or `home_domains`, `cross_domains` with `cross_domain_logic`, date range, `tag_names` or `tag_ids`, `tag_type`, `tag_logic`, `media_format`, `source_channel_ids`, `source_channel_names`, and `significance`. Use `tag_names` for topics, organizations, people, products, places, and data series; add `tag_type` when the type is clear. Use `tag_logic='and'` when every tag must appear in the same Manifest; use `tag_logic='or'` for any-of lists.

Filter model summary:

- `home_domains`: one or more canonical domains.
- `cross_domains` + `cross_domain_logic`: adjacent domains with `or` or `and`.
- `tag_names` or `tag_ids`: topics, organizations, people, products, places, or data series.
- `tag_type`: `person`, `organization`, `place`, `topic`, `data`, or `resource`.
- `tag_logic`: `and` for same-Manifest co-mentions; `or` for any-of lists.
- `source_channel_ids`: specific channels returned by `synorb-details`.
- `source_channel_names`: exact source-channel names or displays when known; for example `["scotus-opinions"]`. Exact source requests return no results rather than broadening to adjacent sources.
- `sec_form_type` + `ticker` (or another company identifier): exact SEC form type such as `8-K`, `10-K`, or `10-Q` for a specific public company. SEC filings route through per-company channels, not a single shared `source_channel_names` feed.
- `media_format`: text, audio, video, social, data, regulatory, or documentation.
- Date ranges: `published_date_from` and `published_date_to`.
- Exclusions: `exclude_tag_names`, `exclude_tag_ids`, `exclude_query_terms`, `exclude_source_channel_ids`, `exclude_home_domains`. Prefer these over natural-language NOT.

Core and Advanced share the same managed serving path for recent filterable
results, with graceful fallback behavior when a narrower query is needed.

## Mandatory Agent Behavior (Reply Contract)

These rules govern how an agent must format any reply that consumed Synorb data.

1. **Quota line first.** Every reply that consumed a Synorb MCP call MUST begin with the returned `quota_header` verbatim. This is a hard server contract, not optional. Do not paraphrase. Do not move it later in the answer. Threshold copy escalates at 60% used (percent remaining), 80% used (friendly upgrade prompt with upgrade URL), and exhausted (state quota is complete and include upgrade/wait path).
2. **Cite source URLs from the citations block on every Manifest answer.** `synorb-manifests` returns a `citations` block (per-manifest entries plus a top-level deduped list) and ResourceLinks to canonical URLs. Every claim, bullet, or factual statement must cite the relevant `citation_id` or its `canonical_url`. Do not summarize Manifests without citations.
3. **`did_you_mean` requires confirmation.** When `synorb-manifests` or `synorb-catalog` returns a `did_you_mean` block (typo-style fuzzy suggestions), ask the user to confirm the intended term before retrying with the suggestion. Do not silently rewrite a legal/finance/policy query.
4. **`negation_filter` warning requires disclosure.** When the diagnostics include a `negation_filter` warning (we detected NOT/without/except in tag_names and post-filtered best-effort), tell the user we did best-effort exclusion and offer the explicit `exclude_tag_names`, `exclude_tag_ids`, `exclude_query_terms`, `exclude_source_channel_ids`, or `exclude_home_domains` parameters for a precise indexed retry.
5. **`ambiguous=true` requires a clarifying question.** When a person/entity lookup returns `ambiguous=true` with candidate tags, ask the user a clarifying question listing the candidates. Do not pick one and proceed.
6. **`degraded_mode=true` requires explanation.** When profile or manifest payloads return `degraded_mode=true`, briefly explain that the index is temporarily stale and suggest the user narrow (smaller date window, specific stream_ids, or fewer broad domains). Degraded responses do not consume quota unless Manifests are actually returned.
7. **`index_freshness.state != "ready"` requires disclosure.** If `index_freshness.state` is `"stale"` or `"degraded"`, tell the user the answer may not include the very latest Manifests, and report the `last_refresh_at` time.

## Quota & Headers

Quota receipt contract: content responses and profile reads expose monthly
limit, used, remaining, period, `refresh_tier` (`daily` for Daily Batch on
self-serve plans, `continuous` for Continuous Delivery on Enterprise),
available date window, retry guidance, `index_freshness`, and `degraded_mode`.
REST clients should also read
`X-Synorb-Quota-Limit`, `X-Synorb-Quota-Used`, `X-Synorb-Quota-Remaining`,
`X-Synorb-Quota-Reset-Date`, `X-Synorb-Quota-Reset-Days`, `X-Synorb-Period`,
and `X-Synorb-Available`.

REST 429s carry `detail.error_code`: `rate_limited` means wait `Retry-After`
seconds and retry; `quota_exhausted` means the monthly Manifest quota is done —
retrying will not help until `detail.quota_resets_on` (never retry-loop on it).
Send an `Idempotency-Key` header on REST POST writes (beacons, digests, keys,
webhooks) so auto-retries replay instead of duplicating; a reused key with a
different payload returns 409 `idempotency_conflict`. Hot REST reads
(`/plans`, `/streams`, digest lists, `/ontology/tags`) return an `ETag` —
poll with `If-None-Match` and treat `304 Not Modified` as "no change"
(304s consume no quota).

MCP usage is primarily governed by monthly Manifest quota, per-call
`page_size`/`target_count` caps, date-window and content-access gates, and
relevance/off-topic controls. `synorb-profile`, `synorb-stream-search`,
`synorb-catalog`, `synorb-details`, `synorb-configure-beacon`,
`synorb-save-beacon`, `synorb-beacons`, and `synorb-archive-beacon` are zero-quota. `synorb-manifests` bills
only returned on-topic Manifests. The old tiny 10/min and inherited REST/global
per-minute caps do not apply to MCP content pulls. Emergency backpressure is
high-throughput and burst-friendly; treat `Retry-After` as a pathological-burst
retry signal, not a normal usage limit.

Current emergency buckets are high by design: discovery tools sustain 10
requests/second with 300-request bursts, Manifest/content tools sustain 5
requests/second with 240-request bursts, and full Records sustain 2
requests/second with 120-request bursts.

Failure behavior should be polite: reconnect on auth errors, show exact
remaining quota on quota errors, show the available date range on date-window
errors, and offer one narrower and one broader retry path for empty results.
Send product feedback or partner issues to X at `@synorb` or `team@synorb.com`.

If an MCP client supports parallel calls, run independent `synorb-catalog` calls for separate facets, companies, media types, or domains, then merge and dedupe `stream_ids`. Prefer one `synorb-details(stream_ids=[...])` call and one multi-Stream `synorb-manifests(...)` call when filters are shared. Parallelize Manifest calls only when scopes or filters are genuinely different, and keep initial calls compact.

### Pulling Your First Manifests

Examples:

```text
synorb-catalog(query="AI infrastructure earnings", home_domains=["economics-business-work"], page_size=10)
synorb-details(stream_ids=[...])
synorb-manifests(stream_ids=[...], tag_names=["AI infrastructure"], significance="high", target_count=10)
```

For discovery-heavy and interactive work, MCP is the right surface, and authenticated MCP users can make high-throughput relevant Manifest pulls. Use REST for scheduled jobs, server-side product paths, deterministic polling, or REST-shaped contracts.

### For Non-MCP Agents (Codex, Copilot, Lovable, Bolt, v0)

Use the REST API with the credentials from `curl -s https://synorb.com/connect`:

```bash
# 1. Check account
curl -H "api-key: KEY" -H "secret: SECRET" https://api.synorb.com/account

# 2. List streams
curl -H "api-key: KEY" -H "secret: SECRET" https://api.synorb.com/streams?page_size=5

# 3. Fetch signals from a stream
curl -H "api-key: KEY" -H "secret: SECRET" "https://api.synorb.com/streams/{id}/signals?published_date_from=2026-03-10&published_date_to=2026-03-17"
```

Same greeting pattern: read `/account` + `/streams` first, tell the user what's available, then ask what to read.

## Connect via REST API

Base URL: `https://api.synorb.com`

Auth headers on every request:

```
api-key: YOUR_API_KEY
secret: YOUR_SECRET
```

### 3-Call Quickstart

```bash
# 1. List streams
curl -H "api-key: KEY" -H "secret: SECRET" https://api.synorb.com/streams?page_size=5

# 2. Stream details
curl -H "api-key: KEY" -H "secret: SECRET" https://api.synorb.com/streams/{id}

# 3. Fetch Manifests (Signal + Brief; Record on Enterprise)
curl -H "api-key: KEY" -H "secret: SECRET" https://api.synorb.com/streams/{id}/manifests
```

## Key Concepts

| Term | What It Is |
|------|-----------|
| **Record** | Ingested content payload (article, podcast, data release) |
| **Signal** | Structured claims extraction (15-50 atomic assertions per record) |
| **Brief** | Structured narrative summary (headline, summary, body, sentiment) |
| **Manifest** | Delivery unit. Core MCP and all plans receive Signal + Brief plus source metadata. Full source payloads are Enterprise-only via REST. |
| **Stream** | Filtered content view organized by theme |
| **Tag** | Resolved entity: person, organization, place, topic, data, or resource |
| **Claim** | Atomic assertion with type, confidence, and evidence |
| **Digest** | Curated bundle of streams. Synorb Digests are pre-built (included on Enterprise). User Digests are org-built. |

## Core Endpoints

| Method | Path | Description |
|--------|------|-------------|
| `GET` | `/streams` | List all streams with volume metrics |
| `GET` | `/streams/{id}` | Stream details, filters, schema |
| `GET` | `/streams/{id}/manifests` | Manifests (Signal + Brief + source metadata; full Records on Enterprise) |
| `GET` | `/manifests/{record_id}` | Single manifest by record ID |
| `GET` | `/account` | Profile, plan, quota |
| `POST` | `/digests` | Create custom digest |
| `GET` | `/digests/{id}/manifests` | Manifests across digest streams |
| `POST` | `/digests/synorb/{id}/add` | Add a Synorb Digest (Enterprise included) |
| `GET` | `/digests/synorb` | List added Synorb Digests |
| `POST` | `/webhooks` | Register webhook (8 event types: manifest.matched, stream.created/removed/unpublished, digest.new_content/created/updated/removed) |
| `GET` | `/backfill/grants` | S3 export grants |

## MCP Tools

| Tool | Description |
|------|-------------|
| `synorb-stream-search` | Primary inventory concierge for stream/source/podcast availability, ranked matching, and scope-labeled counts |
| `synorb-catalog` | Primary. Search/browse Streams by user intent, domain, media type, and source scope |
| `synorb-details` | Primary. Inspect selected Streams, available filters, source channels, and recommended Manifest calls |
| `synorb-manifests` | Primary. Pull Signal + Brief plus source metadata across one or more Streams with diagnostics and retry guidance |
| `synorb-configure-beacon` | Primary. Draft a reusable Beacon from monitoring/query intent |
| `synorb-save-beacon` | Primary. Save a proposed Beacon with refined obvious metadata and return `beacon_id` |
| `synorb-beacons` | Primary. List saved Beacons and reusable handles |
| `synorb-archive-beacon` | Primary. Archive saved Beacons for explicit cleanup/archive, cap cleanup with user approval, or approved eval cleanup |
| `synorb-streams` | Advanced catalog alias for compatibility and explicit stream browsing |
| `synorb-stream-info` | Advanced detail alias for a single Stream |
| `synorb-signals` | Advanced. Structured claims for one Stream |
| `synorb-briefs` | Advanced. Structured narratives for one Stream |
| `synorb-multi-stream` | Advanced legacy multi-Stream story search; prefer `synorb-manifests` for primary pulls |
| `synorb-records` | Advanced. Full content objects (Enterprise) |
| `synorb-account` | Advanced compatibility alias for account info, plan, and quota; prefer `synorb-profile` on Core |
| `synorb-digests` | List all digests |
| `synorb-digest-manifests` | Fetch Manifests from a digest |
| `synorb-tags` | Fuzzy search across tags and topics |
| `synorb-sync` | Create or update a sync |
| `synorb-unsync` | Remove a sync |
| `synorb-syncs` | List active syncs |
| `synorb-label` | Create custom label |
| `synorb-labels` | List labels |
| `synorb-guide` | Agent guide for the primary workflow and advanced tools |
| `synorb-prompts` | Pre-built workflow prompts that use the primary loop |

## Data Model

**Claim types:** statement, data, event, forecast, analysis

**Confidence:** stated, implied, inferred, measured

**Evidence:** direct_quote, paraphrase, derived, observed

**Tag types:** person, organization, place, topic, data, resource

**12 domains:** arts-culture-entertainment, economics-business-work, engineering-technology, everyday-life-practical-knowledge, health-medicine, language-literature, life-environment, people-biography-history, physical-sciences-mathematics, places-geography, society-law-government, universe-earth

## Plans

All self-serve plans deliver Daily Batch (last full calendar day). Continuous Delivery is Enterprise-only.

| Plan | Price | Manifests/mo | Channels |
|------|-------|-------------|----------|
| Starter | $0 | 1,000 | MCP + REST API |
| Individual | $20/mo or $192/yr | 10,000 | MCP + REST API |
| Professional | $100/mo or $960/yr | 100,000 | MCP + REST API + Webhooks |
| Startup | $500/mo or $4,800/yr | 1,000,000 | + Digest Builder + Webhooks + S3 |
| Enterprise | Contact us | Custom | + Synorb Digests + Records + Sync Ontology + Beacons + Continuous Delivery |

**Synorb Digests** — Pre-curated intelligence bundles built by the Synorb team. Each groups streams around a theme (e.g., Federal Reserve Watch, AI Research, Global Supply Chain). Included at no additional charge on Enterprise plans. Your agent gets instant access to expertly assembled intelligence without building stream combinations from scratch.

## Extended Documentation

- [Full API reference](https://synorb.com/llms-full.txt) (llms-full.txt)
- [Concise overview](https://synorb.com/llms.txt) (llms.txt)
- [OpenAPI spec](https://synorb.com/openapi.json)
- [Human-readable docs](https://synorb.com/docs)
- [MCP connection](https://synorb.com/docs#mcp)

## Attribution

Cite source URLs when presenting Synorb-sourced claims. Do not redistribute full source payloads outside your application.

Contact: team@synorb.com
