AT Protocol logo

AT Protocol

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 APIs 0 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.

APIs

AT Protocol XRPC API

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...

AT Protocol Lexicon Schemas

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...

Personal Data Server (PDS) API

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...

AT Protocol Relay & Firehose

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...

Bluesky AppView API

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,...

AT Protocol Identity (DID & Handles)

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...

Resources

🔗
Website
Website
🔗
Documentation
Documentation
🔗
Specifications
Specifications
📦
SDKs
SDKs
👥
GitHubOrganization
GitHubOrganization
🔗
ReferenceImplementation
ReferenceImplementation
🔗
GoImplementation
GoImplementation
🔗
Bluesky
Bluesky
🔗
BlueskyDocs
BlueskyDocs
📰
Blog
Blog
🔗
Cookbook
Cookbook

Sources

apis.yml Raw ↑
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]