Skip to content
scrapeatlas.Dashboard

Get a Mastodon user’s posts

Try in Playground

Retrieve up to 40 public posts and boosts from an account, newest first. Filter to original posts, posts without replies, media posts or pinned posts, and page with the returned cursor.

GET/v1/mastodon/user/postsx-api-key
x-api-keystringrequiredheader

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

Query parameters
3
handlestringrequiredquery

Required account address: user@server, @user@server, a profile URL such as https://fosstodon.org/@user, or a bare username on mastodon.social. Accounts on servers outside the supported list, including other fediverse software, are read from mastodon.social's federated copy (warning federated_view).

max 330 chars

Exampleexample@mastodon.social
filterenumquery

Optional: all (default: posts, replies and boosts), posts (no replies), original (no replies or boosts), media (posts with media) or pinned.

one of: all, posts, original, media, pinned

cursorstringquery

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

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

Mastodon server that answered. IDs, cursors and counters are as that server reports them.

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.

postsobject[]

Posts and boosts in source order, at most 40.

up to 40 items

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.