Bluesky API for developers and AI agents

Bluesky publishing without rebuilding App Password capture, AT Protocol media upload, reply chains, comment actions, and status handling.

No credit card required

import { KavenioClient } from "@kavenio/sdk";

const kavenio = new KavenioClient({
  authToken: process.env.KAVENIO_API_KEY,
});

// Connect once with a Bluesky App Password.
await kavenio.connect.blueskyCredentials({
  profileId: "customer_user_123",
  identifier: "customer.bsky.social",
  appPassword: process.env.BLUESKY_APP_PASSWORD,
});

// Publish to the connected Bluesky account.
await kavenio.posts.create({
  content: "Shipping Bluesky posts through one social API.",
  profileId: "customer_user_123",
  publishNow: true,
  platforms: [
    {
      platform: "bluesky",
      accountId: "acct_bsky_123",
    },
  ],
});

How it works

Connect the account with an App Password, publish through the shared posts API, and use account-scoped endpoints for comments.
  1. kavenio.connect.blueskyCredentials(...)

    Create a connected Bluesky account with a handle or DID plus a Bluesky App Password.

  2. kavenio.posts.create(...)

    Publish now or schedule Bluesky text, image, GIF, video, link-card, and reply-chain thread posts from the selected connected account.

  3. kavenio.webhooks.create(...)

    Trigger your automation when Bluesky publishing succeeds, fails, or needs attention instead of polling for state.

Formats

Publish the Bluesky formats your product needs

Use the same posts API for text, media, video, thread, and link-card publishing, then keep comments close to the connected account.
Text posts
Images and GIFs
Videos
Reply-chain threads
Link cards
Comments
Developer workflow

Build Bluesky support without owning AT Protocol plumbing

Use one connected account record for Bluesky publishing and comments while keeping provider credentials server-side.

App Password account connection

Create connected Bluesky accounts with a handle or DID, optional PDS URL, and a Bluesky App Password.

AT Protocol media and threads

Publish text, images, GIFs, video records, reply-chain threads, mentions, hashtags, and link cards through the posts API.

Comment and reply actions

List replies, create replies, and run like or unlike actions from the connected account.

App Passwords

Connect Bluesky accounts without an OAuth app

Bluesky support uses App Password credential capture today. Store the connected account credential server-side and keep the app password out of your product surfaces.

Use App Password connection

Connect Bluesky accounts with a handle or DID plus an app password, without sending users through OAuth.

Keep Bluesky credentials server-side

Store the credential behind a connected account so your product can publish and manage comments without exposing the app password.

Build the Bluesky workflow once

Stop rebuilding App Password capture, AT Protocol media upload, thread publishing, comment actions, retries, and status events for every product surface.

Reuse the same connect and publishing workflow for the next supported platform.

Bluesky API questions

Practical details for adding Bluesky publishing and account workflows to your product.

How do users connect Bluesky accounts?

Bluesky accounts connect with a handle or DID plus a Bluesky App Password. The credential stays on the connected account and the raw app password is not returned.

Can I publish media and threads?

Yes. Bluesky publishing supports text posts, image and GIF blobs, video records, reply-chain threads, facets for mentions and hashtags, and link cards.

Can I schedule Bluesky posts?

Yes. Use the shared posts API to publish now or schedule Bluesky posts through the selected connected account.

Can I use the same API for comments?

Yes. Bluesky comments stay close to the connected account, so your product can create replies and read reply activity without a separate integration path.