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.

AT Protocol publishes 7 APIs on the APIs.io network, including Relay & Firehose, Actor API, Feed API, and 4 more. Tagged areas include AT Protocol, atproto, Bluesky, Federation, and Decentralized Social.

The AT Protocol catalog on APIs.io includes 1 event-driven AsyncAPI specification and 1 Spectral governance ruleset.

AT Protocol’s developer surface includes authentication, documentation, engineering blog, and 11 more developer resources.

42.0/100 developing ▬ flat Agent 36/100 agent ready Full breakdown ↓
scored 2026-07-28 · rubric v0.6
AccessFreeSelf serve⚡ Free to try
12 APIs
AT ProtocolatprotoBlueskyFederationDecentralized SocialSocial NetworkingDIDLexiconXRPCPDSRelayAppViewOpen Protocol

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-07-28 · rubric v0.6
Composite quality — 42.0/100 · developing
Contract Quality 14.7 / 25
Developer Ergonomics 5.7 / 20
Commercial Clarity 5.8 / 20
Operational Transparency 3.4 / 13
Governance 5.0 / 12
Discoverability 7.4 / 10
Agent readiness — 36/100 · agent ready
Machine-Readable Contract 18 / 18
Agentic Access Contract 10 / 10
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 6 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
A2A Agent Card 0 / 8
Dry-Run / Simulate Mode 0 / 4
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/at-protocol: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 12

Individual APIs this provider publishes, each with its own machine-readable definition.

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

AT Protocol Actor API

Bluesky actor profiles (app.bsky.actor.*)

AT Protocol Feed API

Bluesky feeds, posts, and threads (app.bsky.feed.*)

AT Protocol Graph API

Follow, mute, and block graph (app.bsky.graph.*)

AT Protocol Identity API

DID and handle resolution (com.atproto.identity.*)

AT Protocol Repo API

Repository record CRUD (com.atproto.repo.*)

AT Protocol Server API

Session and account management (com.atproto.server.*)

Scroll for all 12

Open Collections 1

Open, tool-agnostic API collections (OpenAPI-derived and Bruno).

AT Protocol XRPC API

OPEN COLLECTION

Pricing Plans 1

Published pricing tiers and plan structures.

Rate Limits 1

Documented rate limits and quota policies.

At Protocol Rate Limits

2 limits

RATE LIMITS

FinOps 1

Cost, billing, and metering signals for API financial operations.

Event Specifications 1

AsyncAPI definitions for this provider's event-driven and streaming APIs.

AT Protocol Firehose & Event Streams

AsyncAPI definition for the AT Protocol event subscription surface. AT Protocol defines streaming endpoints as Lexicon "subscription" types, served over WebSocket using length-p...

ASYNCAPI

Spectral Rules 1

Spectral governance rulesets for linting and validating these APIs.

AT Protocol API Rules

6 rules · 1 errors 5 warnings

SPECTRAL

Security Posture 2

Authentication, domain security, vulnerability disclosure, and trust-center signals.

At Protocol Authentication

http · 1 scheme

SECURITY

At Protocol Domain Security

TLSv1.3 · DMARC

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

At Protocol Agentic Access

20 operations · 8 acting · 3 human-in-the-loop

20 operations · 8 acting

AGENTIC

Resources

Documentation 4

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Build 2

SDKs, sample code, and the tooling you integrate with

Access & Security 2

Authentication, authorization, and security posture

Learn 1

Tutorials, courses, talks, and written guidance

Company 3

The organization behind the API

Other 1

Properties that don't map to a standard resource type

Source (apis.yml)

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
accessModel:
  pricing: free
  onboarding: self-serve
  trial: false
  try_now: true
  public: false
  label: Free · Self-serve signup
  confidence: high
  source:
  - plans
  - authentication
  generated: '2026-07-22'
  method: derived
position: Provider
access: Public
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/at-protocol.png
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-29'
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
  - type: AsyncAPI
    url: https://raw.githubusercontent.com/api-evangelist/at-protocol/refs/heads/main/asyncapi/at-protocol-asyncapi.yml
- 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: Services
    url: https://plc.directory/
- aid: at-protocol:at-protocol-actor-api
  name: AT Protocol Actor API
  description: Bluesky actor profiles (app.bsky.actor.*)
  humanURL: https://atproto.com/specs/xrpc
  baseURL: https://atproto.com/xrpc
  tags:
  - Actor
  properties:
  - type: OpenAPI
    url: openapi/at-protocol-actor-api-openapi.yml
- aid: at-protocol:at-protocol-feed-api
  name: AT Protocol Feed API
  description: Bluesky feeds, posts, and threads (app.bsky.feed.*)
  humanURL: https://atproto.com/specs/xrpc
  baseURL: https://atproto.com/xrpc
  tags:
  - Feed
  properties:
  - type: OpenAPI
    url: openapi/at-protocol-feed-api-openapi.yml
- aid: at-protocol:at-protocol-graph-api
  name: AT Protocol Graph API
  description: Follow, mute, and block graph (app.bsky.graph.*)
  humanURL: https://atproto.com/specs/xrpc
  baseURL: https://atproto.com/xrpc
  tags:
  - Graph
  properties:
  - type: OpenAPI
    url: openapi/at-protocol-graph-api-openapi.yml
- aid: at-protocol:at-protocol-identity-api
  name: AT Protocol Identity API
  description: DID and handle resolution (com.atproto.identity.*)
  humanURL: https://atproto.com/specs/xrpc
  baseURL: https://atproto.com/xrpc
  tags:
  - Identity
  properties:
  - type: OpenAPI
    url: openapi/at-protocol-identity-api-openapi.yml
- aid: at-protocol:at-protocol-repo-api
  name: AT Protocol Repo API
  description: Repository record CRUD (com.atproto.repo.*)
  humanURL: https://atproto.com/specs/xrpc
  baseURL: https://atproto.com/xrpc
  tags:
  - Repo
  properties:
  - type: OpenAPI
    url: openapi/at-protocol-repo-api-openapi.yml
- aid: at-protocol:at-protocol-server-api
  name: AT Protocol Server API
  description: Session and account management (com.atproto.server.*)
  humanURL: https://atproto.com/specs/xrpc
  baseURL: https://atproto.com/xrpc
  tags:
  - Server
  properties:
  - type: OpenAPI
    url: openapi/at-protocol-server-api-openapi.yml
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: AgenticAccess
  url: agentic-access/at-protocol-agentic-access.yml
- type: DomainSecurity
  url: security/at-protocol-domain-security.yml
- type: Authentication
  url: authentication/at-protocol-authentication.yml
- type: Website
  url: https://atproto.com/
- type: Documentation
  url: https://atproto.com/guides/overview
- type: Specification
  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: kin@apievangelist.com