How to hit the Bluesky API

Bluesky's public AppView at https://public.api.bsky.app/xrpc serves profiles, posts, and feeds without logging in. Methods are named like app.bsky.actor.getProfile.

Authentication

None for these public reads. Posting needs a session token from com.atproto.server.createSession (use an app password).

Full reference: https://docs.bsky.app/docs/category/http-reference

Get a profile

actor is a handle or DID.

curl "https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=bsky.app"
Run in PostTaco
Example response (trimmed)
{
  "did": "did:plc:z72i7hdynmk6r22z27h6tvur",
  "handle": "bsky.app",
  "displayName": "Bluesky",
  "avatar": "https://cdn.bsky.app/img/avatar/plain/did:plc:z72i7hdynmk6r22z27h6tvur/bafkreihwihm6kpd6zuwhhlro75p5qks5qtrcu55jp3gddbfjsieiv7wuka",
  "associated": {
    "lists": 18,
    "feedgens": 7,
    "starterPacks": 15,
    "labeler": false,
    "chat": {
      "allowIncoming": "none"
    },
    "activitySubscription": {
      "allowSubscriptions": "followers"
    }
  },
  "labels": [],
  "createdAt": "2023-04-12T04:53:57.057Z",
  "verification": {
    "verifications": [],
    "verifiedStatus": "none",
    "trustedVerifierStatus": "valid"
  },
  "description": "official Bluesky account (check username👆)\n\nBugs, feature requests, feedback: [email protected]",
  "indexedAt": "2025-10-27T21:05:26.152Z",
  "banner": "https://cdn.bsky.app/img/banner/plain/did:plc:z72i7hdynmk6r22z27h6tvur/bafkreichzyovokfzmymz36p5jibbjrhsur6n7hjnzxrpbt5jaydp2szvna",
  "followersCount": 35016249,
  "followsCount": 15,
  "postsCount": 864,
  "pinnedPost": {
    "cid": "bafyreicnt42y6vo6pfpvyro234ac4o6ijug6adwwrh7awflgrqlt4zibxq",
    "uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l"
  }
}

Get someone's posts

curl "https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed?actor=bsky.app&limit=2"
Run in PostTaco
Example response (trimmed)
{
  "feed": [
    {
      "post": {
        "uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3mw2cdr44fc2a",
        "cid": "bafyreicrjbyelww7gvuymagi7g2rirokyrvedwzeh5vflmsvnwhnwjvnyi",
        "author": {
          "did": "did:plc:z72i7hdynmk6r22z27h6tvur",
          "handle": "bsky.app",
          "displayName": "Bluesky",
          "avatar": "https://cdn.bsky.app/img/avatar/plain/did:plc:z72i7hdynmk6r22z27h6tvur/bafkreihwihm6kpd6zuwhhlro75p5qks5qtrcu55jp3gddbfjsieiv7wuka",
          "createdAt": "2023-04-12T04:53:57.057Z"
        },
        "record": {
          "$type": "app.bsky.feed.post",
          "createdAt": "2026-09-21T18:04:06.128Z",
          "text": "If you're in line to vote for @bsky38.com, please stay in line! Polls close in just under 5 hours."
        },
        "embed": {
          "$type": "app.bsky.embed.record#view"
        },
        "bookmarkCount": 37,
        "replyCount": 79,
        "repostCount": 77,
        "likeCount": 664,
        "quoteCount": 45,
        "indexedAt": "2026-09-21T18:04:06.866Z",
        "labels": [],
        "threadgate": {
          "uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.threadgate/3mw2cdr44fc2a",
          "cid": "bafyreifpuh6s76t3d6mhugwqom5bhsbg6iw5ajsj3uj3r7cevpoj2cgmka"
        }
      }
    },
    {
      "post": {
        "uri": "at://did:plc:zbrhmanjs62oyqywjwdazxz3/app.bsky.feed.post/3mvta262ufs27",
        "cid": "bafyreihz2vc5ioeb2oyaofmkiv3irn3ldqh332go2uvya6gib4bkfqb4dq",
        "author": {
          "did": "did:plc:zbrhmanjs62oyqywjwdazxz3",
          "handle": "kenjennings.bsky.social",
          "displayName": "Ken Jennings",
          "avatar": "https://cdn.bsky.app/img/avatar/plain/did:plc:zbrhmanjs62oyqywjwdazxz3/bafkreicpymtnc6ooeoz4jyb5oaxbf6smrmsd634texeshjmfpths6qusta",
          "createdAt": "2023-04-27T21:46:36.549Z"
        },
        "record": {
          "$type": "app.bsky.feed.post",
          "createdAt": "2026-09-18T22:34:18.503Z",
          "text": "I don’t usually meddle on the writing side of Jeopardy!, but tonight I called in a favor for our Bluesky viewers."
        },
        "bookmarkCount": 217,
        "replyCount": 155,
        "repostCount": 771,
        "likeCount": 10203,
        "quoteCount": 110,
        "indexedAt": "2026-09-18T22:34:19.460Z",
        "labels": []
      },
      "reason": {
        "by": {
          "did": "did:plc:z72i7hdynmk6r22z27h6tvur",
          "handle": "bsky.app",
          "displayName": "Bluesky",
          "avatar": "https://cdn.bsky.app/img/avatar/plain/did:plc:z72i7hdynmk6r22z27h6tvur/bafkreihwihm6kpd6zuwhhlro75p5qks5qtrcu55jp3gddbfjsieiv7wuka",
          "createdAt": "2023-04-12T04:53:57.057Z"
        },
        "uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.repost/3mvtagpxpgm2j",
        "cid": "bafyreid4dxcfpwhjcbn3yvpmhs3bydggb7p5jlffuqszvh23gmcpj4n2by",
        "indexedAt": "2026-09-18T22:41:20.071Z",
        "$type": "app.bsky.feed.defs#reasonRepost"
      },
      "opThreadPostIndex": 1,
      "opThreadPostCount": 2
    }
  ],
  "cursor": "2026-09-18T22:41:19.222Z"
}

Search accounts

curl "https://public.api.bsky.app/xrpc/app.bsky.actor.searchActors?q=posttaco&limit=2"
Run in PostTaco
Example response (trimmed)
{
  "actors": []
}