↑ ↓ to move ↵ to open
Bluesky API reference

Bluesky Resolve Handle

bluesky.actor.resolve_handle

Turn a handle into its permanent DID.

At a glance

Endpoint ID
bluesky.actor.resolve_handle
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__resolve_handle
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.resolve_handle",  "input": {    "handle": "bsky.app"  }}'

Input

FieldTypeRequiredWhat it doesExample
handle string yes Account handle. 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
{  "did": "did:plc:z72i7hdynmk6r22z27h6tvur"}

Fields

FieldTypeWhat it isExample
did string The permanent Bluesky ID behind the handle. did:plc:z72i7hdynmk6r22z27h6tvur

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.