Skip to content
scrapeatlas.Dashboard

Search Mastodon accounts and hashtags

Try in Playground

Search a Mastodon server for accounts or hashtags. Returns up to 40 accounts with profiles and counters, or up to 40 hashtags with daily usage.

GET/v1/mastodon/searchx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
3
querystringrequiredquery

Required search text, 1–200 characters.

min 1 chars · max 200 chars

Exampleopen source
typeenumquery

Optional: accounts (default) or hashtags.

one of: accounts, hashtags

Exampleaccounts
serverenumquery

Optional Mastodon server whose public view to read; default mastodon.social. One of the supported servers listed in the schema.

one of: mastodon.social, mastodon.online, mstdn.social, mas.to, mastodon.world, mstdn.jp, fosstodon.org, hachyderm.io, infosec.exchange, techhub.social, universeodon.com, mastodon.art, social.vivaldi.net, mastodon.cloud, sfba.social, chaos.social, piaille.fr, mastodon.gamedev.place, toot.community, ioc.exchange, indieweb.social, masto.ai, journa.host, newsie.social, social.coop, mastodon.scot, aus.social, kolektiva.social

Response fields
38
requestIdstring

Request correlation UUID.

Upstream requests, decoded response bytes and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

Public Mastodon page the data describes.

absolute HTTPS URL

fetchedAtstring

UTC retrieval time.

serverstring

Optional Mastodon server whose public view to read; default mastodon.social. One of the supported servers listed in the schema.

min 1 chars

complete is false when a warning names an omission, such as federated_view, counters_hidden or reply_limit.

coverage.sourcestring

Always included.

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

type=accounts: matching accounts, at most 40, with the profile fields of the profile endpoint.

up to 40 items

accounts.idstring

Always included.

accounts.usernamestring

Always included.

min 1 chars

accounts.acctstring

Always included.

min 1 chars

accounts.handlestring

Always included.

min 3 chars

accounts.display_namestring

Always included.

accounts.lockedboolean

Always included.

accounts.botboolean

Always included.

accounts.created_atstring

Always included.

accounts.notestring

Always included.

accounts.urlstring

Always included.

accounts.avatarstring

Always included.

accounts.headerstring

Always included.

accounts.followers_countintegernullable

Always included.

accounts.following_countintegernullable

Always included.

accounts.statuses_countintegernullable

Always included.

accounts.fieldsobject[]

Always included.

type=hashtags: matching hashtags, at most 40, with name, url and daily history.

up to 40 items

hashtags.namestring

Always included.

min 1 chars

hashtags.urlstring

Always included.

Optional.

hashtags.history.daystring

Always included.

hashtags.history.usesstring

Always included.

hashtags.history.accountsstring

Always included.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
12
HTTPfailure.codeMeaning
200partialUsable data with federated_view, counters_hidden, reply_limit, ancestor_limit, activity_unavailable or unsupported_*_omitted warnings.
400invalid_requestMissing, duplicate, unsafe or unsupported parameters, a post URL outside the supported servers or an invalid cursor.
401unauthorizedMissing or invalid worker API key.
403restricted_pageThe server does not share this data without login, or the account hides its followers and following.
404not_foundUnknown or removed account, post or hashtag.
429upstream_rate_limitedThe server’s rate limit is exhausted for every available network identity.
502upstream_challengedThe server answered with a challenge or non-JSON page.
502unsupported_pageMalformed, mismatched or looping source data.
502response_too_large payload_too_complexResponse exceeded byte or parsing limits.
502unsafe_redirect request_limit upstream_errorBounded source retrieval could not complete.
503busyAll worker slots and queue places are occupied.
504timeoutTotal request deadline expired.