↑ ↓ to move ↵ to open
Bluesky API · Endpoint

Bluesky Actors Search API

Find accounts by keyword, page by page.

  • 1 credit per call
  • Failed calls are free
  • Updated
  • bluesky.actor.search
Response completed
{  "has_more": true,  "total_returned": 20,  "actors": [    {      "display_name": "Bluesky",      "handle": "bsky.app",      "did": "did:plc:z72i7hdynmk6r22z27h6tvur",      "indexed_at": "2025-10-27T21:05:26.152Z"    },    {      "display_name": "Bluesky Safety",      "handle": "safety.bsky.app",      "description": "Sharing updates about trust and safety on Bluesky.\n\nThis account’s mentions are not actively monitored. To report a post or account, use th…",      "did": "did:plc:eon2iu7v3x2ukgxkqaf7e5np",      "indexed_at": "2024-02-08T00:51:47.063Z"    }  ]}
Try it live, free
Input

What you send

The input object of the request, with every field the endpoint accepts.

FieldTypeRequiredWhat it doesExample
query string yes What to search for. bluesky
cursor string no Pass next_cursor from the last response to get the next page.
limit integer no How many accounts to return. 10
max_pages integer no How many pages to read in this call. 2
Response

Fields it returns

What each record in the response holds, with the values from the sample above.

FieldTypeWhat it isExample
actors[].display_name string The account's display name. Bluesky
actors[].handle string The account's handle. bsky.app
actors[].did string The account's permanent Bluesky ID. did:plc:z72i7hdynmk6r22z27h6tvur
actors[].indexed_at string When Bluesky last indexed it. 2025-10-27T21:05:26.152Z
actors array The matching accounts. 3 records
has_more boolean Whether more results are available. true
total_returned integer How many results this answer holds. 20
REST API · MCP server

Call it from your code, or ask your agent

Set UPSCRAPE_API_KEY to your key and copy a working request.

curl --request POST \  --url https://data.upscrape.com/execute \  --header "Authorization: Bearer $UPSCRAPE_API_KEY" \  --header "Content-Type: application/json" \  --header "Prefer: wait=30" \  --data '{  "capability": "bluesky.actor.search",  "input": {    "limit": 10,    "max_pages": 2,    "query": "bluesky"  }}'
In your AI agent Claude · Cursor · any MCP client
1Add the Upscrape MCP server
https://data.upscrape.com/mcp
2Ask for the data in plain words

With Upscrape, get the Bluesky actors search for query "bluesky". Tell me what it costs before you run it, then show the results as a table.

The agent finds the endpoint, shows you the price, and runs it with your credits.
Bluesky

More from the Bluesky API

Questions

Bluesky Actors Search API FAQ

The short answers. The docs have the long ones.

Still have a question? Talk to the people who build the endpoints.
How much does the Bluesky Actors Search API cost?

1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.

What do I send?

Send query. The input fields below list every option with its type and limits.

Do I need a Bluesky login?

No. It reads public Bluesky data; nothing runs on your account.

Can my AI agent call it?

Yes, over MCP: the agent finds bluesky.actor.search, checks its price and runs it with the same credits as the REST API.

Get started

Your first Bluesky call is free.

Up to 100 free credits to start, no card needed.