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
limit
integer
Optional
Maximum number of actors to return.
pds
string
Optional
Optional exact hosting PDS hostname, e.g. acme.com. Case-insensitive; HTTP(S) origin and trailing slash/dot accepted, ports and paths rejected. Filters before candidate selection, including custom-domain handles. Scopes cover PDSs with at most 10,000 known actors at build time (configurable). Unknown PDS returns no actors; larger PDSs or unavailable scope support return HTTP 503 PdsScopeUnavailable.
q
string
Required
Search prefix; matched case-insensitively against handles and display names (CJK display names are matched via bigrams).
Output
application/jsonactors
array
Required
Matching actors, best match first. Ranking blends prefix quality with a stored popularity score; actors hidden by moderation are excluded.
Errors
PdsScopeUnavailable
PDS-scoped search is not available on the current backend or snapshot. Try It
Requests are sent directly from your browser. Some servers may block requests due to CORS.
View raw schema
{
"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.",
"errors": [
{
"description": "PDS-scoped search is not available on the current backend or snapshot.",
"name": "PdsScopeUnavailable"
}
],
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"actors": {
"description": "Matching actors, best match first. Ranking blends prefix quality with a stored popularity score; actors hidden by moderation are excluded.",
"items": {
"ref": "#actorBasic",
"type": "ref"
},
"type": "array"
}
},
"required": [
"actors"
],
"type": "object"
}
},
"parameters": {
"properties": {
"limit": {
"default": 10,
"description": "Maximum number of actors to return.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"pds": {
"description": "Optional exact hosting PDS hostname, e.g. acme.com. Case-insensitive; HTTP(S) origin and trailing slash/dot accepted, ports and paths rejected. Filters before candidate selection, including custom-domain handles. Scopes cover PDSs with at most 10,000 known actors at build time (configurable). Unknown PDS returns no actors; larger PDSs or unavailable scope support return HTTP 503 PdsScopeUnavailable.",
"type": "string"
},
"q": {
"description": "Search prefix; matched case-insensitively against handles and display names (CJK display names are matched via bigrams).",
"type": "string"
}
},
"required": [
"q"
],
"type": "params"
},
"type": "query"
}