Developers & AI
Resolve any AT Protocol URI, handle, or DID to JSON. Read-only, no auth, works with any PDS.
HTTP API
curl 'https://api.atproto.at/v1/resolve?uri=alice.bsky.social'
curl 'https://api.atproto.at/v1/resolve?uri=at://alice.bsky.social/app.bsky.feed.post/3k...&include=schema,backlinks'
curl 'https://api.atproto.at/v1/resolve?uri=alice.bsky.social&fmt=md'- uri
- Required. An at:// URI, a handle, or a DID.
- include
- schema, backlinks, profile (comma-separated).
- cursor
- Pagination cursor (collections).
- limit
- Page size, 1–100 (collections).
- fmt
- json (default) or md. Accept: text/markdown also works.
Every MCP tool below is also callable over plain HTTP: https://api.atproto.at/v1/tools/<name>?<args> (catalog at /v1/tools). Full schema: openapi.json. Responses are CORS-enabled and carry the resolved identity plus a _links map.
MCP server
https://mcp.atproto.at/mcpAdd it to a client (Claude, Cursor, VS Code):
{
"mcpServers": {
"taproot": { "type": "streamable-http", "url": "https://mcp.atproto.at/mcp" }
}
}Or with Claude Code:
claude mcp add --transport http taproot https://mcp.atproto.at/mcpTools:
- resolve
- any at:// URI, handle, or DID → JSON
- get_profile / get_record / list_records
- specific shapes
- search_accounts
- find an account by handle or name
- get_backlinks
- counts of who likes/reposts/quotes/replies/follows a target
- list_backlink_records
- the actual accounts behind those counts
- count_records
- total size of a collection
- get_account_history
- handle changes, PDS migrations, key rotations
- verify_handle
- is a handle really owned by its DID (anti-spoof)
- get_did_document
- raw identity doc: aliases, services, keys
- get_app_link
- shareable Bluesky / Blacksky / raw-PDS links for a URI
- describe_pds / get_repo_status
- PDS server info; account active/takedown status
- get_latest_commit
- a repo's head commit CID + revision
- list_repos
- the accounts (repos) hosted on a PDS
- get_pds_directory_info / get_relay_directory_info
- cached PDS / relay health cards
- query_labels
- moderation labels a labeler applied to an account/record
- list_labelers
- discover labeler services (do this before query_labels)
- list_repos_by_collection
- which accounts publish a given lexicon (relay-served)
- search_lexicons / resolve_lexicon
- browse published record types, or get one's schema
- get_thread
- reconstruct a post's conversation (ancestors + a bounded reply tree)
- list_blobs / get_blob_info
- an account's media blobs; a blob's PDS URL + content-type/size
To find who liked a post: get_backlinks for the counts, then list_backlink_records with the source it returns.