AT Protocol (Authenticated Transfer Protocol) is an open, federated social networking protocol developed by Bluesky Social PBC that powers the Bluesky social network and its 40M+ users. The protocol defines a public HTTP API surface via XRPC (cross-resolver protocol calls) organized under Lexicon schemas that cover identity (DIDs and handles), repository management, feed generation, labeling, and moderation. Developers can tap into a public firehose WebSocket event stream without API keys, and write operations use OAuth 2.0 or JWT bearer tokens for authentication. All data is stored in user-owned signed repositories and is 100% publicly accessible, making the protocol suitable for building social apps, feed generators, labelers, and bots.
AT Protocol publishes 15 API contracts indexed on the APIs.io network, including Actor API, Feed API, Graph API, and 12 more. Tagged areas include Social Network, Decentralized, Federated, Open Source, and Bluesky.
The AT Protocol catalog on APIs.io includes 1 JSON-LD context and 1 Spectral governance ruleset.
AT Protocol’s developer surface includes authentication, documentation, engineering blog, and 12 more developer resources.
Regulatory Posture applies to this provider. Its tags matched the
Horizontal (data, software, accessibility, platform) regime, so
Regulatory Posture carries 15 points of the composite.
If this regime is wrong for your business, say so on your
provider repo — the
applicability map is public and we will correct it.
Create-or-Update Ergonomics applies to this provider. This API accepts writes, so it
carries 10 points of the composite. It is scored from the published contracts
themselves: whether a caller can create-or-update in one call, whether the write accepts a key the caller already
holds, and whether the response says which branch ran. Without that, every write needs a search-and-branch in
front of it, and the first time that check is skipped a duplicate record is created.
Scored against the observed mean rather than raw — a provider at the catalog average is unchanged by this facet,
not penalised by it.
The six quality facets above are damped to 75 points between them,
because the conditional facet above carries the other
25. That is why each facet's contribution is shown against a damped
maximum: raising a quality facet moves the composite by 75% of its nominal
weight, not 100%. The full arithmetic is at apis.io/rating/.
Show this score on your site.
It updates itself when the score changes. Paste this where you link to your API docs:
<a href="https://apis.io/providers/atproto/"><img src="https://apis.io/badge/atproto/card.svg" alt="AT Protocol on APIs.io — Kin Score by API Evangelist"></a>
Other styles, a README pill and a shields.io endpoint are on the badge page.
Raise your score.
Agent readiness — checks not met, largest first (exact, from this profile):
MCP Server+12 pts — deployment.mode + probe verdict on the mcp/ manifest, not the pointer; an unprobed slug falls back to authorship
Idempotency+9 pts — OpenAPI mutating operations declare an idempotency key — a header, a request-body property, or a named de-duplication token whose own description says so (verified); else common[].type matches /idempoten/i (documented)
Stable Error Semantics+8 pts — OpenAPI $refs a shared error schema across 4xx/5xx responses (verified), else common[].type includes ErrorCatalog / ErrorCodes / DeclineCodes
A2A Agent Card+8 pts — a2a/-a2a.yml manifest, graded on conformance.grade against A2A 1.0.0
Request/Response Examples+7 pts — share of operations carrying request/response examples; else an Examples / Code Samples link
Standards this provider implements or carries. De facto ones are profiled and measured by the API Commons; formal ones come from the standards directory and are linked by the provider's own tags. The evidence column says how each claim was established — not that it was made.
Public WebSocket event stream providing real-time access to all public activity on the AT Protocol network, including posts, likes, follows, and other repository events. No 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...
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...
Not yet checked against AT Protocol's own pricing page. Compiled by API Evangelist on 2026-06-12 from atproto.com/; confirm before you rely on a figure. A free plan or tier is listed.
aid: atproto
name: AT Protocol
description: AT Protocol (Authenticated Transfer Protocol) is an open, federated social networking protocol developed by Bluesky
Social PBC that powers the Bluesky social network and its 40M+ users. The protocol defines a public HTTP API surface via
XRPC (cross-resolver protocol calls) organized under Lexicon schemas that cover identity (DIDs and handles), repository
management, feed generation, labeling, and moderation. Developers can tap into a public firehose WebSocket event stream
without API keys, and write operations use OAuth 2.0 or JWT bearer tokens for authentication. All data is stored in user-owned
signed repositories and is 100% publicly accessible, making the protocol suitable for building social apps, feed generators,
labelers, and bots.
type: Index
deliveryModel:
model: unknown
license_evidence:
repo: bluesky-social/atproto
spdx: NOASSERTION
stars: 9658
open_source: unknown
commercial: true
callable_host: true
label: Delivery model not determined — needs a product licence on record
confidence: low
source:
- openapi
- pricing
- repository-unlicensed
generated: '2026-09-25'
method: derived
accessModel:
pricing: free
onboarding: open
trial: false
try_now: true
public: true
gated: none
gated_source:
- onboarding
label: Free · Open access
confidence: medium
source:
- plans
- authentication
- security
generated: '2026-11-06'
method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/atproto.png
tags:
- Social Network
- Decentralized
- Federated
- Open Source
- Bluesky
- Fediverse
- Identity
- XRPC
- Lexicon
tags_raw:
- Social Networking
- Decentralized
- Federated
- Open Source
- Bluesky
- Fediverse
- Identity
- XRPC
- Lexicon
- Open-Source
url: https://raw.githubusercontent.com/api-evangelist/atproto/refs/heads/main/apis.yml
created: '2026-06-12'
modified: '2026-06-12'
specificationVersion: '0.23'
apis:
- aid: atproto:firehose
name: AT Protocol Firehose (Event Stream)
description: Public WebSocket event stream providing real-time access to all public activity on the AT Protocol network,
including posts, likes, follows, and other repository events. No API key is required to subscribe. Useful for building
feed generators, search engines, bots, and analytics tools.
humanURL: https://atproto.com/specs/event-stream
baseURL: wss://jetstream1.us-east.bsky.network/subscribe
tags:
- Firehose
- WebSocket
- Real-Time
- Event
- Streaming
tags_raw:
- Firehose
- WebSocket
- Real-Time
- Events
- Streaming
properties:
- type: Documentation
url: https://atproto.com/specs/event-stream
- aid: atproto:atproto-actor-api
name: AT Protocol Actor API
description: Actor (user) profile, search, and preference operations
humanURL: https://atproto.com/specs/xrpc
baseURL: https://bsky.social/xrpc
tags:
- Actor
tags_raw:
- actor
properties:
- type: OpenAPI
url: openapi/atproto-actor-api-openapi.yml
- type: Documentation
url: https://atproto.com/specs/xrpc
- type: Documentation
url: https://atproto.com/guides/overview
- type: Documentation
url: https://docs.bsky.app/docs/advanced-guides/atproto
- type: Documentation
url: https://endpoints.bsky.app/
- aid: atproto:atproto-feed-api
name: AT Protocol Feed API
description: Feed, post, timeline, and content operations
humanURL: https://atproto.com/specs/xrpc
baseURL: https://bsky.social/xrpc
tags:
- Feed
tags_raw:
- feed
properties:
- type: OpenAPI
url: openapi/atproto-feed-api-openapi.yml
- type: Documentation
url: https://atproto.com/specs/xrpc
- type: Documentation
url: https://atproto.com/guides/overview
- type: Documentation
url: https://docs.bsky.app/docs/advanced-guides/atproto
- type: Documentation
url: https://endpoints.bsky.app/
- aid: atproto:atproto-graph-api
name: AT Protocol Graph API
description: Graph operations — follows, blocks, lists, and mutes
humanURL: https://atproto.com/specs/xrpc
baseURL: https://bsky.social/xrpc
tags:
- Graph
tags_raw:
- graph
properties:
- type: OpenAPI
url: openapi/atproto-graph-api-openapi.yml
- type: Documentation
url: https://atproto.com/specs/xrpc
- type: Documentation
url: https://atproto.com/guides/overview
- type: Documentation
url: https://docs.bsky.app/docs/advanced-guides/atproto
- type: Documentation
url: https://endpoints.bsky.app/
- aid: atproto:atproto-identity-api
name: AT Protocol Identity API
description: DID and handle resolution, identity management
humanURL: https://atproto.com/specs/xrpc
baseURL: https://bsky.social/xrpc
tags:
- Identity
tags_raw:
- identity
properties:
- type: OpenAPI
url: openapi/atproto-identity-api-openapi.yml
- type: Documentation
url: https://atproto.com/specs/xrpc
- type: Documentation
url: https://atproto.com/guides/overview
- type: Documentation
url: https://docs.bsky.app/docs/advanced-guides/atproto
- type: Documentation
url: https://endpoints.bsky.app/
- aid: atproto:atproto-notification-api
name: AT Protocol Notification API
description: Notification management
humanURL: https://atproto.com/specs/xrpc
baseURL: https://bsky.social/xrpc
tags:
- Notification
tags_raw:
- notification
properties:
- type: OpenAPI
url: openapi/atproto-notification-api-openapi.yml
- type: Documentation
url: https://atproto.com/specs/xrpc
- type: Documentation
url: https://atproto.com/guides/overview
- type: Documentation
url: https://docs.bsky.app/docs/advanced-guides/atproto
- type: Documentation
url: https://endpoints.bsky.app/
- aid: atproto:atproto-repo-api
name: AT Protocol Repo API
description: Repository management, record CRUD operations
humanURL: https://atproto.com/specs/xrpc
baseURL: https://bsky.social/xrpc
tags:
- Repo
tags_raw:
- repo
properties:
- type: OpenAPI
url: openapi/atproto-repo-api-openapi.yml
- type: Documentation
url: https://atproto.com/specs/xrpc
- type: Documentation
url: https://atproto.com/guides/overview
- type: Documentation
url: https://docs.bsky.app/docs/advanced-guides/atproto
- type: Documentation
url: https://endpoints.bsky.app/
- aid: atproto:atproto-server-api
name: AT Protocol Server API
description: Server management, session creation, account administration
humanURL: https://atproto.com/specs/xrpc
baseURL: https://bsky.social/xrpc
tags:
- Servers
tags_raw:
- server
properties:
- type: OpenAPI
url: openapi/atproto-server-api-openapi.yml
- type: Documentation
url: https://atproto.com/specs/xrpc
- type: Documentation
url: https://atproto.com/guides/overview
- type: Documentation
url: https://docs.bsky.app/docs/advanced-guides/atproto
- type: Documentation
url: https://endpoints.bsky.app/
- aid: atproto:atproto-sync-api
name: AT Protocol Sync API
description: Data synchronization, firehose, blob access
humanURL: https://atproto.com/specs/xrpc
baseURL: https://bsky.social/xrpc
tags:
- Sync
tags_raw:
- sync
properties:
- type: OpenAPI
url: openapi/atproto-sync-api-openapi.yml
- type: Documentation
url: https://atproto.com/specs/xrpc
- type: Documentation
url: https://atproto.com/guides/overview
- type: Documentation
url: https://docs.bsky.app/docs/advanced-guides/atproto
- type: Documentation
url: https://endpoints.bsky.app/
- aid: atproto: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: atproto: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: atproto: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: atproto: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: atproto: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
- Timelines
- Feed
- Graph
- Notification
tags_raw:
- 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: atproto: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/
common:
- type: AgenticAccess
url: agentic-access/atproto-agentic-access.yml
- type: DomainSecurity
url: security/atproto-domain-security.yml
- type: Authentication
url: authentication/atproto-authentication.yml
- type: Website
url: https://atproto.com/
- type: Documentation
url: https://atproto.com/guides/overview
- type: Blog
url: https://atproto.com/blog
- type: GitHubOrganization
url: https://github.com/bluesky-social
- type: LinkedIn
url: https://www.linkedin.com/company/bluesky-pbc
- type: X
url: https://twitter.com/at_protocol
- type: StatusPage
url: https://status.bsky.app/
- type: SDKs
url: https://github.com/bluesky-social/atproto/tree/main/packages
- type: SDKs
url: https://github.com/bluesky-social/indigo
- type: Plans
url: plans/atproto-plans-pricing.yml
- type: RateLimits
url: rate-limits/atproto-rate-limits.yml
- type: FinOps
url: finops/atproto-finops.yml
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com
AT Protocol API — frequently asked questions
Does AT Protocol have an API?
Yes. APIs.io lists 15 APIs from AT Protocol, including AT Protocol Firehose (Event Stream), AT Protocol Actor API and AT Protocol Feed API, and 12 more.
Is there an OpenAPI specification for the AT Protocol API?
Yes. APIs.io indexes 8 OpenAPI specifications for AT Protocol, each linked for download from this page.
How do I authenticate with the AT Protocol API?
AT Protocol uses bearer-token authentication (http · 1 scheme). The details are profiled on APIs.io as Atproto Authentication.
How much does the AT Protocol API cost?
APIs.io lists 3 pricing plans for AT Protocol, with each plan's price, limits and inclusions under Pricing on this page.
Is the AT Protocol API ready for AI agents?
AT Protocol has a Kin Score of 36.7 out of 100 (thin) and an Agent Readiness score of 26.0 (agent-aware), scored by API Evangelist on 2026-11-06.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.