# Bluesky Account Posts Feed

> Bluesky Account Posts Feed is a paid API for AI agents from social.duoleads.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-29).

Fetches the latest public posts and replies (excluding reposts) for a given Bluesky account, with engagement metrics and pagination support.

## Facts

- Endpoint: GET https://social.duoleads.com/v1/bluesky/posts?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/bluesky-account-posts-feed-614de412
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_zU_TX6TaQ1Ox8LCU9vOmL

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability bluesky-account-posts-feed-614de412
```

Example prompt: Can you pull the last 25 posts from the Bluesky account paulg.bsky.social — I want the text, likes, and reply counts for each one, and skip any reposts.

## When to prefer this

Use this endpoint when you need structured, paginated access to the public post history of a specific known Bluesky account — particularly when you need engagement metrics (likes, replies, reposts) alongside post content. It is preferable to keyword search endpoints when you already know the account and want chronological post retrieval. Bad inputs are not charged, making it safe for exploratory queries.

## Known failure modes

- Invalid or malformed handle returns a bad-input response (no charge)
- Account not found or no matching posts returns not-found response (no charge)
- Expired or invalid cursor may return unexpected page results
- Network or upstream Bluesky API outage may produce 5xx errors
- Limit value outside 1-25 range rejected by schema validation

## How this service works

Bluesky Account Posts Feed: the latest public posts and replies of one Bluesky account (a handle such as name.bsky.social, a DID or a bsky.app profile URL), reposts left out. Per post the text, likes, replies, reposts, language, media links, time and URL in the shared social schema; next_cursor pages back through the feed. Bad input is free; not found or no match is not charged.

## Output

Returns a paginated JSON object containing an array of posts from the specified Bluesky account. Each post includes its AT-URI identifier, bsky.app URL, text content, language code, post type (post or reply), author handle and display name, engagement metrics (likes, replies, reposts), media attachment URLs, creation timestamp, and parent post ID for replies. Also includes query metadata, a next_cursor for pagination, a source disclaimer, and an as_of timestamp.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "handle"
     ],
     "properties": {
      "limit": {
       "type": "string",
       "pattern": "^[0-9]{1,4}$",
       "description": "Posts per page, 1-25. Default 25."
      },
      "cursor": {
       "type": "string",
       "maxLength": 512,
       "description": "next_cursor of the previous page."
      },
      "handle": {
       "type": "string",
       "maxLength": 253,
       "description": "The account: a Bluesky handle (a domain name such as name.bsky.social, or a bare name meaning name.bsky.social), a did:plc / did:web identifier, or a bsky.app profile URL."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "as_of": "2026-10-15T12:00:00.000Z",
  "items": [
   {
    "id": "at://did:plc:synth000000000000000000000001/app.bsky.feed.post/3lsynth000003",
    "url": "https://bsky.app/profile/synth-alpha.bsky.social/post/3lsynth000003",
    "lang": "en",
    "text": "Morning post from a synthetic account",
    "type": "post",
    "author": {
     "handle": "synth-alpha.bsky.social",
     "verified": true,
     "followers": null,
     "display_name": "Synthetic Alpha"
    },
    "metrics": {
     "likes": 10,
     "views": null,
     "replies": 2,
     "reposts": 1
    },
    "platform": "bluesky",
    "parent_id": null,
    "created_at": "2026-10-14T08:00:00.000Z",
    "media_urls": []
   },
   {
    "id": "at://did:plc:synth000000000000000000000001/app.bsky.feed.post/3lsynth000004",
    "url": "https://bsky.app/profile/synth-alpha.bsky.social/post/3lsynth000004",
    "lang": "en",
    "text": "Replying to myself",
    "type": "post",
    "author": {
     "handle": "synth-alpha.bsky.social",
     "verified": true,
     "followers": null,
     "display_name": "Synthetic Alpha"
    },
    "metrics": {
     "likes": 1,
     "views": null,
     "replies": 0,
     "reposts": 0
    },
    "platform": "bluesky",
    "parent_id": "at://did:plc:synth000000000000000000000001/app.bsky.feed.post/3lsynth000003",
    "created_at": "2026-10-14T08:05:00.000Z",
    "media_urls": []
   }
  ],
  "query": {
   "limit": 10,
   "cursor": null,
   "handle": "synthbrand.bsky.social"
  },
  "source": "public data via the Bluesky AppView API; not affiliated with Bluesky",
  "complete": true,
  "platform": "bluesky",
  "disclaimer": "Public data via third-party providers; not affiliated with or endorsed by any platform. Do not use to profile, target or train AI on individuals.",
  "request_id": "01KEXAMPLE0000000000000000",
  "next_cursor": "2026-10-13T09:00:00.000Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/bluesky-account-posts-feed-614de412/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from social.duoleads.com](https://www.zero.xyz/host/social.duoleads.com/llms.txt)
