# Bluesky API: List recent posts

> Lists an account's latest public Bluesky posts, newest first. Replies and reposts are left out unless requested; a repost's time is when the account reposted it.

Unofficial. Not affiliated with or endorsed by Bluesky.

- Page: https://fous.com/methods/bsky.app/list-recent-posts
- Method: `bsky.app/list_recent_posts`, version 1
- Website: bsky.app
- Returns: text, time, like/repost/reply/quote counts, repost flag, original author, images, link
- Effect: read (it gets data and changes nothing)
- Sign-in: none needed
- Cost: 1 credit per completed run (1¢ with pay as you go); failed runs are free
- Verified: Nov 2, 2026

## Inputs

| Field | Type | Required | In the run below | Description |
|---|---|---|---|---|
| `username` | string | yes | `"@nytimes.com"` | Account handle (with or without @) or Bluesky profile link, for example nytimes.com or https://bsky.app/profile/nytimes.com. |
| `max_results` | integer | no | `100` | Maximum posts to return, for example 20. Default 20. |
| `include_replies` | boolean | no |  | Include replies, for example true. Default false. |
| `include_reposts` | boolean | no | `true` | Include posts reposted by the account, for example true. Default false. |

## Output

From a run on Oct 23, 2026, shortened. Its input:

```json
{
  "username": "@nytimes.com",
  "max_results": 100,
  "include_reposts": true
}
```

Its output:

```json
{
  "posts": [
    {
      "text": "In @nytopinion.nytimes.com\n\n“The students are coming for the machine,” Filip Balunovic writes from Serbia in a guest essay. “And, astonishingly, they might win.”",
      "likes": 10,
      "quotes": 0,
      "replies": 0,
      "reposts": 2,
      "post_uri": "at://did:plc:eclio37ymobqex2ncko63h4r/app.bsky.feed.post/3myjvntrd332s",
      "is_repost": false,
      "post_link": "https://bsky.app/profile/nytimes.com/post/3myjvntrd332s",
      "posted_at": "2026-10-23T09:50:04.785866Z",
      "image_links": [],
      "original_author_handle": null
    },
    {
      "text": "Breaking News: A powerful earthquake in Tibet killed at least 16 people and injured dozens of others, Chinese state media said.",
      "likes": 18,
      "quotes": 0,
      "replies": 1,
      "reposts": 4,
      "post_uri": "at://did:plc:eclio37ymobqex2ncko63h4r/app.bsky.feed.post/3myjszyhzj22m",
      "is_repost": false,
      "post_link": "https://bsky.app/profile/nytimes.com/post/3myjszyhzj22m",
      "posted_at": "2026-10-23T09:03:11.211873Z",
      "image_links": [],
      "original_author_handle": null
    },
    {
      "text": "DOJ immediately asking the Ninth Circuit to step in on its lawsuit aiming to force California to set aside 20,000 mail ballots. A lower court had set a hearing for next Tuesday to consider its claims.",
      "likes": 25,
      "quotes": 0,
      "replies": 5,
      "reposts": 7,
      "post_uri": "at://did:plc:ad4baew4rs5doyjstoi3puem/app.bsky.feed.post/3myj4yufl7223",
      "is_repost": true,
      "post_link": "https://bsky.app/profile/zjmontague.bsky.social/post/3myj4yufl7223",
      "posted_at": "2026-10-23T03:46:41.943000Z",
      "image_links": [],
      "original_author_handle": "zjmontague.bsky.social"
    }
  ]
}
```

## Run it

From code, with a Fous API key in `FOUS_API_KEY`; the answer's `data` holds the output:

```bash
curl https://api.fous.com/v1/runs \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"bsky.app/list_recent_posts","input":{"username":"@nytimes.com","max_results":100,"include_reposts":true}}'
```

From an AI agent connected to the Fous MCP server: its `run` with the same method and input. To connect one, give it `set up https://fous.com/SKILL.md`.

## Ask your agent

- Show me the latest 10 posts from the account @nytimes.com on Bluesky, newest first
- I need the most recent public posts by bsky.app/profile/techcrunch.com including their like and repost counts
- Pull up the last 15 Bluesky posts from jay.bsky.team, with any replies included
- List the newest posts from the handle washingtonpost.com, and also show the posts they reposted
- Get me 50 recent posts from https://bsky.app/profile/npr.org with the images and links they shared

## Input schema

```json
{
  "type": "object",
  "required": [
    "username"
  ],
  "properties": {
    "username": {
      "type": "string",
      "description": "Account handle (with or without @) or Bluesky profile link, for example nytimes.com or https://bsky.app/profile/nytimes.com."
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum posts to return, for example 20."
    },
    "include_replies": {
      "type": "boolean",
      "default": false,
      "description": "Include replies, for example true."
    },
    "include_reposts": {
      "type": "boolean",
      "default": false,
      "description": "Include posts reposted by the account, for example true."
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "required": [
    "posts"
  ],
  "properties": {
    "posts": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "text",
          "posted_at",
          "likes",
          "reposts",
          "replies",
          "quotes",
          "is_repost",
          "original_author_handle",
          "image_links",
          "post_link",
          "post_uri"
        ],
        "properties": {
          "text": {
            "type": "string"
          },
          "likes": {
            "type": "integer"
          },
          "quotes": {
            "type": "integer"
          },
          "replies": {
            "type": "integer"
          },
          "reposts": {
            "type": "integer"
          },
          "post_uri": {
            "type": "string"
          },
          "is_repost": {
            "type": "boolean"
          },
          "post_link": {
            "type": "string"
          },
          "posted_at": {
            "type": "string"
          },
          "image_links": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "original_author_handle": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    }
  }
}
```

## See more

- [Bluesky API: Search posts](https://fous.com/methods/bsky.app/search-posts.md): Searches public Bluesky posts for words, optionally ordered by latest or top and filtered by date, author or language. Search indexing may lag behind new posts.
- [Bluesky API: Get profile](https://fous.com/methods/bsky.app/get-profile.md): Looks up a public Bluesky profile by handle or profile link, including bio, audience counts and join date. A bare name first checks its .bsky.social handle, then the top relevant people-search result.
- [Instagram API: List recent posts](https://fous.com/methods/instagram.com/list-recent-posts.md): Lists the latest publicly embeddable posts and reels from an Instagram account, newest first. Without login Instagram may show fewer posts than requested. View counts that are not available are null.
- [Threads API: List recent posts](https://fous.com/methods/threads.com/list-recent-posts.md): Lists an account's latest public Threads posts, newest first, with text, engagement counts, thumbnails and links. Only posts shown without logging in are returned.
- [Mastodon API: List recent posts](https://fous.com/methods/mastodon.social/list-recent-posts.md): Lists a Mastodon account's latest public posts, newest first. Replies and boosts are optional. Private and unlisted posts are left out.
- [Medium API: List a writer's or publication's latest articles](https://fous.com/methods/medium.com/list-author-articles.md): Lists the latest public articles by a Medium writer or publication (by username, publication name or Medium link), with dates, reading times, claps, member-only labels and tags.
- [Tumblr API: List blog posts](https://fous.com/methods/tumblr.com/list-blog-posts.md): Lists recent public posts of a Tumblr blog, optionally only those with a given tag. Private or login-only blogs cannot be read.
- [Substack API: List newsletter posts](https://fous.com/methods/substack.com/list-newsletter-posts.md): Finds a Substack newsletter by name or web address and returns its latest public posts with dates, authors, access level and engagement counts.
- [All Bluesky methods](https://fous.com/methods/bsky.app.md)
