{"openapi":"3.1.0","info":{"title":"Synorb API","version":"1.2.0","description":"Machine-readable intelligence for AI agents. 1,000+ streams of structured claims from 10,000+ sources.\n\nSynorb ingests content from tracked publications, extracts atomic claims, resolves tags (people, organizations, places, topics, data), and delivers structured stories via streams.\n\n## Quick Start\n1. Call `GET /connect` to self-provision free credentials (1,000 manifests/month, monthly refresh cadence, no signup required)\n2. Call `GET /account` and `GET /streams` in parallel to learn your quota and available streams\n3. Call `GET /streams/{id}/manifests` to get record + signal + brief triplets\n\n## Response Envelope\nAll authenticated endpoints wrap responses in a standard envelope:\n```json\n{\n  \"data\": { ... },\n  \"usage\": {\n    \"quota_limit\": 1000,\n    \"quota_used\": 42,\n    \"quota_remaining\": 958,\n    \"period\": \"2026-03\",\n    \"available\": \"signal, brief\",\n    \"items_in_response\": 50\n  }\n}\n```\nThe `data` object contains the actual response payload. The `usage` object is always present on authenticated responses.\n\n## Content Access by Plan\nAll plans include **Signals** and **Briefs** in manifest responses. **Records** (full source content) are available on Enterprise plans only.\n\nUse `GET /streams/{id}/manifests` to fetch content. The manifest includes signal, brief, and record — record fields show an upgrade message on non-Enterprise plans.\n\n## Authentication\nAdd two headers to every request:\n- `api-key: YOUR_API_KEY`\n- `secret: YOUR_API_SECRET`\n\nMCP tokens (`access_token`) are NOT accepted on the REST API. Use them only with MCP servers at mcp.synorb.com: Core MCP (`/sse`) exposes synorb-catalog, synorb-details, and synorb-manifests; Advanced MCP (`/advanced/sse`) exposes the full configurable tool surface.\n\n## MCP / Perplexity Partner Activation\nMCP accepts tokens via `?token=...`, `Authorization: Bearer ...`, or `x-access-token`. Core MCP is `https://mcp.synorb.com/sse` and exposes `synorb-catalog`, `synorb-details`, and `synorb-manifests`. Advanced MCP is `https://mcp.synorb.com/advanced/sse`. Perplexity Computer can create new Free credentials with `POST /perplexity/free-credentials` using email only; existing Synorb users validate with `POST /perplexity/auth/validate` using `api-key` + `secret`. Free includes 1,000 Manifests per calendar month with monthly refresh cadence."},"servers":[{"url":"https://api.synorb.com","description":"Production API"}],"paths":{"/account":{"get":{"operationId":"getAccount","summary":"Get organization profile, plan, quota, and usage","description":"Returns your org profile, subscription details, team members, usage counters, and MCP connector config. Call this after `getCredentials` to learn your quota. The response `usage` object includes `manifests_limit`, `manifests_remaining` â€” use these to inform the user about their capacity.","tags":["Account"],"responses":{"200":{"description":"Account profile with quota info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEnvelope"},"example":{"data":{"org":{"id":"17724793080269856","name":"My Company","org_type":"individual","contact_email":"user@example.com","is_active":true,"created_on":"2026-03-01T00:00:00Z"},"subscription":{"status":"active","plan_display_name":"Free","billing_cycle":"monthly","endpoint_mcp":true,"endpoint_api":true,"endpoint_s3":false,"endpoint_websocket":false,"endpoint_webhook":false,"endpoint_digests":false},"users":[{"id":"17724793080489611","name":"User Name","email":"user@example.com","role":"owner","is_active":true,"has_active_key":true,"created_on":"2026-03-01T00:00:00Z"}],"usage":{"period":"2026-03","api_calls":42,"tokens_consumed":0,"manifests_limit":1000,"manifests_remaining":958},"mcp_connector":{"url":"https://mcp.synorb.com/sse?token=YOUR_TOKEN","config":{"mcpServers":{"synorb":{"url":"https://mcp.synorb.com/sse?token=YOUR_TOKEN"}}},"docs":"https://synorb.com/docs#mcp","advanced_url":"https://mcp.synorb.com/advanced/sse?token=YOUR_TOKEN","profiles":{"core":"https://mcp.synorb.com/sse?token=YOUR_TOKEN","advanced":"https://mcp.synorb.com/advanced/sse?token=YOUR_TOKEN"},"advanced_config":{"mcpServers":{"synorb-advanced":{"url":"https://mcp.synorb.com/advanced/sse?token=YOUR_TOKEN"}}}}},"usage":{"quota_limit":1000,"quota_used":42,"quota_remaining":958,"period":"2026-03","available":"signal","items_in_response":0}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/streams":{"get":{"operationId":"listStreams","summary":"List all intelligence streams with volume metrics","description":"Returns paginated list of streams sorted by recent activity (manifests_last30d descending). Each stream includes volume metrics (manifests_last24h, manifests_last7d, manifests_last30d), domain classification, and activation dates.\n\nUse `home_domain` to filter by primary domain. The response is wrapped in the standard `data` envelope with `pagination` inside `data`.","tags":["Streams"],"parameters":[{"name":"home_domain","in":"query","schema":{"type":"string","enum":["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"]},"description":"Filter to streams in this primary domain"},{"name":"is_public","in":"query","schema":{"type":"boolean"},"description":"Filter by public visibility"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/pageSize"}],"responses":{"200":{"description":"Paginated stream list","content":{"application/json":{"example":{"data":{"streams":[{"id":"17724793080269856","name":"OpenAI","description":"Intelligence from OpenAI research, blog posts, and announcements","home_domain":"engineering-technology","cross_domains":["economics-business-work"],"is_public":true,"is_active":true,"manifests_last24h":3,"manifests_last7d":18,"manifests_last30d":72,"activated_on":"2026-01-15T00:00:00Z","public_on":"2026-01-15T00:00:00Z","source_url":"https://openai.com"}],"pagination":{"total_count":521,"page_num":0,"page_size":50,"next":1,"prev":null}},"usage":{"quota_limit":1000,"quota_used":42,"quota_remaining":958,"period":"2026-03","available":"signal","items_in_response":50}},"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"streams":{"type":"array","items":{"$ref":"#/components/schemas/StreamSummary"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["streams","pagination"]},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/streams/{stream_id}":{"get":{"operationId":"getStream","summary":"Stream details with filters, tags, and volume metrics","description":"Returns full stream metadata including filter definitions, associated tag IDs, source channels, and volume metrics. Use this before fetching content to understand what a stream contains.\n\nThe `manifests_last*` and `claims_last*` fields show recent volume. The `status` field shows whether the stream is live.","tags":["Streams"],"parameters":[{"name":"stream_id","in":"path","required":true,"schema":{"type":"integer","format":"int64"},"description":"Stream ID (unique ID string)"}],"responses":{"200":{"description":"Stream details","content":{"application/json":{"example":{"data":{"id":"17724793080269856","name":"openai","title":"OpenAI","description":"Intelligence from OpenAI research, blog posts, and announcements","home_domain":"engineering-technology","cross_domains":["economics-business-work"],"is_public":true,"is_active":true,"status":"live","stream_type":"public","stream_class":"discovery","source_type":"organization","source_url":"https://openai.com","source_ids":["17730001234567890"],"source_channel_ids":["17730001234567891"],"source_channels":[{"id":"17730001234567891","name":"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":["17724793080269856"],"source_type":"organization","source_names":[]},"claim_type_ids":null,"tag_ids":["17724793080269856"],"manifests_last24h":3,"manifests_last7d":18,"manifests_last30d":72,"claims_last24h":45,"claims_last7d":310,"claims_last30d":1250,"counts_updated_at":"2026-03-19T14:22:00Z","activated_on":"2026-01-15T00:00:00Z","public_on":"2026-01-15T00:00:00Z","deactivated_on":"1970-01-01T00:00:00Z","created_on":"2026-01-15T00:00:00Z","updated_on":"2026-03-19T14:22:00Z"},"usage":{"quota_limit":1000,"quota_used":42,"quota_remaining":958,"period":"2026-03","available":"signal","items_in_response":0}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/StreamDetail"},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/streams/{stream_id}/manifests":{"get":{"operationId":"getStreamManifests","summary":"Record + Signal + Brief triplets from a stream","description":"Returns manifests â€” the complete triplet of Record (source content), Signal (structured claims), and Brief (narrative summary) for each piece of content in a stream. This is the most comprehensive endpoint.\n\nFilter by date range, tag IDs, or tag type. Content within each manifest is gated by plan level:\n- all plans: signal only\n- all plans: signal + brief\n- Enterprise: signal + brief + record\n\nResults are sorted by `matched_at` descending (most recent first).","tags":["Streams"],"parameters":[{"$ref":"#/components/parameters/streamId"},{"$ref":"#/components/parameters/publishedDateFrom"},{"$ref":"#/components/parameters/publishedDateTo"},{"name":"tag_ids","in":"query","schema":{"type":"string"},"description":"Comma-separated tag IDs to filter manifests by. Use `browseTags` to find tag IDs.","example":"17724793080269856,17724793080269857"},{"name":"tag_type","in":"query","schema":{"type":"string","enum":["person","organization","place","topic","data"]},"description":"Filter to manifests with tags of this type"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/pageSize"}],"responses":{"200":{"description":"Paginated manifest triplets","content":{"application/json":{"example":{"data":{"manifests":[{"manifest_id":"17737682899496764","record_id":"17737682899496700","stream_id":"17724793080269856","matched_at":"2026-03-18T14:22:00Z","source":{"record_title":"OpenAI Announces GPT-5 Architecture","source_url":"https://openai.com/blog/gpt-5-architecture","source_published_date":"2026-03-18","source_name":"OpenAI Blog","source_type":"organization","media_format":"text","claim_type":"announcement","author":"OpenAI Research"},"signal":{"story_id":"17737682899496764","headline":"OpenAI Announces GPT-5 Architecture","summary":"OpenAI revealed the architecture behind GPT-5.","sentiment":"positive","significance":"high","version":1,"claim_count":22,"reading_time_minutes":4.2,"body":{"signal":{"source_url":"https://openai.com/blog/gpt-5-architecture","claim_count":22,"featured_count":5},"claims":[{"claim_text":"OpenAI announced GPT-5 uses a mixture-of-experts architecture","claim_type":"announcement","confidence":"stated","evidence":"direct_quote","signal":"Major architectural shift from dense to sparse models.","featured":true,"entities":[{"name":"OpenAI","type":"organization","role":"source_org"}]}]}},"brief":{"story_id":"17737682899496765","headline":"OpenAI Announces GPT-5 Architecture","summary":"OpenAI revealed the architecture behind GPT-5.","sentiment":"positive","significance":"high","version":1,"key_points_count":4,"quote_count":1,"reading_time_minutes":3,"body":{"key_points":["GPT-5 uses mixture-of-experts architecture"],"quotes":[{"text":"This is our most capable model...","speaker":"Sam Altman","context":"CEO announcement"}],"entity_details":[{"tag_type":"Organization","tag_value":"OpenAI"}]}},"record":null}],"pagination":{"total_count":72,"page_num":0,"page_size":50,"next":1,"prev":null}},"usage":{"quota_limit":1000,"quota_used":92,"quota_remaining":908,"period":"2026-03","available":"signal, brief","items_in_response":50}},"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"manifests":{"type":"array","items":{"$ref":"#/components/schemas/Manifest"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["manifests","pagination"]},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/signal/{manifest_id}":{"get":{"operationId":"getSignalByManifest","summary":"Signal by manifest ID (Platform/Firehose only)","description":"Retrieve the Signal component for a given manifest. Platform/Firehose plans only. Firehose customers receive manifest_id via WebSocket delivery and use this endpoint to pull the signal.","tags":["Platform"],"parameters":[{"name":"manifest_id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Signal object","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Signal"},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/brief/{manifest_id}":{"get":{"operationId":"getBriefByManifest","summary":"Brief by manifest ID (Platform/Firehose only)","description":"Retrieve the Brief component for a given manifest. Platform/Firehose plans only.","tags":["Platform"],"parameters":[{"name":"manifest_id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Brief object","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Brief"},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/record/{manifest_id}":{"get":{"operationId":"getRecordByManifest","summary":"Record by manifest ID (Platform/Firehose only)","description":"Retrieve the Record component for a given manifest. Platform/Firehose plans only. Streams customers on Enterprise plans get records within the /manifests endpoint response instead.","tags":["Platform"],"parameters":[{"name":"manifest_id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Record object","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Record"},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/digests":{"get":{"operationId":"listDigests","summary":"List your org's digests","description":"Returns all active digests for your organization with stream counts and filter status. Two types: User Digests (org-built, included in plan) and Synorb Digests (pre-curated, Enterprise-included).\n\nRequires Startup plan or above.","tags":["Digest Builder"],"responses":{"200":{"description":"Digest list","content":{"application/json":{"example":{"data":{"digests":[{"id":42,"name":"AI Policy Watch","stream_count":12,"digest_type":"user","has_dynamic_filter":true}]},"usage":{"quota_limit":100000,"quota_used":500,"quota_remaining":99500,"period":"2026-03","available":"signal, brief","items_in_response":1}},"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"digests":{"type":"array","items":{"$ref":"#/components/schemas/DigestSummary"}}},"required":["digests"]},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}},"post":{"operationId":"createDigest","summary":"Create a custom digest from streams or filters","description":"Build a digest from explicit stream IDs, dynamic filter rules (topics, tags, sources, domains, source_type, claim_type, media_format), or both. At least one of `stream_ids` or `filter_spec` is required.\n\nUse `previewDigestFilter` first to see what streams match your filter before creating.","tags":["Digest Builder"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","example":"AI Policy Watch"},"stream_ids":{"type":"array","items":{"type":"integer","format":"int64"},"description":"Explicit stream IDs to include"},"filter_spec":{"$ref":"#/components/schemas/FilterSpec"}}}}}},"responses":{"201":{"description":"Digest created","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/DigestSummary"},"usage":{"$ref":"#/components/schemas/Usage"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/digests/{id}":{"get":{"operationId":"getDigest","summary":"Digest detail with resolved streams","description":"Returns digest metadata, resolved stream list, and filter spec. Works for both User Digests (by org ownership) and Synorb Digests (by Enterprise plan entitlement).","tags":["Digest Builder"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Digest ID"}],"responses":{"200":{"description":"Digest detail","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"digest":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"stream_count":{"type":"integer"},"stream_ids":{"type":"array","items":{"type":"integer"}},"filter_spec":{"$ref":"#/components/schemas/FilterSpec"},"created_on":{"type":"string","format":"date-time"},"updated_on":{"type":"string","format":"date-time"}}},"streams":{"type":"array","items":{"$ref":"#/components/schemas/StreamSummary"}}}},"usage":{"$ref":"#/components/schemas/Usage"}}},"example":{"data":{"digest":{"id":17737682899496764,"name":"AI Policy Watch","description":"AI regulation and policy developments","slug":"ai-policy-watch","digest_type":"user","is_active":true,"has_dynamic_filter":true,"stream_count":8,"created_on":"2026-03-01T00:00:00Z","updated_on":"2026-03-15T00:00:00Z"},"streams":[{"id":17723038993540102,"title":"Federal Reserve","description":"Federal Reserve publications and data releases","home_domain":"society-law-government","stream_class":"discovery","manifests_last24h":5,"manifests_last7d":42,"manifests_last30d":187}]}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}},"put":{"operationId":"updateDigest","summary":"Update digest name, stream_ids, or filter_spec","tags":["Digest Builder"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"stream_ids":{"type":"array","items":{"type":"integer","format":"int64"}},"filter_spec":{"$ref":"#/components/schemas/FilterSpec"}}}}}},"responses":{"200":{"description":"Digest updated"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}},"delete":{"operationId":"deleteDigest","summary":"Soft-delete a digest (permanently deactivates)","tags":["Digest Builder"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Digest deleted"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/digests/{id}/activate":{"post":{"operationId":"activateDigest","summary":"Re-enable a deactivated digest","tags":["Digest Builder"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Digest activated"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/digests/{id}/deactivate":{"post":{"operationId":"deactivateDigest","summary":"Pause a digest (reversible via activateDigest)","tags":["Digest Builder"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Digest deactivated"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/digests/{id}/streams":{"post":{"operationId":"addDigestStreams","summary":"Add streams to a digest","tags":["Digest Builder"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["stream_ids"],"properties":{"stream_ids":{"type":"array","items":{"type":"integer","format":"int64"}}}}}}},"responses":{"200":{"description":"Streams added to digest"},"401":{"$ref":"#/components/responses/Unauthorized"}}},"delete":{"operationId":"removeDigestStreams","summary":"Remove streams from a digest","tags":["Digest Builder"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["stream_ids"],"properties":{"stream_ids":{"type":"array","items":{"type":"integer","format":"int64"}}}}}}},"responses":{"200":{"description":"Streams removed from digest"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/digests/preview-filter":{"post":{"operationId":"previewDigestFilter","summary":"Preview matching streams before creating a digest","description":"Returns up to 50 matching streams for a given filter_spec without creating a digest. Use this to validate your filter before calling `createDigest`.","tags":["Digest Builder"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["filter_spec"],"properties":{"filter_spec":{"$ref":"#/components/schemas/FilterSpec"}}}}}},"responses":{"200":{"description":"Matching streams preview","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"stream_count":{"type":"integer"},"streams":{"type":"array","items":{"$ref":"#/components/schemas/StreamSummary"}}}},"usage":{"$ref":"#/components/schemas/Usage"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/digests/{id}/manifests":{"get":{"operationId":"getDigestManifests","summary":"Manifests across all streams in a digest","description":"Same manifest triplet structure as `getStreamManifests` but aggregated across all streams in the digest. Works for both User Digests and Synorb Digests.","tags":["Digest Builder"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"$ref":"#/components/parameters/publishedDateFrom"},{"$ref":"#/components/parameters/publishedDateTo"},{"name":"tag_ids","in":"query","schema":{"type":"string"},"description":"Comma-separated tag IDs"},{"name":"tag_type","in":"query","schema":{"type":"string","enum":["person","organization","place","topic","data"]}},{"name":"source_channel_id","in":"query","schema":{"type":"string"},"description":"Comma-separated source channel IDs to filter by"},{"name":"source_channel","in":"query","schema":{"type":"string"},"description":"Comma-separated source channel display names to filter by (case-insensitive)","example":"Federal Reserve Bank of St. Louis"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/pageSize"}],"responses":{"200":{"description":"Manifest triplets across digest streams","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"manifests":{"type":"array","items":{"$ref":"#/components/schemas/Manifest"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["manifests","pagination"]},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/digests/{id}/briefs":{"get":{"operationId":"getDigestBriefs","summary":"Briefs across all streams in a digest","description":"Briefs aggregated across all streams in the digest. Works for both User Digests and Synorb Digests.","tags":["Digests"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"$ref":"#/components/parameters/publishedDateFrom"},{"$ref":"#/components/parameters/publishedDateTo"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/pageSize"}],"responses":{"200":{"description":"Briefs across digest streams","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"briefs":{"type":"array","items":{"$ref":"#/components/schemas/Brief"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"digest_id":{"type":"string","description":"Digest ID"},"stream_ids":{"type":"array","items":{"type":"string"},"description":"Stream IDs in this digest"}},"required":["briefs","pagination"]},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/digests/synorb/{id}/add":{"post":{"operationId":"subscribeSynorbDigest","summary":"Add a Synorb Digest (Enterprise included)","description":"Adds a pre-curated Synorb Digest to your org. Included on Enterprise plans only. No standalone digest subscription checkout.","tags":["Synorb Digests"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Synorb Digest ID"}],"responses":{"200":{"description":"Subscribed to Synorb Digest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/digests/synorb/{id}/remove":{"delete":{"operationId":"unsubscribeSynorbDigest","summary":"Unsubscribe from a Synorb Digest","tags":["Synorb Digests"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Unsubscribed"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/webhooks":{"get":{"operationId":"listWebhooks","summary":"List registered webhooks","description":"Returns all webhooks for your org with delivery status. Startup and Enterprise plans.","tags":["Webhooks"],"responses":{"200":{"description":"Webhook list"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}},"post":{"operationId":"createWebhook","summary":"Register a webhook endpoint","description":"Register a URL to receive push notifications for manifest and lifecycle events: manifest.matched, stream.created, stream.removed, stream.unpublished, digest.new_content, digest.created, digest.updated, digest.removed.\n\nStartup and Enterprise plans.","tags":["Webhooks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url","events"],"properties":{"url":{"type":"string","format":"uri","example":"https://example.com/webhooks/synorb"},"events":{"type":"array","items":{"type":"string","enum":["manifest.matched","stream.created","stream.removed","stream.unpublished","digest.new_content","digest.created","digest.updated","digest.removed"]}},"secret":{"type":"string","description":"Optional HMAC signing secret for payload verification"}}}}}},"responses":{"201":{"description":"Webhook registered"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/webhooks/{id}":{"delete":{"operationId":"deleteWebhook","summary":"Delete a webhook","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Webhook deleted"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/webhooks/{id}/disable":{"post":{"operationId":"disableWebhook","summary":"Disable a webhook (stop deliveries)","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Webhook disabled"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/webhooks/{id}/reactivate":{"post":{"operationId":"reactivateWebhook","summary":"Re-enable a disabled webhook","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Webhook reactivated"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/webhooks/{id}/test":{"post":{"operationId":"testWebhook","summary":"Send a test event to a webhook","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Test event sent"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/webhooks/{id}/logs":{"get":{"operationId":"getWebhookLogs","summary":"Webhook delivery history","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Delivery log"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/backfill/grants":{"get":{"operationId":"listBackfillGrants","summary":"List your backfill (S3 export) grants","description":"Returns all active backfill grants with stream details, date ranges, and download status. Startup and Enterprise plans.","tags":["S3 Export"],"responses":{"200":{"description":"Backfill grants"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/backfill/{id}/download":{"post":{"operationId":"downloadBackfill","summary":"Generate S3 presigned URL for a backfill grant","tags":["S3 Export"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Presigned URL"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/ontology/sync":{"post":{"operationId":"createSync","summary":"Map a Synorb tag/topic/stream to your internal ID","description":"Creates a sync that maps a Synorb object to your internal identifier. Re-syncing the same object overwrites the previous sync. Enterprise only.\n\nUse `browseTags` or `browseTopics` first to find the Synorb object_id.","tags":["Ontology Sync"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["object_type","object_id","external_id"],"properties":{"object_type":{"type":"string","enum":["tag","topic","stream"],"description":"What to sync"},"object_id":{"type":"integer","format":"int64","description":"Synorb object ID (from `browseTags` or `browseTopics`)"},"external_id":{"type":"string","description":"Your internal ID (e.g., 'CRM-TSLA-001', 'ticker:TSLA')","example":"ticker:TSLA"},"external_name":{"type":"string","description":"Your internal display name","example":"Tesla Inc"},"labels":{"type":"string","description":"Comma-separated labels (e.g., 'buy-side,research')","example":"portfolio,tech"}}}}}},"responses":{"200":{"description":"Sync created or updated"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/ontology/sync/{id}":{"delete":{"operationId":"removeSync","summary":"Remove a sync (soft delete)","description":"Soft-deletes the sync, which can be re-created later. Enterprise only.","tags":["Ontology Sync"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Sync ID from `listSyncs`"}],"responses":{"200":{"description":"Sync removed"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/ontology/syncs":{"get":{"operationId":"listSyncs","summary":"List active syncs for your organization","description":"Returns all active syncs with Synorb names resolved. Filter by object_type or label. Enterprise only.","tags":["Ontology Sync"],"parameters":[{"name":"object_type","in":"query","schema":{"type":"string","enum":["tag","topic","stream"]},"description":"Filter by sync type"},{"name":"label","in":"query","schema":{"type":"string"},"description":"Filter by label"},{"$ref":"#/components/parameters/page"},{"name":"page_size","in":"query","schema":{"type":"integer","default":200,"maximum":500},"description":"Results per page, max 500"}],"responses":{"200":{"description":"Active syncs","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"syncs":{"type":"array","items":{"$ref":"#/components/schemas/Sync"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["syncs","pagination"]},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/ontology/tags":{"get":{"operationId":"browseTags","summary":"Search the Synorb tag catalog with fuzzy matching","description":"Fuzzy search tags by name. Filter by tag_type or browse by stream frequency. Returns tag_id, canonical_name, tag_type, aliases, relevance, and claim_count.\n\nUse `search` for fuzzy name matching. Use `stream_id` to browse tags by frequency in a specific stream. Enterprise only.","tags":["Ontology Sync"],"parameters":[{"name":"search","in":"query","schema":{"type":"string"},"description":"Fuzzy search query (e.g., 'Tesla', 'Elon Musk')","example":"Tesla"},{"name":"tag_type","in":"query","schema":{"type":"string","enum":["person","organization","place","topic","data"]},"description":"Filter by tag type"},{"name":"stream_id","in":"query","schema":{"type":"integer"},"description":"Browse tags by frequency in this stream"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/pageSize"}],"responses":{"200":{"description":"Tag search results","content":{"application/json":{"example":{"data":{"tags":[{"tag_id":"17724793080269856","canonical_name":"Tesla Inc","tag_type":"organization","aliases":["Tesla","TSLA","Tesla Motors"],"relevance":0.85,"claim_count":0}],"pagination":{"total_count":3,"page_num":0,"page_size":50,"next":null,"prev":null}},"usage":{"quota_limit":1000000,"quota_used":500,"quota_remaining":999500,"period":"2026-03","available":"signal, brief, record","items_in_response":3}},"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"tags":{"type":"array","items":{"$ref":"#/components/schemas/Tag"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["tags","pagination"]},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/ontology/tags/{tag_id}/related":{"get":{"operationId":"getRelatedTags","summary":"Suggest related tags from knowledge graph","description":"Given a tag_id, returns related tags from the knowledge graph. For example, syncing 'Tesla Inc' might suggest 'Elon Musk', 'SpaceX', 'TSLA'. Enterprise only.","tags":["Ontology Sync"],"parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","schema":{"type":"integer","default":10},"description":"Max suggestions to return"}],"responses":{"200":{"description":"Related tag suggestions","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"related":{"type":"array","items":{"$ref":"#/components/schemas/Tag"}}}},"usage":{"$ref":"#/components/schemas/Usage"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/ontology/topics":{"get":{"operationId":"browseTopics","summary":"Browse the Synorb topic catalog","description":"Search and browse topics by name or domain. Topics are thematic categories that organize content. Enterprise only.","tags":["Ontology Sync"],"parameters":[{"name":"search","in":"query","schema":{"type":"string"},"description":"Search query"},{"name":"domain","in":"query","schema":{"type":"string"},"description":"Filter by domain (e.g., tech, finance, policy, health)"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/pageSize"}],"responses":{"200":{"description":"Topic catalog","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"topics":{"type":"array","items":{"$ref":"#/components/schemas/Topic"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["topics","pagination"]},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/ontology/labels":{"get":{"operationId":"listLabels","summary":"List custom label definitions for your org","description":"Returns all label definitions. Labels help categorize syncs (e.g., 'buy-side', 'portfolio', 'watchlist'). Enterprise only.","tags":["Ontology Sync"],"responses":{"200":{"description":"Label definitions","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"labels":{"type":"array","items":{"type":"object","properties":{"label_name":{"type":"string","example":"buy-side"},"label_group":{"type":"string","example":"trading"},"description":{"type":"string","example":"Buy-side research portfolio"}}}}}},"usage":{"$ref":"#/components/schemas/Usage"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}},"post":{"operationId":"createLabel","summary":"Create a custom label for organizing syncs","description":"Labels help categorize syncs (e.g., 'buy-side', 'portfolio', 'watchlist'). Enterprise only.","tags":["Ontology Sync"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["label_name"],"properties":{"label_name":{"type":"string","example":"buy-side"},"label_group":{"type":"string","example":"trading"},"description":{"type":"string","example":"Buy-side research portfolio"}}}}}},"responses":{"201":{"description":"Label created"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}},"/perplexity":{"get":{"operationId":"getPerplexityPartnerMetadata","summary":"Perplexity Computer partner metadata","description":"Returns the Synorb MCP URLs, auth options, and Perplexity partner activation endpoints.","tags":["Partners"],"responses":{"200":{"description":"Perplexity partner metadata","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/perplexity/free-credentials":{"post":{"operationId":"createPerplexityFreeCredentials","summary":"Create free Synorb MCP credentials for Perplexity Computer","description":"Email-only activation for new Free users. Returns a Core MCP connector URL and token immediately, and emails the same credentials. If the email already has a Synorb account, this endpoint does not reveal an existing token; validate with api-key + secret instead.","tags":["Partners"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"}}}}}},"responses":{"200":{"description":"Free credentials created or existing account detected","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/perplexity/auth/validate":{"post":{"operationId":"validatePerplexitySynorbCredentials","summary":"Validate an existing Synorb account for Perplexity Computer","description":"Validates Synorb api-key + secret headers and returns plan/quota metadata plus the Core MCP connector URL and token for Perplexity Computer.","tags":["Partners"],"security":[{"apiKey":[],"apiSecret":[]}],"responses":{"200":{"description":"Valid Synorb account and MCP connector metadata","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/PlanGated"}}}}},"components":{"schemas":{"ResponseEnvelope":{"type":"object","description":"Standard response wrapper for all authenticated endpoints. The `data` object contains the actual payload. The `usage` object tracks quota consumption.","properties":{"data":{"type":"object","description":"Response payload â€” structure varies by endpoint"},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["data","usage"]},"Pagination":{"type":"object","description":"Pagination metadata. Always nested inside `data`. Use `next` to determine if more pages exist â€” when `next` is null, you are on the last page.","properties":{"total_count":{"type":"integer","description":"Total matching results across all pages","example":521},"page_num":{"type":"integer","description":"Current page number (0-indexed)","example":0},"page_size":{"type":"integer","description":"Results per page","example":50},"next":{"type":"integer","nullable":true,"description":"Next page number, or null if on last page","example":1},"prev":{"type":"integer","nullable":true,"description":"Previous page number, or null if on first page","example":null}},"required":["total_count","page_num","page_size","next","prev"]},"Usage":{"type":"object","description":"Quota usage metadata. Present on every authenticated response. Also sent as X-Synorb-* response headers.","properties":{"quota_limit":{"type":"integer","description":"Monthly manifest quota","example":1000},"quota_used":{"type":"integer","description":"Manifests consumed this period","example":42},"quota_remaining":{"type":"integer","description":"Manifests remaining this period","example":958},"period":{"type":"string","description":"Current billing period (YYYY-MM)","example":"2026-03"},"available":{"type":"string","description":"Content levels available on your plan (comma-separated)","example":"signal, brief"},"items_in_response":{"type":"integer","description":"Number of items in this specific response","example":50}},"required":["quota_limit","quota_used","quota_remaining","period","available","items_in_response"]},"StreamSummary":{"type":"object","description":"Stream summary with volume metrics. IDs exceeding JavaScript's Number.MAX_SAFE_INTEGER (2^53-1) are returned as strings.","properties":{"id":{"type":"string","description":"Stream ID (unique ID string)","example":"17724793080269856"},"name":{"type":"string","example":"OpenAI"},"description":{"type":"string","example":"Intelligence from OpenAI research, blog posts, and announcements"},"home_domain":{"type":"string","example":"engineering-technology"},"cross_domains":{"type":"array","items":{"type":"string"},"example":["economics-business-work"]},"is_public":{"type":"boolean","example":true},"is_active":{"type":"boolean","example":true},"manifests_last24h":{"type":"integer","description":"Manifests published in last 24 hours","example":3},"manifests_last7d":{"type":"integer","description":"Manifests published in last 7 days","example":18},"manifests_last30d":{"type":"integer","description":"Manifests published in last 30 days","example":72},"created_on":{"type":"string","format":"date-time","description":"When the stream was created","example":"2026-01-15T00:00:00Z"},"updated_on":{"type":"string","format":"date-time","description":"When the stream was last updated","example":"2026-03-19T03:24:50Z"},"activated_on":{"type":"string","format":"date-time","description":"When the stream was first activated (internal)","example":"2026-01-15T00:00:00Z"},"public_on":{"type":"string","format":"date-time","description":"When the stream was made public (customer-facing)","example":"2026-01-15T00:00:00Z"},"deactivated_on":{"type":"string","format":"date-time","description":"When the stream was deactivated (epoch = still active)","example":"1970-01-01T00:00:00Z"},"tag_ids":{"type":"array","items":{"type":"string"},"description":"Associated tag IDs","example":["17724793080269856"]},"source_url":{"type":"string","format":"uri","nullable":true,"description":"Primary source URL for this stream","example":"https://openai.com"}}},"StreamDetail":{"type":"object","description":"Full stream metadata including filter definitions, source channels, and volume metrics","properties":{"id":{"type":"string","description":"Stream ID (unique ID string)","example":"17724793080269856"},"name":{"type":"string","description":"URL-safe stream name (slug)","example":"openai"},"title":{"type":"string","description":"Human-readable stream title","example":"OpenAI"},"description":{"type":"string"},"home_domain":{"type":"string","example":"engineering-technology"},"cross_domains":{"type":"array","items":{"type":"string"}},"is_public":{"type":"boolean"},"is_active":{"type":"boolean"},"status":{"type":"string","description":"Stream status","example":"live"},"stream_type":{"type":"string","nullable":true,"description":"Stream type classification","example":"public"},"stream_class":{"type":"string","nullable":true,"description":"Stream class (discovery, narrative, research)","example":"discovery"},"source_type":{"type":"string","nullable":true,"description":"Primary source type","example":"organization"},"source_url":{"type":"string","format":"uri","nullable":true},"source_ids":{"type":"array","items":{"type":"string"},"description":"Associated source config IDs"},"source_channel_ids":{"type":"array","items":{"type":"string"},"description":"Associated source channel IDs"},"source_channels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","description":"Machine slug (e.g. pitch-the-pm-podcast)"},"source_channel_display":{"type":"string","nullable":true,"description":"Human-readable label (e.g. Pitch The PM)"},"source_type":{"type":"string"},"media_format":{"type":"string"},"is_active":{"type":"boolean"},"activated_on":{"type":"string","format":"date-time"},"deactivated_on":{"type":"string","format":"date-time"},"deactivation_reason":{"type":"string","nullable":true}}},"description":"Source channel details with connector type and status"},"filter_definition":{"type":"object","description":"Stream filter rules (tag_ids, source_type, source_names)"},"claim_type_ids":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Claim type filter (null = all types)"},"tag_ids":{"type":"array","items":{"type":"string"},"description":"Associated tag IDs"},"manifests_last24h":{"type":"integer","description":"Manifests published in last 24 hours"},"manifests_last7d":{"type":"integer","description":"Manifests published in last 7 days"},"manifests_last30d":{"type":"integer","description":"Manifests published in last 30 days"},"claims_last24h":{"type":"integer","description":"Claims published in last 24 hours"},"claims_last7d":{"type":"integer","description":"Claims published in last 7 days"},"claims_last30d":{"type":"integer","description":"Claims published in last 30 days"},"counts_updated_at":{"type":"string","format":"date-time","description":"When volume counts were last refreshed"},"activated_on":{"type":"string","format":"date-time"},"public_on":{"type":"string","format":"date-time"},"deactivated_on":{"type":"string","format":"date-time","description":"Epoch (1970-01-01) means still active"},"created_on":{"type":"string","format":"date-time"},"updated_on":{"type":"string","format":"date-time"}}},"Signal":{"type":"object","description":"Structured claims extraction for reasoning systems. Contains 15-50 atomic assertions per record with claim_type, confidence, and evidence metadata.","properties":{"story_id":{"type":"string","description":"Signal ID (unique ID string)","example":"17737682899496764"},"stream_id":{"type":"string","description":"Stream this signal was matched to","example":"17724793080269856"},"source_published_date":{"type":"string","format":"date","nullable":true,"description":"When the source was originally published","example":"2026-03-18"},"source_type":{"type":"string","enum":["person","organization","data"],"description":"Source type","example":"organization"},"media_format":{"type":"string","enum":["text","audio","video","social","data","transcript","regulatory"],"description":"Media format of the source","example":"text"},"matched_at":{"type":"string","format":"date-time","description":"When this signal was matched to the stream"},"headline":{"type":"string","example":"OpenAI Announces GPT-5 Architecture"},"summary":{"type":"string","example":"OpenAI revealed the architecture behind GPT-5, highlighting a new mixture-of-experts approach."},"sentiment":{"type":"string","enum":["positive","negative","neutral","mixed","indeterminate"],"example":"positive"},"significance":{"type":"string","enum":["low","medium","high"],"example":"high"},"content_quality_score":{"type":"number","nullable":true,"description":"Content quality score (0-1)"},"reading_time_minutes":{"type":"number","nullable":true,"description":"Estimated reading time in minutes"},"key_points_count":{"type":"integer","nullable":true,"description":"Number of key points"},"quote_count":{"type":"integer","nullable":true,"description":"Number of quotes"},"story_created_at":{"type":"string","format":"date-time","description":"When this signal was created"},"record_id":{"type":"string","description":"ID of the source record"},"story_version":{"type":"integer","description":"Signal version number","example":1},"story_version_note":{"type":"string","nullable":true,"description":"Note about this version"},"record_url":{"type":"string","format":"uri","description":"Original source URL","example":"https://openai.com/blog/gpt-5-architecture"},"record_published_date":{"type":"string","format":"date","nullable":true,"description":"When the source record was published"},"synorb_ingested_at":{"type":"string","format":"date-time","description":"When Synorb ingested the source"},"record_version":{"type":"integer","description":"Record version number"},"record_version_note":{"type":"string","nullable":true,"description":"Note about the record version"},"body":{"type":"object","description":"Structured claims body containing atomic assertions, source metadata, and domain classification","properties":{"signal":{"type":"object","description":"Source metadata for the extraction","properties":{"source_url":{"type":"string","format":"uri"},"published_date":{"type":"string","format":"date"},"source_name":{"type":"string","description":"Source publication name"},"source_channel":{"type":"string","description":"Source channel identifier"},"claim_count":{"type":"integer","description":"Total claims extracted"},"featured_count":{"type":"integer","description":"Number of featured/key claims"}}},"claims":{"type":"array","description":"15-50 atomic assertions extracted from the source","items":{"type":"object","properties":{"claim_text":{"type":"string","description":"One atomic assertion, one sentence"},"claim_type":{"type":"string","enum":["publication","announcement","disclosure","remarks","data","analysis","event"],"description":"publication=research/report, announcement=official statement, disclosure=filing, remarks=speech/interview, data=statistic, analysis=derived insight, event=occurrence"},"confidence":{"type":"string","enum":["stated","implied","inferred","measured"],"description":"stated=explicit, implied=strongly suggested, inferred=derived by reasoning, measured=backed by data"},"evidence":{"type":"string","enum":["direct_quote","paraphrase","derived","observed"],"description":"direct_quote=exact quote (quote field populated), paraphrase=restated, derived=synthesized, observed=factual"},"quote":{"type":"string","nullable":true,"description":"Exact quote from source when evidence=direct_quote, null otherwise"},"signal":{"type":"string","description":"1-2 sentences explaining why this claim matters"},"featured":{"type":"boolean","description":"Whether this is a key claim"},"key_point_index":{"type":"integer","nullable":true,"description":"Position in key points list, null if not featured"},"entities":{"type":"array","description":"Entities mentioned in this claim","items":{"type":"object","properties":{"name":{"type":"string","description":"Canonical entity name"},"type":{"type":"string","enum":["organization","person","place","topic"]},"role":{"type":"string","enum":["source_org","speaker","subject","mentioned"]}}}}}}},"entity_details":{"type":"array","description":"Resolved tags for the entire signal","items":{"type":"object","properties":{"tag_type":{"type":"string","enum":["Organization","Person","Place","Topic"]},"tag_value":{"type":"string"}}}},"domain_classification":{"type":"object","description":"Domain classification for the signal","properties":{"home_domain":{"type":"string","description":"Primary domain"},"cross_domains":{"type":"array","items":{"type":"string"},"description":"0-3 secondary domains"}}},"topics":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Resolved topic names"}}}}},"Brief":{"type":"object","description":"Structured narrative for human-readable reporting. Contains headline, summary, and structured body narrative with sentiment and significance ratings.","properties":{"story_id":{"type":"string","example":"17737682899496765"},"stream_id":{"type":"string","description":"Stream this brief was matched to","example":"17724793080269856"},"source_published_date":{"type":"string","format":"date","nullable":true,"description":"When the source was originally published","example":"2026-03-18"},"source_type":{"type":"string","enum":["person","organization","data"],"description":"Source type","example":"organization"},"media_format":{"type":"string","enum":["text","audio","video","social","data","transcript","regulatory"],"description":"Media format of the source","example":"text"},"matched_at":{"type":"string","format":"date-time","description":"When this brief was matched to the stream"},"headline":{"type":"string","example":"OpenAI Announces GPT-5 Architecture"},"summary":{"type":"string"},"sentiment":{"type":"string","enum":["positive","negative","neutral","mixed","indeterminate"]},"significance":{"type":"string","enum":["low","medium","high"]},"content_quality_score":{"type":"number","nullable":true,"description":"Content quality score (0-1)"},"reading_time_minutes":{"type":"number","nullable":true,"description":"Estimated reading time in minutes"},"key_points_count":{"type":"integer","nullable":true,"description":"Number of key points"},"quote_count":{"type":"integer","nullable":true,"description":"Number of quotes"},"story_created_at":{"type":"string","format":"date-time","description":"When this brief was created"},"record_id":{"type":"string","description":"ID of the source record"},"story_version":{"type":"integer","description":"Brief version number","example":1},"story_version_note":{"type":"string","nullable":true,"description":"Note about this version"},"record_url":{"type":"string","format":"uri","description":"Original source URL"},"record_published_date":{"type":"string","format":"date","nullable":true,"description":"When the source record was published"},"synorb_ingested_at":{"type":"string","format":"date-time","description":"When Synorb ingested the source"},"record_version":{"type":"integer","description":"Record version number"},"record_version_note":{"type":"string","nullable":true,"description":"Note about the record version"},"body":{"type":"object","description":"Structured narrative body with key insights, quotes, and entity details","properties":{"key_insights":{"type":"array","items":{"type":"string"},"description":"3-4 key takeaways ordered by importance"},"notable_quotes":{"type":"array","description":"Direct quotes from the source","items":{"type":"object","properties":{"text":{"type":"string","description":"Exact quote"},"speaker":{"type":"string","description":"Name of person quoted"},"context":{"type":"string","description":"Why this quote matters (1 sentence)"}}}},"entity_details":{"type":"array","description":"Resolved tags","items":{"type":"object","properties":{"tag_type":{"type":"string","enum":["Organization","Person","Place","Topic"]},"tag_value":{"type":"string"}}}},"domain_classification":{"type":"object","properties":{"home_domain":{"type":"string"},"cross_domains":{"type":"array","items":{"type":"string"}}}},"topics":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Resolved topic names"},"actionable_takeaways":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Actionable recommendations derived from the content. Audio only — present when media_format is 'audio'."},"guest_details":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Guest or performer name"},"title":{"type":"string","description":"Professional title"},"affiliation":{"type":"string","description":"Organization or company"}}},"nullable":true,"description":"Guest or performer details with name, title, and affiliation. Audio only — present when media_format is 'audio'."},"cross_promotion":{"type":"string","nullable":true,"description":"Cross-promotion or mentions of other shows, products, or platforms. Audio only — present when media_format is 'audio'."},"cultural_relevance":{"type":"string","nullable":true,"description":"Cultural or social relevance of the content in the current context. Audio only — present when media_format is 'audio'."}}},"body_markdown":{"type":"string","description":"Markdown-rendered brief body. Standard briefs include ## Key Insights and ## Notable Quotes. Audio briefs (media_format='audio') additionally include ## Actionable Takeaways, ## Guest or Performer Details, ## Cross-Promotion or Mentions, and ## Cultural or Social Relevance."}}},"Record":{"type":"object","description":"Original ingested content payload. Enterprise only (Enterprise access).","properties":{"record_id":{"type":"string","description":"Record ID (unique ID string)","example":"17737682899496700"},"title":{"type":"string","example":"OpenAI Announces GPT-5 Architecture"},"url":{"type":"string","format":"uri","example":"https://openai.com/blog/gpt-5-architecture"},"source_published_date":{"type":"string","format":"date","example":"2026-03-18"},"source_name":{"type":"string","example":"OpenAI Blog"},"source_type":{"type":"string","enum":["person","organization","data"],"example":"organization"},"media_format":{"type":"string","enum":["text","audio","video","social","data","transcript","regulatory"]},"claim_type":{"type":"string","enum":["publication","announcement","disclosure","remarks","data","analysis","event"]},"author":{"type":"string","nullable":true,"description":"Author name if available"},"content":{"type":"string","description":"Full ingested content text"},"extra_data":{"type":"object","nullable":true,"description":"Additional metadata (varies by source type)"},"synorb_ingested_at":{"type":"string","format":"date-time","description":"When Synorb ingested this record"},"record_version":{"type":"integer","description":"Record version number","example":1},"record_version_note":{"type":"string","nullable":true,"description":"Note about the record version"},"status":{"type":"string","description":"Record processing status","example":"pending"},"stream_id":{"type":"string","description":"Stream this record was matched to"},"matched_at":{"type":"string","format":"date-time","description":"When this record was matched to the stream"}}},"Manifest":{"type":"object","description":"Record + Signal + Brief triplet. The complete delivery unit. All top-level keys are always present. Content within signal/brief/record is gated by plan level (all plans: signal + brief, Enterprise: +record). Fields below your plan level show all keys with an upgrade message string (e.g. 'Requires Startup plan or higher'), never omitted.","required":["manifest_id","record_id","stream_ids","stream_names","matched_at","source","signal","brief","record"],"properties":{"manifest_id":{"type":"string","description":"Manifest ID (unique ID string)","example":"17737682899496764"},"record_id":{"type":"string","example":"17737682899496700"},"stream_ids":{"type":"array","items":{"type":"string"},"description":"Stream IDs this manifest is routed to","example":["17724793080269856"]},"stream_names":{"type":"array","items":{"type":"string"},"description":"Human-readable stream names corresponding to stream_ids","example":["Bloomberg"]},"matched_at":{"type":"string","format":"date-time","description":"When this manifest was routed to the stream","example":"2026-03-18T14:22:00Z"},"source":{"type":"object","description":"Source metadata. All keys always present (null if unknown).","required":["record_title","source_url","source_published_date","synorb_ingested_at","source_name","source_type","media_format","claim_type","author","record_version"],"properties":{"record_title":{"type":"string","nullable":true,"example":"OpenAI Announces GPT-5 Architecture"},"source_url":{"type":"string","format":"uri","nullable":true,"example":"https://openai.com/blog/gpt-5-architecture"},"source_published_date":{"type":"string","format":"date","nullable":true,"example":"2026-03-18"},"synorb_ingested_at":{"type":"string","format":"date-time","nullable":true,"example":"2026-03-18T14:22:00Z"},"source_name":{"type":"string","nullable":true,"example":"OpenAI Blog"},"source_type":{"type":"string","enum":["person","organization","data"],"nullable":true},"media_format":{"type":"string","enum":["text","audio","video","social","data","transcript","regulatory"],"nullable":true},"claim_type":{"type":"string","enum":["publication","announcement","disclosure","remarks","data","analysis","event"],"nullable":true},"author":{"type":"string","nullable":true},"record_version":{"type":"integer","nullable":true},"source_channel_ids":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Source channel IDs that produced this record","example":["17732516384529123"]},"source_channel_display":{"type":"string","nullable":true,"description":"Human-readable source channel name","example":"Federal Reserve Bank of St. Louis"}}},"signal":{"type":"object","nullable":true,"description":"Structured claims extraction. Always present at all plans. All keys always present (null if unavailable).","required":["story_id","headline","summary","body","sentiment","significance","version","reading_time_minutes","claim_count"],"properties":{"story_id":{"type":"string","nullable":true,"description":"Signal story ID"},"headline":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"body":{"type":"object","nullable":true,"description":"Structured signal body containing claims, entity_details, topics, and domain_classification","properties":{"claims":{"type":"array","description":"15-50 atomic assertions extracted from the source","items":{"type":"object"}},"entity_details":{"type":"array","nullable":true,"description":"Resolved tags for the entire signal. Array of objects, each with tag_type and tag_value.","items":{"type":"object","properties":{"tag_type":{"type":"string","enum":["Organization","Person","Place","Topic"]},"tag_value":{"type":"string"}}}},"topics":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Resolved topic names"},"domain_classification":{"type":"object","nullable":true,"description":"Domain classification","properties":{"home_domain":{"type":"string"},"cross_domains":{"type":"array","items":{"type":"string"}}}}}},"sentiment":{"type":"string","enum":["positive","negative","neutral","mixed","indeterminate"],"nullable":true},"significance":{"type":"string","enum":["low","medium","high"],"nullable":true},"version":{"type":"integer","nullable":true},"reading_time_minutes":{"type":"number","nullable":true},"claim_count":{"type":"integer","nullable":true}}},"brief":{"type":"object","description":"Structured narrative. Always present. Full content at all plans. On plans without this access, all keys present with value 'Requires Startup plan or higher'.","required":["story_id","headline","summary","body","sentiment","significance","version","reading_time_minutes","key_points_count","quote_count"],"properties":{"story_id":{"type":"string","nullable":true},"headline":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"body":{"type":"object","nullable":true,"description":"Structured brief body containing key_insights, notable_quotes, entity_details, topics, and domain_classification","properties":{"key_insights":{"type":"array","items":{"type":"string"},"description":"3-4 key takeaways ordered by importance"},"notable_quotes":{"type":"array","description":"Direct quotes from the source","items":{"type":"object","properties":{"text":{"type":"string"},"speaker":{"type":"string"},"context":{"type":"string"}}}},"entity_details":{"type":"array","nullable":true,"description":"Resolved tags. Array of objects, each with tag_type and tag_value.","items":{"type":"object","properties":{"tag_type":{"type":"string","enum":["Organization","Person","Place","Topic"]},"tag_value":{"type":"string"}}}},"topics":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Resolved topic names"},"domain_classification":{"type":"object","nullable":true,"description":"Domain classification","properties":{"home_domain":{"type":"string"},"cross_domains":{"type":"array","items":{"type":"string"}}}},"actionable_takeaways":{"type":"array","items":{"type":"string"},"description":"Actionable recommendations (audio manifests only)"},"guest_details":{"type":"array","description":"Guest information (audio manifests only)","items":{"type":"object","properties":{"name":{"type":"string"},"title":{"type":"string"},"affiliation":{"type":"string"}}}},"cross_promotion":{"type":"array","items":{"type":"string"},"description":"Mentions of other shows/products/platforms (audio manifests only)"},"cultural_relevance":{"type":"string","nullable":true,"description":"Cultural context note (audio manifests only)"}}},"sentiment":{"type":"string","enum":["positive","negative","neutral","mixed","indeterminate"],"nullable":true},"significance":{"type":"string","enum":["low","medium","high"],"nullable":true},"version":{"type":"integer","nullable":true},"reading_time_minutes":{"type":"number","nullable":true},"key_points_count":{"type":"integer","nullable":true},"quote_count":{"type":"integer","nullable":true}}},"record":{"type":"object","description":"Full source content. Always present. Full content at Enterprise plans (Enterprise). Below Enterprise, all keys present with value 'Requires Enterprise plan'.","required":["record_id","title","url","source_published_date","source_name","source_type","media_format","claim_type","content","extra_data"],"properties":{"record_id":{"type":"string","nullable":true,"description":"Record ID"},"title":{"type":"string","nullable":true},"url":{"type":"string","format":"uri","nullable":true},"source_published_date":{"type":"string","format":"date","nullable":true},"source_name":{"type":"string","nullable":true},"source_type":{"type":"string","nullable":true},"media_format":{"type":"string","nullable":true},"claim_type":{"type":"string","nullable":true},"content":{"type":"string","description":"Full ingested content text"},"extra_data":{"type":"object","nullable":true,"description":"Additional metadata (varies by source type)"},"record_version":{"type":"integer","nullable":true,"description":"Record version number"}}}}},"DigestSummary":{"type":"object","properties":{"id":{"type":"string","example":"17724272565117011"},"name":{"type":"string","example":"AI Policy Watch"},"slug":{"type":"string","example":"ai-policy-watch"},"description":{"type":"string","nullable":true},"stream_count":{"type":"integer","example":12},"is_active":{"type":"boolean","example":true},"created_on":{"type":"string","format":"date-time"},"updated_on":{"type":"string","format":"date-time"},"added_on":{"type":"string","format":"date-time","nullable":true,"description":"When this digest was added to the org (for Synorb digests)"},"digest_type":{"type":"string","enum":["user","synorb"],"description":"'user' = org-built (included in plan), 'synorb' = pre-curated (included on Enterprise)"},"access_type":{"type":"string","enum":["included","subscribed"],"nullable":true,"description":"How this digest was accessed (for Synorb digests)"},"has_dynamic_filter":{"type":"boolean","description":"Whether this digest uses a filter_spec for dynamic stream resolution"}}},"FilterSpec":{"type":"object","description":"Dynamic filter rules for digest stream resolution. Combine rules with AND or OR logic.","properties":{"rules":{"type":"array","items":{"type":"object","properties":{"dimension":{"type":"string","enum":["topic","tag","domain","source","source_type","claim_type","media_format"],"description":"Filter dimension"},"values":{"type":"array","items":{"type":"string"},"description":"Values to match (OR within dimension)"}},"required":["dimension","values"]}},"combine":{"type":"string","enum":["AND","OR"],"default":"AND","description":"How to combine rules across dimensions"}},"example":{"rules":[{"dimension":"domain","values":["engineering-technology"]},{"dimension":"source_type","values":["organization"]}],"combine":"AND"}},"Tag":{"type":"object","description":"Synorb tag catalog entry â€” a resolved entity (person, organization, place, topic, or data)","properties":{"tag_id":{"type":"string","description":"Tag ID (unique ID string)","example":"17724793080269856"},"canonical_name":{"type":"string","example":"Tesla Inc"},"tag_type":{"type":"string","enum":["person","organization","place","topic","data"],"example":"organization"},"aliases":{"type":"array","items":{"type":"string"},"example":["Tesla","TSLA","Tesla Motors"]},"claim_count":{"type":"integer","description":"Number of claims referencing this tag","example":142},"relevance":{"type":"number","nullable":true,"description":"Similarity score (0-1) when using search query. Null when browsing without search.","example":0.85}}},"Topic":{"type":"object","description":"Synorb topic catalog entry â€” a thematic category","properties":{"id":{"type":"string","example":"17724793080269900"},"name":{"type":"string","example":"Artificial Intelligence"},"domain":{"type":"string","example":"engineering-technology"},"aliases":{"type":"array","items":{"type":"string"},"example":["AI","machine learning"]}}},"Sync":{"type":"object","description":"A sync mapping between a Synorb object and a customer's internal identifier","properties":{"id":{"type":"string","description":"Sync ID","example":"42"},"org_id":{"type":"string","description":"Organization ID","example":"17724793080269856"},"object_type":{"type":"string","enum":["tag","topic","stream"],"example":"tag"},"object_id":{"type":"string","example":"17724793080269856"},"synorb_name":{"type":"string","description":"Canonical Synorb name for the synced object","example":"Tesla Inc"},"external_id":{"type":"string","description":"Customer's internal identifier","example":"ticker:TSLA"},"external_name":{"type":"string","description":"Customer's internal display name","example":"Tesla"},"labels":{"type":"array","items":{"type":"string"},"example":["portfolio","tech"]},"is_active":{"type":"boolean","example":true},"bound_via":{"type":"string","enum":["mcp","api","sdk"],"example":"api"},"created_on":{"type":"string","format":"date-time"},"updated_on":{"type":"string","format":"date-time"}}},"Error":{"type":"object","description":"Standard error response. HTTP status code is also in the response status line.","properties":{"detail":{"type":"string","description":"Human-readable error message","example":"Stream 12345 not found"}},"required":["detail"]},"AccountResponse":{"type":"object","description":"Full account profile returned by GET /account","properties":{"org":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"org_type":{"type":"string","enum":["individual","startup","enterprise"]},"contact_email":{"type":"string"},"is_active":{"type":"boolean"},"created_on":{"type":"string","format":"date-time"}}},"subscription":{"$ref":"#/components/schemas/AccountSubscription"},"users":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"},"is_active":{"type":"boolean"},"has_active_key":{"type":"boolean"},"created_on":{"type":"string","format":"date-time"}}}},"usage":{"$ref":"#/components/schemas/Usage"},"mcp_connector":{"type":"object","properties":{"url":{"type":"string"},"config":{"type":"object"},"docs":{"type":"string"},"advanced_url":{"type":"string","description":"Advanced MCP connector URL for configured workflows"},"profiles":{"type":"object","description":"Core and Advanced MCP connector URLs"},"advanced_config":{"type":"object","description":"MCP client config for the Advanced server"}}}}},"AccountSubscription":{"type":"object","description":"Subscription summary shown in account and subscription responses","properties":{"status":{"type":"string","enum":["active","canceled","past_due","trialing"]},"plan_display_name":{"type":"string"},"billing_cycle":{"type":"string"},"endpoint_mcp":{"type":"boolean"},"endpoint_api":{"type":"boolean"},"endpoint_s3":{"type":"boolean"},"endpoint_websocket":{"type":"boolean"},"endpoint_webhook":{"type":"boolean"},"endpoint_digests":{"type":"boolean"}}},"DigestDetail":{"type":"object","description":"Digest detail returned by GET /digests/{id}","properties":{"digest":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string"},"slug":{"type":"string"},"digest_type":{"type":"string","enum":["user","synorb"]},"is_active":{"type":"boolean"},"has_dynamic_filter":{"type":"boolean"},"stream_count":{"type":"integer"},"created_on":{"type":"string","format":"date-time"},"updated_on":{"type":"string","format":"date-time"}}},"streams":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"},"description":{"type":"string"},"home_domain":{"type":"string"},"stream_class":{"type":"string"},"manifests_last24h":{"type":"integer"},"manifests_last7d":{"type":"integer"},"manifests_last30d":{"type":"integer"}}}}}}},"parameters":{"streamId":{"name":"stream_id","in":"path","required":true,"schema":{"type":"integer","format":"int64"},"description":"Stream ID (unique ID string)"},"publishedDateFrom":{"name":"published_date_from","in":"query","schema":{"type":"string","format":"date"},"description":"Start date filter (YYYY-MM-DD). Defaults to your plan's earliest allowed date.","example":"2026-03-01"},"publishedDateTo":{"name":"published_date_to","in":"query","schema":{"type":"string","format":"date"},"description":"End date filter (YYYY-MM-DD). Defaults to today.","example":"2026-03-19"},"page":{"name":"page","in":"query","schema":{"type":"integer","default":0,"minimum":0},"description":"Page number (0-indexed). Both `page` and `page_num` are accepted. Use `pagination.next` from the response to get the next page."},"pageSize":{"name":"page_size","in":"query","schema":{"type":"integer","default":50,"minimum":1,"maximum":200},"description":"Results per page (max 200)"}},"responses":{"Unauthorized":{"description":"Authentication failed â€” invalid or missing api-key/secret headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"detail":"Invalid API key or secret"}}}},"PlanGated":{"description":"Your plan does not include this feature. Upgrade at https://synorb.com/pricing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"detail":"This feature requires a plan upgrade"}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"detail":"Stream 12345 not found"}}}},"RateLimited":{"description":"Too many requests â€” slow down","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait before retrying"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"detail":"Rate limit exceeded. Try again in 60 seconds."}}}},"BadRequest":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"api-key","description":"Your Synorb API key. Get free credentials at https://synorb.com/connect"},"apiSecret":{"type":"apiKey","in":"header","name":"secret","description":"Your Synorb API secret. Get free credentials at https://synorb.com/connect"},"accessToken":{"type":"apiKey","in":"header","name":"access_token","description":"MCP-only token. NOT accepted on the REST API. Use with Core MCP (https://mcp.synorb.com/sse?token=...) or Advanced MCP (https://mcp.synorb.com/advanced/sse?token=...)."}}},"security":[{"apiKey":[],"apiSecret":[]}],"tags":[{"name":"Account","description":"Organization profile and quota"},{"name":"Streams","description":"Browse streams and fetch manifests (signal + brief + record triplets)"},{"name":"Platform","description":"Granular access by manifest ID. Platform/Firehose plans only"},{"name":"Digest Builder","description":"Custom groupings of manifests. Startup | Enterprise"},{"name":"Synorb Digests","description":"Pre-curated intelligence bundles. Included on Enterprise"},{"name":"Ontology Sync","description":"Map Synorb tags and topics to your internal identifiers. Enterprise"},{"name":"Webhooks","description":"Push notifications when events happen in your streams. Startup | Enterprise"},{"name":"S3 Export","description":"Bulk export via presigned S3 URLs. Startup | Enterprise"},{"name":"Partners","description":"Partner activation surfaces including Perplexity Computer and OpenBB."}]}