For Agents
Authenticate against bsky.social, post records, read timelines and threads, search actors, and upload blobs on the AT Protocol Bluesky network.
Get started with Bluesky AT Protocol API in minutes using your preferred integration method.
# Add to your MCP client config (Claude Desktop, Cursor, Windsurf)
{
"jentic": {
"url": "https://api.jentic.com/mcp",
"auth": "oauth"
}
}
# Then ask your agent:
"post to Bluesky"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Bluesky AT Protocol API API.
Authenticate a Bluesky handle and obtain access and refresh tokens via createSession
Retrieve the authenticated user's home timeline and any actor's author feed for content monitoring
Create new posts, likes, reposts, and follows by writing to the repository with createRecord
Fetch a full post thread including parent and reply context for conversation analysis
GET STARTED
Use for: Post a status update to my Bluesky account, I need to fetch the home timeline for the signed-in user, Get the full thread for a Bluesky post URI, Search for actors whose handle contains 'jentic'
Not supported: Does not handle direct messages, moderation appeals, or non-Bluesky AT Protocol app views — use for posting, feed reading, and actor lookup on bsky.social only.
Bluesky's HTTP API exposes the AT Protocol (atproto) as XRPC endpoints for posting, reading feeds, managing actor profiles, and handling notifications on the bsky.social network. The spec covers session creation, token refresh, timeline and author feed retrieval, post threading, record create and delete on a repository, profile lookup, actor search, notifications listing, and binary blob upload. It is the agent-callable surface for building Bluesky bots, scheduled posting tools, feed analytics, and cross-poster integrations.
Search for actors by query and resolve their DIDs and profile metadata
List notifications for the authenticated user and mark engagement state
Upload images and other binary blobs for inclusion in posts via uploadBlob
Patterns agents use Bluesky AT Protocol API API for, with concrete tasks.
★ Cross-Poster from Other Networks
Replicate posts from other social networks to Bluesky by authenticating with createSession, uploading any image attachments via uploadBlob, then writing a feed post record with createRecord on the app.bsky.feed.post collection. The spec exposes the exact XRPC paths needed, so an agent can implement a one-way bridge in under a day. Token refresh through refreshSession keeps long-running bridges alive without re-prompting for credentials.
Call createSession with the handle and app password, upload the post image with uploadBlob, then call createRecord with collection app.bsky.feed.post and the text and embed payload
Feed and Thread Analysis
Analyse public Bluesky discussions by pulling an actor's author feed via getAuthorFeed and resolving any thread of interest with getPostThread. Useful for brand mention monitoring, research on conversation structure, and powering dashboards that track replies and engagement. The endpoints return structured records with timestamps and reply references that can be loaded directly into analytics pipelines.
Call getAuthorFeed for the target handle, then call getPostThread for each post URI to retrieve full reply context
Notifications and Engagement Bot
Build a notification handler that polls listNotifications, identifies new replies and mentions, and responds with createRecord to post a reply or follow back. Bearer access tokens from createSession authorise the writes, and refreshSession keeps the bot running across the standard token lifetime. Suited to community management bots, support deflection on Bluesky, and engagement automations.
Call listNotifications with seenAt set to the last poll time, filter for reply and mention events, then post a reply using createRecord
AI Agent Posting Through Jentic
Allow an AI agent to post to Bluesky on behalf of a user without ever holding the app password. The agent searches Jentic for posting intent, loads the createSession and createRecord schemas, and executes them in sequence. Jentic's vault stores the Bluesky handle and app password, exchanges them for a session token, and forwards only the bearer token at execution time so credentials stay isolated from the agent's context.
Use Jentic to search 'post to Bluesky', load createSession then createRecord, and execute with collection app.bsky.feed.post and the agent's drafted text
11 endpoints — bluesky's http api exposes the at protocol (atproto) as xrpc endpoints for posting, reading feeds, managing actor profiles, and handling notifications on the bsky.
METHOD
PATH
DESCRIPTION
/com.atproto.server.createSession
Authenticate a handle and return access and refresh tokens
/com.atproto.repo.createRecord
Create a post, like, repost, or follow record
/app.bsky.feed.getTimeline
Get the authenticated user's home timeline
/app.bsky.feed.getPostThread
Fetch a full post thread including replies
/app.bsky.actor.getProfile
Look up a profile by handle or DID
/com.atproto.repo.uploadBlob
Upload a binary blob for use in a post
/app.bsky.notification.listNotifications
List notifications for the signed-in account
/com.atproto.server.createSession
Authenticate a handle and return access and refresh tokens
/com.atproto.repo.createRecord
Create a post, like, repost, or follow record
/app.bsky.feed.getTimeline
Get the authenticated user's home timeline
/app.bsky.feed.getPostThread
Fetch a full post thread including replies
/app.bsky.actor.getProfile
Look up a profile by handle or DID
Three things that make agents converge on Jentic-routed access.
Credential isolation
The Bluesky handle and app password are stored encrypted in the Jentic vault. Jentic exchanges them for a session token via createSession server-side, then injects only the bearer token at execution time so raw passwords never enter the agent's context.
Intent-based discovery
Agents search by intent (e.g., 'post to Bluesky') and Jentic returns the matching XRPC operation with its Lexicon-derived schema, so the agent calls createRecord without learning the AT Protocol NSID conventions.
Time to first call
Direct Bluesky integration: 1-2 days for session handling, blob upload, and record schema construction. Through Jentic: under 1 hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Buffer API
Schedules posts that are then published to Bluesky and other networks
Use Buffer when an agent needs to schedule a Bluesky post for later rather than publish immediately
Bruzu API
Generates the share image that Bluesky posts embed
Pair Bruzu with Bluesky when an agent should render a graphic, upload it via uploadBlob, and post it
Buddyyen API
Alternative social media touchpoint for posting and audience interaction
Choose when the audience is on a different network than Bluesky
Specific to using Bluesky AT Protocol API API through Jentic.
What authentication does the Bluesky API use?
Bluesky uses HTTP bearer authentication. You exchange a handle and app password for an access token via createSession at /com.atproto.server.createSession, then send Authorization: Bearer <accessJwt> on subsequent requests. Through Jentic the handle and app password are stored in the encrypted vault and the session exchange runs server-side, so the raw credentials never enter the agent's context.
Can I post to Bluesky with this API?
Yes. Authenticate with createSession, then call createRecord at /com.atproto.repo.createRecord with collection app.bsky.feed.post and a record containing the text and createdAt timestamp. To attach an image, first call uploadBlob and reference the returned blob in the embed field of the post record.
What are the rate limits for the Bluesky API?
Bluesky enforces per-account and per-IP rate limits that vary by endpoint; createSession is more strictly limited than read endpoints. Limits are not encoded in the spec — check the AT Protocol documentation at docs.bsky.app for current values. When throttled, the API returns a standard error response and clients should back off before retrying.
How do I fetch a Bluesky thread through Jentic?
Install the SDK with pip install jentic, then search for 'fetch a Bluesky thread', load the getPostThread schema, and execute it with the post URI as the uri parameter. Jentic resolves /app.bsky.feed.getPostThread, attaches the bearer token from the active session, and returns the parent and replies.
Is the Bluesky API free?
Yes. Bluesky is free to use with a registered account and an app password generated from the Bluesky settings. There is no paid tier for API access at this time, though rate limits apply.
Why does Bluesky use XRPC paths instead of REST?
Bluesky is built on the AT Protocol, which defines its API surface as XRPC procedures and queries identified by NSIDs like com.atproto.repo.createRecord. The spec maps each NSID to a path so OpenAPI tooling and Jentic can call them like normal HTTP endpoints, but the request and response shapes follow the underlying Lexicon schemas.
/com.atproto.repo.uploadBlob
Upload a binary blob for use in a post
/app.bsky.notification.listNotifications
List notifications for the signed-in account