Skip to content
scrapeatlas.Dashboard

Get Mastodon hashtag posts

Try in Playground

Retrieve up to 40 recent public posts with a hashtag as a Mastodon server sees them, newest first. The first page adds daily usage for the last seven days.

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

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

Query parameters
5
tagstringrequiredquery

Required hashtag, with or without #.

max 101 chars

Exampleopensource
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

cursorstringquery

Optional cursor from the previous response. Omit for the first page.

sincenumber | stringquery

Earliest publication time to include, ISO 8601 or Unix seconds.

untilnumber | stringquery

Publication time to stop before, ISO 8601 or Unix seconds; later than since.

Response fields
81
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

order is newest_first; window echoes since/until. complete is false when a warning names an omission, such as unsupported_posts_omitted.

coverage.sourcestring

Always included.

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

coverage.orderenum

Always included.

one of: newest_first, oldest_first, ranked, relevance, source_order

Optional.

coverage.window.sincestringoptional

Optional.

coverage.window.untilstringoptional

Optional.

First page only: name, url and history (day as a Unix timestamp string, uses and accounts per day, as strings).

hashtag.namestring

Always included.

min 1 chars

hashtag.urlstring

Always included.

Optional.

hashtag.history.daystring

Always included.

hashtag.history.usesstring

Always included.

hashtag.history.accountsstring

Always included.

Posts with the hashtag, at most 40.

up to 40 items

posts.idstring

Always included.

posts.created_atstring

Always included.

posts.in_reply_to_idstringnullableoptional

Optional.

posts.in_reply_to_account_idstringnullableoptional

Optional.

posts.sensitivebooleanoptional

Optional.

posts.spoiler_textstringoptional

Optional.

posts.visibilitystring

Always included.

posts.languagestringnullableoptional

Optional.

posts.uristring

Always included.

posts.urlstringnullable

Always included.

posts.replies_countintegeroptional

Optional.

≥ 0

posts.reblogs_countintegeroptional

Optional.

≥ 0

posts.favourites_countintegeroptional

Optional.

≥ 0

posts.contentstringoptional

Optional.

Always included.

posts.account.idstring

Always included.

posts.account.usernamestring

Always included.

min 1 chars

posts.account.acctstring

Always included.

min 1 chars

posts.account.handlestring

Always included.

min 3 chars

posts.account.display_namestring

Always included.

posts.account.urlstring

Always included.

posts.account.avatarstring

Always included.

posts.account.botboolean

Always included.

posts.media_attachmentsobject[]optional

Optional.

posts.mentionsobject[]optional

Optional.

posts.tagsobject[]optional

Optional.

Always included.

posts.reblog.idstring

Always included.

posts.reblog.created_atstring

Always included.

posts.reblog.in_reply_to_idstringnullable

Always included.

posts.reblog.in_reply_to_account_idstringnullable

Always included.

posts.reblog.sensitiveboolean

Always included.

posts.reblog.spoiler_textstring

Always included.

posts.reblog.visibilitystring

Always included.

posts.reblog.languagestringnullable

Always included.

posts.reblog.uristring

Always included.

posts.reblog.urlstringnullable

Always included.

posts.reblog.replies_countinteger

Always included.

≥ 0

posts.reblog.reblogs_countinteger

Always included.

≥ 0

posts.reblog.favourites_countinteger

Always included.

≥ 0

posts.reblog.contentstring

Always included.

Always included.

posts.reblog.account.idstring

Always included.

posts.reblog.account.usernamestring

Always included.

min 1 chars

posts.reblog.account.acctstring

Always included.

min 1 chars

posts.reblog.account.handlestring

Always included.

min 3 chars

posts.reblog.account.display_namestring

Always included.

posts.reblog.account.urlstring

Always included.

posts.reblog.account.avatarstring

Always included.

posts.reblog.account.botboolean

Always included.

posts.reblog.media_attachmentsobject[]

Always included.

posts.reblog.mentionsobject[]

Always included.

posts.reblog.tagsobject[]

Always included.

posts.reblog.reblognullnullable

Always included.

cursorstringoptional

Optional cursor from the previous response. Omit for the first page.

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.