↑ ↓ to move ↵ to open
Bluesky API reference

Bluesky Profile

bluesky.actor.get_profile

Get a profile from its handle, DID or bsky.app link: name, bio, followers, follows and post count.

At a glance

Endpoint ID
bluesky.actor.get_profile
Price
0.75 credits per call; failed calls are free
Runs for up to
120 seconds
Request
POST /execute
Run an endpoint
MCP tool when pinned
bluesky__actor__get_profile
Pin tools
OpenAPI
openapi.json
Download

Request

Send the endpoint ID as capability and its fields as input. Set UPSCRAPE_API_KEY to your key first.

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.get_profile",  "input": {    "actor": "bsky.app"  }}'

Input

FieldTypeRequiredWhat it doesExample
actor string yes The account's handle, such as bsky.app, its DID, or its bsky.app profile link. bsky.app

Response

A finished call answers with HTTP 200; the data is in results[0].data, and billing.credits_charged is what it cost. A call still running after the wait answers 202: see jobs and results.

This is results[0].data from a real run:

results[0].data
{  "display_name": "Bluesky",  "handle": "bsky.app",  "description": "official Bluesky account (check username👆)\n\nBugs, feature requests, feedback: support@bsky.app",  "did": "did:plc:z72i7hdynmk6r22z27h6tvur",  "followers_count": 35154398,  "follows_count": 15,  "indexed_at": "2025-10-27T21:05:26.152Z",  "posts_count": 865}

Fields

FieldTypeWhat it isExample
display_name string The account's display name. Bluesky
handle string The account's handle. bsky.app
followers_count integer Followers, as Bluesky shows them. 35,154,398
follows_count integer How many accounts it follows. 15
posts_count integer How many posts it has made. 865
description string The profile's bio text. official Bluesky account (check username👆) Bugs, feature reques…
did string The account's permanent Bluesky ID. did:plc:z72i7hdynmk6r22z27h6tvur
indexed_at string When Bluesky last indexed the profile. 2025-10-27T21:05:26.152Z

If a call fails

A failed call costs nothing. The response carries an error.code you can branch on; Errors and retries lists every code and which ones to retry.

Other Bluesky endpoints

Something missing or unclear? Ask the team that builds the Bluesky endpoints.