Bluesky Protocol Services

Aug 14, 2026 07:14 AM - 1 hour ago 2

Today we’re launching Bluesky Protocol Services: a caller brand, and a caller website, for the nationalist infrastructure Bluesky operates connected the AT Protocol network.

Bluesky has ever tally much than the Bluesky app. We run Jetstream instances, relays, and the Bluesky API endpoints built connected atproto. But if you were a developer trying to build connected that infrastructure, our docs didn’t ever make it easy to show what we tally arsenic a work aliases wherever to start. We’re fixing that today. Bluesky Protocol Services organizes each the archiving developers request wrong the ecosystem, clarifies the work contracts astir Bluesky-provided infrastructure, replaces the aged docs.bsky.app tract and gives america a cleanable measurement to vessel early releases for illustration the ones successful this post!

The header merchandise shipping alongside the caller tract is Jetstream v2. Jetstream is the champion measurement for astir developers to usage the web astatine scale: you picture the portion you want, and it arrives arsenic plain JSON complete a WebSocket. What it couldn’t springiness you was history. If you needed the records that already existed connected the network, you had to backfill repos yourself past trim complete to the unrecorded stream.

Jetstream v2 adds that capacity to the server. It keeps a compressed archive of the full web and adds a caller measurement to devour it, alongside the unrecorded tail:

Network Replay lets you drawback up from immoderate constituent successful the past and trim complete to unrecorded pinch nary gap. You POST your filters to planSnapshot, download the sealed segments it returns complete plain HTTP, past link the unrecorded WebSocket erstwhile astatine the tip. Replay is stateless connected the server, pinch nary per-consumer cursor, nary subscription to register, and thing to shape connected the client. Jetstream is your buffer. You tin besides just snapshot the web — a point-in-time transcript of the archive complete HTTP only (listSegments + getSegment), pinch nary unrecorded tail. Same archive, aforesaid filters, nary WebSocket.

This unlocks overmuch much blase server-side slicing without ever backfilling locally: you tin rotation up an App, tally an study complete a period of posts, aliases retrieve from downtime, each done the aforesaid JSON style arsenic the unrecorded tail.

Serving these archives is bandwidth-intensive. To guarantee the work remains reliable and inexpensive to run, we’re now requiring an API token conscionable for these requests. The unrecorded tail remains unfastened and unauthenticated, it’s only erstwhile you petition an archive that we require a token. We person nary plans to present an auth request for the unrecorded stream.

The v2 instances are unrecorded now astatine wss://jetstream.us-west.bsky.network and wss://jetstream.us-east.bsky.network. The existing v1 instances will support moving unchanged for a while, and the unrecorded tail behaves identically connected both, truthful there’s nary unreserved to move. Read the afloat travel successful the Network Replay docs.

And! As always, this infrastructure is unfastened root and self-hostable. See Running your ain Jetstream for details.

A Jetstream SDK

Jetstream is plain JSON, truthful you ne'er need an SDK. But there’s immoderate communal glue: reconnecting, deduping, cursor management, decoding events into typed records. Hence, the caller Jetstream SDKs: TypeScript and Go clients wherever you conception a Jetstream object, walk a filter, and for await complete decoded, typed events:

The TypeScript SDK is disposable from npm, including npmx.

The Go SDK is disposable arsenic portion of the Jetstream project.

The Jetstream SDK docs spell into much detail.

Back successful May we promoted the lex SDK to unchangeable preview and promised that the standalone Bluesky docs would follow. That’s now done: the Bluesky TypeScript SDK is rebuilt connected apical of @atproto/lex, which intends we’re nary longer maintaining bequest codification paths for Bluesky-specific helpers. This is the lexicon toolchain, afloat typed extremity to end, from the protocol furniture up done app.bsky records.

Every TypeScript illustration connected this caller tract is written against it, marking a immense move distant from bequest method debt—this is bully codification hygiene for us, and should destruct LLM recommendations for deprecated SDKs. If you’re still utilizing @atproto/api code, it continues to activity arsenic before, and the Bluesky API guides service arsenic a migration reference.

Updates to endpoints.bsky.app

Finally, the HTTP reference has been updated. Spinning those docs out of https://docs.bsky.app was really measurement 1 of this overhaul; we’re now landing the remainder.

The caller network.bsky.jetstream.* methods that powerfulness Replay — planBackfill, listSegments, getSegment, and getBlock — are now browsable pinch afloat petition and consequence schemas, and the reference now documents Jetstream’s WebSocket endpoints too, truthful the full Jetstream v2 aboveground lives successful 1 place.

Everything supra is unrecorded today: the new site, the v2 Jetstream instances, the SDK preview, and the updated HTTP reference. If you’re caller to the network, commencement pinch How It Works, a ocular walkthrough of really records, lexicons, and the firehose fresh together. If you’re building against the Bluesky app’s information model, the Bluesky API guides are each still there, freshly rewritten (more connected that below)

If you build thing connected Replay successful the adjacent fewer weeks, we’d emotion to perceive astir it; the fastest measurement to style wherever the SDK’s orchestration goes is to show america what you’re folding the watercourse into.

More