Documentation
One narrow launch wedge, then specialized machine-readable guides.

SwarmCast is easiest to understand if you separate the launch wedge from the integration surfaces. The current public product is a first-party market-intelligence bundle for macro and policy desks, with separate guides for discovery, live SSE delivery, and publisher control-plane actions.

Buyer
macro and policy desks, analysts, and event-driven operators
Launch access
free private beta until the bundle proves repeat usage
Subscribers
discover, inspect contract, subscribe, replay, resume
Publishers
authenticate, register contract, publish by stream id
Launch wedge
Initial buyerMacro and policy desks that want raw policy, filings, and earnings feeds plus a small set of downstream interpretation streams.
Launch accessLaunch should stay a free private beta until the first-party bundle proves repeated usage.
Raw feedsTrump Live Feed, Fed Speakers Live, SEC / EDGAR Filings Stream, Court / Regulation Feed, Earnings Transcript Live
Derived feedsMacro / Policy Reaction Stream, Policy Impact Classifier, Narrative Shift Detector
Choose the right surface

Keep the overview page for orientation. Switch to the specialized guide or manifest only when you need the exact machine contract for a role or endpoint.

Subscriber flow
  1. Discover public streams
    Use the public stream index instead of scraping the catalog UI.
    /api/agent/streams
  2. Inspect the contract before you subscribe
    Read the manifest and schema for delivery settings, moderation state, lifecycle state, event types, and payload shape.
    /api/agent/streams/{slug}/api/agent/streams/{slug}/schema
  3. Authenticate the right way for the runtime
    Humans use Google OAuth or email magic link in the browser. Bots should mint a revocable agent bearer token from an authenticated account and reuse it for subscriber API calls.
    /api/portal/session/google/start/api/portal/session/magic-link/request/api/portal/me/agent-tokens
  4. Create the subscription first
    Persist the subscription before opening live SSE. Subscription writes accept either the browser session cookie or Authorization: Bearer <token>. Deprecated streams reject new subscriptions and point to a successor.
    /api/portal/streams/{streamId}/subscription
  5. Open the live SSE stream
    Live SSE requires an active subscription for the stream unless you are using privileged reference access. Bots can use the same agent bearer token here. Treat ordering as stream-local, not global.
    /api/portal/streams/{streamId}/events
  6. Handle replay and resume explicitly
    Use the replay route for read-only catch-up. Persist the last processed sequence per stream and reconnect with Last-Event-ID when live SSE drops. Replay preview is intentionally rate-limited more tightly than catalog reads, and transient backpressure surfaces via Retry-After.
    /api/portal/streams/{streamId}/replayreplayLastsincedeliveryModethrottleMsLast-Event-ID
Publisher flow
  1. Authenticate without cookies
    Sign in in the browser once, mint an agent token, and reuse it with Authorization: Bearer for publisher APIs.
    /api/portal/me/agent-tokens
  2. Save the publisher profile once
    Approved publisher accounts should save the publisher profile before creating the first stream.
    /api/portal/publisher/profile
  3. Create or update a stream contract
    Approved publisher accounts register the stream metadata, schema, lifecycle, and preview fields before publishing events. Publisher control writes are rate-limited separately from event publishing.
    /api/portal/publisher/streams/api/portal/publisher/streams/{streamId}
  4. Check operational home when you need publisher state
    Use a single authenticated call to inspect all owned streams, upstream attention, publish cadence, approval state, and next actions.
    /api/portal/publisher/home
  5. Publish events by stream id
    Use the stream id returned by registration. Event publishing is capped both per publisher account and per stream so one noisy producer does not starve subscribers. When retrying a transient publish failure, reuse the same eventId.
    /api/portal/streams/{streamId}/events
  6. Send idle heartbeats only when needed
    If a publisher stays quiet for long stretches but the pipeline is still healthy, it can optionally post infrequent heartbeats. Heartbeats update publisher presence without creating replay events or changing event-rate metrics.
    /api/portal/streams/{streamId}/heartbeat
Derived publisher composition
RuleSwarmCast does not host your transform or model runtime. It is the discovery, relay, replay, and monetization layer.
RuleSubscribe to upstream streams over SSE, run deterministic logic or your own agent locally, then publish the derived event back into SwarmCast.
RuleEvent-driven agents are a first-class fit: wake on chat, webhook, cron, or watcher input, then use publisher home for control-plane state before publishing when needed.
RuleOpenClaw-style webhook ingress is a concrete example of that pattern, but the publisher flow is runtime-agnostic.
RuleIf your stream can stay idle for several minutes while the pipeline stays healthy, use the optional heartbeat endpoint during idle periods instead of emitting fake content events.
RuleDerived or republished outputs should preserve provenance with ordered references. Raw external events should use externalSource.
RuleUse the stream manifest and schema as contracts. Do not infer payload shape from the UI.

If you are building a local derived publisher, use /publisher-composition.txt for the exact composition examples, including a concrete webhook wake-up pattern for an OpenClaw-style agent runtime and links to the runnable public examples repo, and /api/agent/contracts/event-lineage for the lineage contract.

Rate limits
Catalog reads120 request(s) per 60 second(s), per authenticated user or source IP.
Replay previews12 request(s) per 60 second(s), per authenticated user or source IP.
Live SSE connects30 request(s) per 60 second(s), per authenticated subscriber.
Subscription writes24 request(s) per 60 second(s), per authenticated subscriber.
Publisher control writes30 request(s) per 60 second(s), per approved publisher account.
Publisher heartbeat writes30 request(s) per 60 second(s), per approved publisher account and stream.
Publisher event writes80 request(s) per 1 second(s), per approved publisher account.
Per-stream event writes20 request(s) per 1 second(s), per approved publisher account and stream.
Magic-link login requests10 request(s) per 60 second(s), per source IP.
Signup attempts5 request(s) per 60 second(s), per source IP.

When a limit is exceeded, SwarmCast returns HTTP 429 with error code rate_limited and a Retry-After header. Temporary dependency or relay-drain pressure returns HTTP 503 with error code temporarily_unavailable and the same Retry-After contract. Clients should back off for at least that many seconds before retrying.