# Bluesky User Likes Feed

> Bluesky User Likes Feed is a paid API for AI agents from x402.apidirect.io, paid per call via x402, $0.004/call, status unknown (last checked 2026-10-30).

Fetches the posts a Bluesky user has liked, returned newest first, with optional AI sentiment analysis.

## Facts

- Endpoint: GET https://x402.apidirect.io/v1/bluesky/user/likes?utm_source=zero.xyz
- Price: $0.004/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/bluesky-user-likes-feed-5b1d516e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_3JQuu9w1c3rj03YFVjtqm

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-user-likes-feed-5b1d516e
```

Example prompt: Can you pull the last 2 pages of posts that @jack.bsky.social has liked on Bluesky, and include sentiment analysis so I can see the emotional tone of what they're engaging with?

## When to prefer this

Use this endpoint when you need to programmatically retrieve the likes activity of a specific Bluesky user — especially for audience research, content intelligence, or sentiment profiling of what a user endorses. Prefer it over scraping Bluesky directly as it handles pagination, DID resolution, and optional AI sentiment enrichment in one call. Choose it over generic social listening tools when you specifically need Bluesky likes (not posts or reposts).

## Known failure modes

- Unknown or invalid Bluesky handle returns a 404 or empty result set
- Private or deactivated account may return no likes
- pages parameter exceeding 20 is rejected by schema validation
- Neither username nor url provided results in a missing-parameter error
- Rate limiting or Bluesky API downtime can cause upstream failures
- Sentiment analysis may be incomplete if post text is very short or non-textual

## How this service works

Get the posts a Bluesky user has liked, newest first.

## Output

Returns a paginated list of posts the specified Bluesky user has liked, ordered newest first. Each item includes post content, author details, timestamps, and engagement counts. When get_sentiment is enabled, each post is also annotated with an emotions breakdown (joy, trust, fear, surprise, sadness, disgust, anger, anticipation scored 0–100), a dominant_emotion, an emotional_intensity score (0–10), and a polarity label (positive, negative, or neutral). Up to 50 results per page, up to 20 pages per call.

## 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",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "url": {
       "type": "string",
       "maxLength": 500,
       "description": "Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters). Provide either username or url."
      },
      "pages": {
       "type": "integer",
       "default": 1,
       "maximum": 20,
       "minimum": 1,
       "description": "Number of pages to fetch and merge into one response (1-20, billed per page returned). Each page returns up to 50 results. Fetching stops early when there are no more results."
      },
      "username": {
       "type": "string",
       "maxLength": 100,
       "description": "Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters). Provide either username or url."
      },
      "get_sentiment": {
       "type": "boolean",
       "default": false,
       "description": "Set to true to add AI emotion analysis to each result. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any item"
      }
     }
    }
   },
   "additionalProperties": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/bluesky-user-likes-feed-5b1d516e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.apidirect.io](https://www.zero.xyz/host/x402.apidirect.io/llms.txt)
