Prefix search for atproto actors, ordered for typeahead use. Served entirely from a community-run index (https://typeahead.waow.tech); unauthenticated, CORS-enabled, results edge-cached for 60s. Also served at app.bsky.actor.searchActorsTypeahead as a drop-in migration alias with an identical response.
Parameters
Maximum number of actors to return.
Search prefix; matched case-insensitively against handles and display names (CJK display names are matched via bigrams).
Output
Encodingapplication/json
Matching actors, best match first. Ranking blends prefix quality with a stored popularity score; actors hidden by moderation are excluded.
Try It
Requests are sent directly from your browser. Some servers may block requests due to CORS.
Sending request...
View raw schema
{
"type": "query",
"output": {
"schema": {
"type": "object",
"required": [
"actors"
],
"properties": {
"actors": {
"type": "array",
"items": {
"ref": "#actorBasic",
"type": "ref"
},
"description": "Matching actors, best match first. Ranking blends prefix quality with a stored popularity score; actors hidden by moderation are excluded."
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Search prefix; matched case-insensitively against handles and display names (CJK display names are matched via bigrams)."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of actors to return."
}
}
},
"description": "Prefix search for atproto actors, ordered for typeahead use. Served entirely from a community-run index (https://typeahead.waow.tech); unauthenticated, CORS-enabled, results edge-cached for 60s. Also served at app.bsky.actor.searchActorsTypeahead as a drop-in migration alias with an identical response."
}
Basic actor profile. Matches the shape of app.bsky.actor.defs#profileViewBasic minus the authenticated viewer state, so results are interchangeable with bluesky's for unauthenticated use.
Properties
Pass-through of app.bsky.actor.defs#profileAssociated as last seen from the actor's profile (lists, feedgens, starter packs, chat settings); absent if never observed.
Avatar image URL — usually a bluesky CDN URL, but may point directly at the actor's PDS blob endpoint for accounts bluesky's CDN no longer serves.
Account creation time as reported by the actor's profile view; absent if unknown.
The actor's decentralized identifier.
Self-declared display name from the actor's profile record; absent if unset.
maxLength: 640 bytesmaxGraphemes: 64 graphemes
The actor's current handle, e.g. zzstoatzz.io.
Pass-through of the actor's com.atproto.label.defs#label array (self-labels and moderation-service labels) as last seen; may be empty.
View raw schema
{
"type": "object",
"required": [
"did",
"handle"
],
"properties": {
"did": {
"type": "string",
"format": "did",
"description": "The actor's decentralized identifier."
},
"avatar": {
"type": "string",
"format": "uri",
"description": "Avatar image URL — usually a bluesky CDN URL, but may point directly at the actor's PDS blob endpoint for accounts bluesky's CDN no longer serves."
},
"handle": {
"type": "string",
"format": "handle",
"description": "The actor's current handle, e.g. zzstoatzz.io."
},
"labels": {
"type": "unknown",
"description": "Pass-through of the actor's com.atproto.label.defs#label array (self-labels and moderation-service labels) as last seen; may be empty."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Account creation time as reported by the actor's profile view; absent if unknown."
},
"associated": {
"type": "unknown",
"description": "Pass-through of app.bsky.actor.defs#profileAssociated as last seen from the actor's profile (lists, feedgens, starter packs, chat settings); absent if never observed."
},
"displayName": {
"type": "string",
"maxLength": 640,
"description": "Self-declared display name from the actor's profile record; absent if unset.",
"maxGraphemes": 64
}
},
"description": "Basic actor profile. Matches the shape of app.bsky.actor.defs#profileViewBasic minus the authenticated viewer state, so results are interchangeable with bluesky's for unauthenticated use."
}