The AT Protocol (atproto) is an open, federated networking protocol for social applications, originally developed by Bluesky Social PBC and the Bluesky team. It defines a decentralized architecture where user identity and data are portable across providers, anchored in DIDs, signed records, and content-addressed storage. The protocol is composed of independently operable services — Personal Data Servers (PDS), Relays (firehose aggregators), and AppViews (read-side indexers) — that communicate using XRPC and exchange records described by Lexicon schemas. Bluesky (bsky.app) is the reference application built on AT Protocol, but the protocol is designed for any social or social-adjacent application that wants user-owned identity, portable data, and an open federation model. Official and community SDKs exist for TypeScript, Go, Python, Rust, Dart, Swift, C#/.NET, Ruby, PHP, and more, and the full lexicon, network topology, and reference implementations are open source.
6 APIs0 Features
AT ProtocolatprotoBlueskyFederationDecentralized SocialSocial NetworkingDIDLexiconXRPCPDSRelayAppViewOpen Protocol
AT Protocol publishes 6 APIs on the APIs.io network. Tagged areas include AT Protocol, atproto, Bluesky, Federation, and Decentralized Social.
AT Protocol’s developer surface includes documentation, engineering blog, and 9 more developer resources.
XRPC is the AT Protocol's HTTP-based remote procedure call layer. All protocol interactions — querying records, writing records, subscribing to streams, resolving identity, mode...
Lexicon is the schema definition language for AT Protocol. Every record type, XRPC method, and event subscription on the network is described by a Lexicon document, which acts a...
The PDS hosts a user's repository of signed records and exposes the com.atproto.* XRPC methods for account creation, authentication, record CRUD, blob upload, and repository syn...
The Relay aggregates the com.atproto.sync.subscribeRepos firehose across PDS hosts and re-broadcasts the combined event stream over WebSocket. AppViews and indexers subscribe to...
The Bluesky AppView indexes the firehose and exposes the app.bsky.* XRPC methods that the Bluesky client (and any compatible client) uses to render timelines, threads, profiles,...
Identity in AT Protocol is anchored in DIDs (did:plc or did:web), with human-readable handles resolved through DNS TXT records or well-known HTTP endpoints. The protocol specifi...
aid: at-protocol
name: AT Protocol
description: |
The AT Protocol (atproto) is an open, federated networking protocol for
social applications, originally developed by Bluesky Social PBC and the
Bluesky team. It defines a decentralized architecture where user identity
and data are portable across providers, anchored in DIDs, signed records,
and content-addressed storage. The protocol is composed of independently
operable services — Personal Data Servers (PDS), Relays (firehose
aggregators), and AppViews (read-side indexers) — that communicate using
XRPC and exchange records described by Lexicon schemas. Bluesky (bsky.app)
is the reference application built on AT Protocol, but the protocol is
designed for any social or social-adjacent application that wants
user-owned identity, portable data, and an open federation model. Official
and community SDKs exist for TypeScript, Go, Python, Rust, Dart, Swift,
C#/.NET, Ruby, PHP, and more, and the full lexicon, network topology, and
reference implementations are open source.
type: Index
position: Provider
access: Public
image: https://kinlane-productions.s3.amazonaws.com/apis-json/apis-json-logo.jpg
tags:
- AT Protocol
- atproto
- Bluesky
- Federation
- Decentralized Social
- Social Networking
- DID
- Lexicon
- XRPC
- PDS
- Relay
- AppView
- Open Protocol
url: https://raw.githubusercontent.com/api-evangelist/at-protocol/refs/heads/main/apis.yml
created: '2026-05-23'
modified: '2026-05-23'
specificationVersion: '0.20'
apis:
- aid: at-protocol:atproto-xrpc
name: AT Protocol XRPC API
description: |
XRPC is the AT Protocol's HTTP-based remote procedure call layer. All
protocol interactions — querying records, writing records, subscribing
to streams, resolving identity, moderating content — are exposed as
XRPC methods defined in Lexicon schemas. PDS, Relay, and AppView
services all speak XRPC, so the same client library can be pointed at
different network roles. The HTTP surface uses /xrpc/{nsid} paths and
JSON request/response bodies (with optional CBOR for record content).
humanURL: https://atproto.com/specs/xrpc
baseURL: https://atproto.com/xrpc
tags:
- XRPC
- RPC
- HTTP
- JSON
- Protocol Surface
properties:
- type: Specification
url: https://atproto.com/specs/xrpc
- type: Documentation
url: https://atproto.com/guides/glossary
- type: GitHubOrganization
url: https://github.com/bluesky-social
- aid: at-protocol:lexicon
name: AT Protocol Lexicon Schemas
description: |
Lexicon is the schema definition language for AT Protocol. Every
record type, XRPC method, and event subscription on the network is
described by a Lexicon document, which acts as both contract and code
generation source for client libraries. Bluesky publishes the
app.bsky.* and com.atproto.* lexicons that power the reference
Bluesky application; third parties define their own NSIDs to ship
independent applications on the same network.
humanURL: https://atproto.com/guides/lexicon
baseURL: https://atproto.com/lexicons
tags:
- Lexicon
- Schema
- NSID
- Record Types
properties:
- type: Documentation
url: https://atproto.com/guides/lexicon
- type: Specification
url: https://atproto.com/specs/lexicon
- type: Repository
url: https://github.com/bluesky-social/atproto/tree/main/lexicons
- aid: at-protocol:pds-api
name: Personal Data Server (PDS) API
description: |
The PDS hosts a user's repository of signed records and exposes the
com.atproto.* XRPC methods for account creation, authentication,
record CRUD, blob upload, and repository sync. A PDS is the home
server for an actor; users can migrate their account (and full
record history) between PDS hosts while keeping the same DID.
humanURL: https://atproto.com/guides/self-hosting
baseURL: https://atproto.com/xrpc/com.atproto
tags:
- PDS
- Personal Data Server
- Repository
- Sync
- Self-Hosting
properties:
- type: Documentation
url: https://atproto.com/guides/self-hosting
- type: Specification
url: https://atproto.com/specs/repository
- type: Reference
url: https://github.com/bluesky-social/atproto/tree/main/packages/pds
- aid: at-protocol:relay-firehose
name: AT Protocol Relay & Firehose
description: |
The Relay aggregates the com.atproto.sync.subscribeRepos firehose
across PDS hosts and re-broadcasts the combined event stream over
WebSocket. AppViews and indexers subscribe to a Relay to get a
near-real-time view of every public record written on the network
without polling individual PDS instances.
humanURL: https://atproto.com/guides/glossary
baseURL: wss://bsky.network
tags:
- Relay
- Firehose
- WebSocket
- Streaming
- Sync
properties:
- type: Specification
url: https://atproto.com/specs/sync
- type: Reference
url: https://github.com/bluesky-social/indigo
- aid: at-protocol:bsky-appview
name: Bluesky AppView API
description: |
The Bluesky AppView indexes the firehose and exposes the app.bsky.*
XRPC methods that the Bluesky client (and any compatible client)
uses to render timelines, threads, profiles, notifications, search,
and graph data. It is the reference AppView for the app.bsky lexicon
family and the primary read API for Bluesky applications.
humanURL: https://docs.bsky.app/
baseURL: https://public.api.bsky.app/xrpc
tags:
- AppView
- Bluesky
- Timeline
- Feed
- Graph
- Notifications
properties:
- type: Documentation
url: https://docs.bsky.app/
- type: APIReference
url: https://docs.bsky.app/docs/category/http-reference
- type: Lexicons
url: https://github.com/bluesky-social/atproto/tree/main/lexicons/app/bsky
- aid: at-protocol:identity-did
name: AT Protocol Identity (DID & Handles)
description: |
Identity in AT Protocol is anchored in DIDs (did:plc or did:web),
with human-readable handles resolved through DNS TXT records or
well-known HTTP endpoints. The protocol specifies how DIDs map to
PDS endpoints, signing keys, and rotation, allowing users to keep
a stable identity while changing handles or migrating providers.
humanURL: https://atproto.com/specs/did
baseURL: https://plc.directory
tags:
- Identity
- DID
- did:plc
- Handles
- DNS
properties:
- type: Specification
url: https://atproto.com/specs/did
- type: Specification
url: https://atproto.com/specs/handle
- type: Service
url: https://plc.directory/
features:
- name: User-Owned Identity
description: DIDs and handles let users keep a stable identity across PDS hosts and applications.
- name: Portable Repositories
description: All of a user's records live in a signed, content-addressed repository that can be migrated between PDS providers.
- name: Lexicon-First Schemas
description: Every API surface is described by Lexicon, enabling consistent code generation across many languages.
- name: Firehose Streaming
description: A public WebSocket firehose exposes the entire public network in near real time.
- name: Multi-Role Federation
description: PDS, Relay, and AppView roles can be operated independently and scaled separately.
- name: Open Source Reference Stack
description: The bluesky-social/atproto and indigo repositories provide reference TypeScript and Go implementations.
useCases:
- name: Building Bluesky Clients
description: Ship custom mobile, web, or desktop clients for the Bluesky network using the app.bsky lexicons.
- name: Custom Feeds and Algorithms
description: Implement feed generators that subscribe to the firehose and serve algorithmic timelines to Bluesky users.
- name: Independent Social Applications
description: Define new lexicons and ship apps that share the federation substrate without coupling to Bluesky's product.
- name: Moderation and Labeling Services
description: Operate labeler services that emit moderation labels consumed by AppViews and clients.
- name: Self-Hosted Personal Data Servers
description: Run a personal or community PDS to host accounts under your own infrastructure and domain.
integrations:
- name: Bluesky (app.bsky)
- name: Ozone (moderation)
- name: Feed Generators
- name: did:plc Directory
- name: Buf Schema Registry (community)
common:
- type: Website
url: https://atproto.com/
- type: Documentation
url: https://atproto.com/guides/overview
- type: Specifications
url: https://atproto.com/specs/atp
- type: SDKs
url: https://atproto.com/sdks
- type: GitHubOrganization
url: https://github.com/bluesky-social
- type: ReferenceImplementation
url: https://github.com/bluesky-social/atproto
- type: GoImplementation
url: https://github.com/bluesky-social/indigo
- type: Bluesky
url: https://bsky.app/
- type: BlueskyDocs
url: https://docs.bsky.app/
- type: Blog
url: https://bsky.social/about/blog
- type: Cookbook
url: https://github.com/bluesky-social/cookbook
maintainers:
- FN: Kin Lane
email: [email protected]