Start in this order
GET /connect returns the one credential for both MCP and REST. Store it only in the host or server secret store.GET /ontology/tags, choose explicit stream_ids, then use MCP or REST.Authorization: Bearer YOUR_SYNORB_KEY
Choose the transport
For a live website or app, a coding agent may use MCP to understand coverage while building, but the deployed product should call REST from a server-side route. Never put a Synorb Key in browser code. Preserve source citation URLs in the rendered interface.
Non-negotiable query rules
- Ontology first. Never guess a tag name. Resolve it through
/ontology/tags. An unknown tag can return an empty result without an error. - Scope with
stream_ids. Select them from catalog/details first. Empty scope can become a global pull.required_surfacesis not reliable execution scope. - Plan before REST execution. Call
POST /manifests/plan, retain the request exactly, then callPOST /manifests/execwith the identical fields plusplan_token. - Honor the fingerprint. Adding or changing any field, including
target_count, invalidates the plan token. A409 invalid_plan_tokenrequires a free re-plan, not a modified retry.
Billing at a glance
| Action | Manifest quota |
|---|---|
| Catalog, details, ontology, account, count/orient, and plan | Zero |
| Beacon create, list, archive, restore, and delete | Zero |
| Topic-filtered REST execute or Beacon poll | Only returned on-topic Manifests |
| Previously billed repeated Manifest | Not billed again within the dedup window |
| Invalid request, planning failure, invalid token, or clean empty result | Zero unless a Manifest was returned |
Inspect each response's usage and quota receipt. A target count is a ceiling, not permission to fill results with unrelated content.
Beacons: watch vs. pull
Use a Beacon for a reusable watch; pull directly for a one-off answer. A Beacon's natural_language_intent is descriptive only. Convert intent to selected stream_ids and canonical topic_filters first.
[{"tag_id":"tag_123","tag_name":"Payment Systems","tag_type":"topic"}]
Run a saved Beacon through GET /streams/{id}/manifests?beacon_id=... with a time window. Do not use POST /manifests/query to execute it. The full create, poll, archive, restore, and delete lifecycle is in the agent guide.
Machine-readable entry points
Coding agents
Give the build agent the guide before it writes an integration. It will learn the two-key boundary: MCP for the agent's exploratory session and server-side REST for the shipped user experience, with citations preserved.