# Bluesky API: Search posts

> 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.

Unofficial. Not affiliated with or endorsed by Bluesky.

- Page: https://fous.com/methods/bsky.app/search-posts
- Method: `bsky.app/search_posts`, version 1
- Website: bsky.app
- Returns: author, text, time, likes, reposts, replies, image links, post 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 |
|---|---|---|---|---|
| `sort` | string | no | `"latest"` | Order results by latest or top. One of "latest", "top". Default "latest". |
| `query` | string | yes | `"climate policy"` | Words to search for, such as climate policy. |
| `author` | string | no |  | Only posts from this handle, for example bsky.app. |
| `language` | string | no |  | Language name or two-letter code, for example English or en. Leave blank for any language. |
| `since_date` | string | no |  | Include posts from this date onward, for example 2026-09-01 (YYYY-MM-DD). |
| `max_results` | integer | no | `5` | Maximum posts to return, for example 25. Default 25. |

## Output

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

```json
{
  "sort": "latest",
  "query": "climate policy",
  "max_results": 5
}
```

Its output:

```json
{
  "posts": [
    {
      "text": "📃𝗣𝗼𝗹𝗶𝗰𝘆 𝗰𝗲𝗿𝘁𝗮𝗶𝗻𝘁𝘆 𝗮𝗻𝗱 𝗶𝗻𝗰𝗲𝗻𝘁𝗶𝘃𝗲𝘀 𝗰𝗿𝗲𝗮𝘁𝗲 𝗮𝗻 𝗲𝗻𝗮𝗯𝗹𝗶𝗻𝗴 𝗲𝗻𝘃𝗶𝗿𝗼𝗻𝗺𝗲𝗻𝘁 for the transition. Measures such as transition plans or the integration of nature and climate considerations into prudential frameworks, send market signals that cascade through t…",
      "likes": 0,
      "replies": 1,
      "reposts": 0,
      "post_uri": "at://did:plc:mh2csbc5e6cni3z7wi7vts7g/app.bsky.feed.post/3myjpqh26ak2s",
      "post_link": "https://bsky.app/profile/eurosif.bsky.social/post/3myjpqh26ak2s",
      "posted_at": "2026-10-23T08:04:07.646000Z",
      "image_links": [],
      "author_handle": "eurosif.bsky.social",
      "author_display_name": "Eurosif, the European Sustainable Investment Forum"
    },
    {
      "text": "⏲️ The findings point to working time reduction being a promising and under-explored policy instrument in climate mitigation",
      "likes": 0,
      "replies": 1,
      "reposts": 0,
      "post_uri": "at://did:plc:jqaguraawdoo2bqkfotpop5q/app.bsky.feed.post/3myjpm7ocds2x",
      "post_link": "https://bsky.app/profile/etui.bsky.social/post/3myjpm7ocds2x",
      "posted_at": "2026-10-23T08:01:47.779000Z",
      "image_links": [],
      "author_handle": "etui.bsky.social",
      "author_display_name": "ETUI"
    },
    {
      "text": "The Breakdown & Plane Error:\nConfusing scientific reporting (WHAT) with systemic policy enforcement (WHO), treating data publication as effective climate action.",
      "likes": 0,
      "replies": 1,
      "reposts": 0,
      "post_uri": "at://did:plc:xvo7gsaojuuuxc6rlw374pls/app.bsky.feed.post/3myjnsx2je52p",
      "post_link": "https://bsky.app/profile/judgement-bot.bsky.social/post/3myjnsx2je52p",
      "posted_at": "2026-10-23T07:29:47.150313Z",
      "image_links": [],
      "author_handle": "judgement-bot.bsky.social",
      "author_display_name": "Alethekanon"
    }
  ]
}
```

## 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/search_posts","input":{"sort":"latest","query":"climate policy","max_results":5}}'
```

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

- Find the most liked Bluesky posts about solar panel subsidies from the past week
- Search public posts mentioning 'open source license change' sorted by latest, max 40 results
- Show me top Bluesky posts by handle alice.example.social about local elections since 2026-08-15
- Look up posts in Spanish about hurricane preparedness, sorted by top, limited to 15 results
- On bsky.app, search for recent posts with the words 'remote work policy' ordered by latest, including image links

## Input schema

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "sort": {
      "enum": [
        "latest",
        "top"
      ],
      "type": "string",
      "default": "latest",
      "description": "Order results by latest or top."
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Words to search for, such as climate policy."
    },
    "author": {
      "type": "string",
      "description": "Only posts from this handle, for example bsky.app."
    },
    "language": {
      "type": "string",
      "description": "Language name or two-letter code, for example English or en. Leave blank for any language."
    },
    "since_date": {
      "type": "string",
      "description": "Include posts from this date onward, for example 2026-09-01 (YYYY-MM-DD)."
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum posts to return, for example 25."
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "required": [
    "posts"
  ],
  "properties": {
    "posts": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "author_handle",
          "author_display_name",
          "text",
          "posted_at",
          "likes",
          "reposts",
          "replies",
          "image_links",
          "post_link",
          "post_uri"
        ],
        "properties": {
          "text": {
            "type": [
              "string",
              "null"
            ]
          },
          "likes": {
            "type": "integer"
          },
          "replies": {
            "type": "integer"
          },
          "reposts": {
            "type": "integer"
          },
          "post_uri": {
            "type": "string"
          },
          "post_link": {
            "type": "string"
          },
          "posted_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "image_links": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "author_handle": {
            "type": [
              "string",
              "null"
            ]
          },
          "author_display_name": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "description": "Public posts matching the search, in requested order."
    }
  }
}
```

## See more

- [Bluesky API: List recent posts](https://fous.com/methods/bsky.app/list-recent-posts.md): 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.
- [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.
- [Reddit API: Search posts](https://fous.com/methods/reddit.com/search-posts.md): Finds public Reddit posts by topic, optionally in one community, for a time window and sort order. Returns up to 100 posts in Reddit search order with score, comment count, text and link.
- [BBC News API: Search articles](https://fous.com/methods/bbc.com/search-news.md): Finds BBC News articles matching search words, newest first or by relevance, with publication time, authors, section and summary, optionally limited to a date range. Date filters and newest order apply to the first 180 search matches; older or less relevant matches may be missed.
- [Open Library API: Search books](https://fous.com/methods/openlibrary.org/search-books.md): Finds Open Library books by search words, optionally narrowed by author and subject, sorted by relevance or publication age. Returns work-level results; free_online means at least one edition is marked public or borrowable, not that a loan is available now.
- [Hugging Face API: Search models](https://fous.com/methods/huggingface.co/search-models.md): Finds public Hugging Face models by search words, with an optional task and sort order. License is null when the model does not publish one.
- [Hugging Face API: Search Hugging Face Spaces](https://fous.com/methods/huggingface.co/search-spaces.md): Finds public Hugging Face Spaces demos for a task, with descriptions, likes, running status and update dates.
- [Stack Overflow API: Search questions](https://fous.com/methods/stackoverflow.com/search-questions.md): Finds Stack Overflow programming questions matching plain-language search words, optionally filtered by tag and answer status, with a chosen sort order.
- [All Bluesky methods](https://fous.com/methods/bsky.app.md)
