Product
Jentic OSThe workplace. An in-house AI platform for every employeeJentic OneSafe access. Agents reach your systems without holding keysJentic AIRThe foundation. Gets your existing platforms ready for AI
Pricing
Developers

GET STARTED

API DirectoryBrowse 10,000+ APIs Ready For AI Agent IntegrationDocumentationGuides and API reference

TOOLS

API ScoringCheck your AI Readiness using our scorecardArazzo UIVisualize Arazzo Workflows As Interactive DocumentationArazzo EditorBuild And Edit Multi-Step API Workflows Visually

COMMUNITY

GitHubOpen source projects and examplesOpen StandardsBuilt on open specs. Never locked in.
Resources
Company
About UsOur mission and teamCareersJoin our teamContactGet in touch
Try it now
Jentic OSJentic OneJentic AIR
Pricing
API DirectoryDocumentationAPI ScoringArazzo UIArazzo EditorGitHubOpen Standards
Resources
About UsCareersContact
Try it now
JenticJentic
Products
  • Jentic OS
  • Jentic One
  • Jentic AIR
For Developers
  • API Directory
  • Documentation
  • GitHub
Company
  • About Jentic
  • Careers
  • Contact Us
  • Trust Centre
ISO/IEC 27001:2022 certification badge issued by Prescient SecurityISO/IEC 27001:2022 certification badge issued by Prescient Security

Information Security Management System

Certified to ISO/IEC 27001:2022 by Prescient Security

Terms & Conditions•Privacy Policy•
© 2026 Jentic Technology Ltd. All rights reserved.
Switch to light modeSwitch to dark mode
APIs / Social Media / Bluesky AT Protocol API
Bluesky AT Protocol API logo

Bsky App Bluesky AT Protocol API

Official vendor OpenAPI document · agent-readySocial MediaSocial Publishingbearer11 EndpointsREST

For Agents

Authenticate against bsky.social, post records, read timelines and threads, search actors, and upload blobs on the AT Protocol Bluesky network.

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.

Jentic One on GithubView OpenAPI Document

Install Jentic One Beta

Connect the Bluesky AT Protocol API to your agent

Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Bluesky AT Protocol API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.

Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.

1

Step 1: Jentic One Host machine

# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fbsky.app%2Fbsky" | sh
2

Step 2: Agent machine

# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fbsky.app%2Fbsky" | sh
jentic register       # connects your agent to your Jentic One instance

Jentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.

Capabilities

What an agent can do with Bluesky AT Protocol 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

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

Use Cases

Patterns agents use Bluesky AT Protocol 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

Key Endpoints

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

POST

/com.atproto.server.createSession

Authenticate a handle and return access and refresh tokens

POST

/com.atproto.repo.createRecord

Create a post, like, repost, or follow record

GET

/app.bsky.feed.getTimeline

Get the authenticated user's home timeline

GET

/app.bsky.feed.getPostThread

Fetch a full post thread including replies

GET

/app.bsky.actor.getProfile

Look up a profile by handle or DID

POST

/com.atproto.repo.uploadBlob

Upload a binary blob for use in a post

GET

/app.bsky.notification.listNotifications

List notifications for the signed-in account

POST

/com.atproto.server.createSession

Authenticate a handle and return access and refresh tokens

POST

/com.atproto.repo.createRecord

Create a post, like, repost, or follow record

GET

/app.bsky.feed.getTimeline

Get the authenticated user's home timeline

GET

/app.bsky.feed.getPostThread

Fetch a full post thread including replies

GET

/app.bsky.actor.getProfile

Look up a profile by handle or DID

POST

/com.atproto.repo.uploadBlob

Upload a binary blob for use in a post

GET

/app.bsky.notification.listNotifications

List notifications for the signed-in account

Why Jentic?

What agents get from Jentic-routed access to this vendor.

Setup

Setup

Wiring the Bluesky AT Protocol API by hand means exchanging your handle and app password for a session token at createSession, refreshing that bearer token, and learning the XRPC NSID method names yourself. Through Jentic you install once, import the Bluesky AT Protocol API from the API Directory, store the handle and app password once, and your agent calls it.

Permission scoping

Permission scoping

Bluesky's XRPC calls address records by NSID method and request body, not by a resource id in the URL path, so scoping is operations-only: limit the agent to the operations it needs, such as reading the timeline and creating a post record. You choose which operations it may call, so uploading blobs is not included unless you add it.

Credential management

Credential isolation

Your Bluesky handle and app password are stored once, encrypted, by your own Jentic One instance, which exchanges them for a session token server-side and injects only the bearer token at execution time. The password never enters the agent's prompt, logs, or context.

Intent-based discovery

Intent-based discovery

Agents search Jentic by intent such as 'post to Bluesky', and Jentic returns the matching XRPC operation with its Lexicon-derived schema so the agent calls createRecord without browsing the reference docs.

Related APIs

Alternatives and complements available in the Jentic catalogue.

Complementary

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

Complementary

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

Alternative

Buddyyen API

→

Alternative social media touchpoint for posting and audience interaction

Choose when the audience is on a different network than Bluesky

FAQs

Specific to using Bluesky AT Protocol 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.

Can I limit what my agent is allowed to do with the Bluesky AT Protocol API?

Yes. Because Bluesky's XRPC calls address records by NSID method and request body rather than by a resource id in the URL, scoping is operations-only, and your self-hosted Jentic One instance lets you decide which operations the agent may call. You control your own rules, so you can allow it to read the timeline with getTimeline and create a post with createRecord while withholding uploadBlob or deleteRecord until you add them. The handle and app password stay under your control and are exchanged for a session token server-side, so the agent only ever calls the operations you have granted.

GET STARTED

Start building with Bluesky AT Protocol API

Explore with Jentic One
View OpenAPI Document