Mastodon

List Mastodon post edit history

List every saved version of a Mastodon post.

GET/v1/mastodon/posts/edits
1credit
x-api-keystringheader

API key (`sfk_...`)

Parameters
1
urlstringrequiredquery

Public URL of a post, e.g. `https://mastodon.social/@Gargron/117555039933723776`. The server in the URL is the server asked, because post ids belong to a server.

Response fields
100

Endpoint-specific response payload.

datalookupStatus
string

`found`, `not_found`, `restricted` (login required or closed), `unsupported` (this server does not offer it) or `not_compatible` (the host is not a Mastodon-compatible server). See `reason`.

one of: found, not_found, restricted, unsupported, not_compatible

datahost
string

The server that was asked.

datasoftware
stringnullableoptional

Only on a `not_compatible` result (and always on the server endpoint): the software the host runs, from its NodeInfo, e.g. `misskey` or `lemmy`; null when it does not say. Absent otherwise.

Why `lookupStatus` is not `found`, or null when it is `found`.

datareasoncode
string

Machine-readable reason.

one of: login_required, closed_by_operator, hidden_by_owner, suspended, not_implemented, disabled_by_operator, not_a_mastodon_server, unsupported_server_software, host_not_found, post_not_visible

datareasonmessage
string

Plain-language explanation.

Oldest first. A post that was never edited has one entry.

dataedits[]createdAt
stringnullable

When this revision was saved.

dataedits[]contentHtml
stringnullable

Post body for this revision as sanitised HTML.

dataedits[]text
stringnullable

Post body for this revision as plain text.

dataedits[]contentWarning
stringnullable

Content warning text for this revision.

dataedits[]isSensitive
boolean

True when the author marked this revision sensitive.

The account that wrote this revision.

dataedits[]authorid
string

Account id on `host`.

dataedits[]authorhost
string

The server this record came from.

dataedits[]authorhandle
string

`user@host`, with the account's home server.

dataedits[]authorusername
string

Username without the host.

dataedits[]authorurl
stringnullable

Profile page.

dataedits[]authoractorUri
stringnullable

ActivityPub id, when the server shows it.

dataedits[]authordisplayName
stringnullable

Display name.

dataedits[]authorbioHtml
stringnullable

Bio as sanitised HTML.

dataedits[]authorbio
stringnullable

Bio as plain text.

An avatar or header image.

dataedits[]authoravatarurl
stringnullable

Image URL on the server or its media store.

dataedits[]authoravatarstaticUrl
stringnullable

Still frame of an animated image.

dataedits[]authoravatardescription
stringnullable

Alt text.

An avatar or header image.

dataedits[]authorheaderurl
stringnullable

Image URL on the server or its media store.

dataedits[]authorheaderstaticUrl
stringnullable

Still frame of an animated image.

dataedits[]authorheaderdescription
stringnullable

Alt text.

dataedits[]authorcreatedAt
stringnullable

Account creation, rounded to midnight UTC by the server.

dataedits[]authorlastPostDate
stringnullable

Date of the latest post (a date, not a time).

The server's own counters.

dataedits[]authorstatsfollowers
integernullable

Accounts following this account.

dataedits[]authorstatsfollowing
integernullable

Accounts this account follows.

dataedits[]authorstatsposts
integernullable

Posts by this account.

dataedits[]authorisBot
boolean

True when the account is marked as a bot.

dataedits[]authorisGroup
boolean

True when the account is a group.

dataedits[]authorisLocked
boolean

Follow requests need approval. Public posts are still public.

dataedits[]authorisLimited
boolean

The server's moderators limited (silenced) the account.

dataedits[]authorisSuspended
boolean

True when the server suspended the account.

dataedits[]authorisDiscoverable
booleannullable

The owner's opt-in to the profile directory and recommendations. null on servers that do not report it.

dataedits[]authorisIndexable
booleannullable

The owner's opt-in to search engines indexing public posts. null when not reported.

dataedits[]authornoIndex
booleannullable

The owner asks search engines to skip the profile. null when not reported.

dataedits[]authorhidesNetwork
booleannullable

The owner hides the follower and following lists. null when not reported.

The account this one moved to.

dataedits[]authormovedToid
stringnullable

Account id on the server that returned it.

dataedits[]authormovedTohandle
string

`user@host` of the account this one moved to.

dataedits[]authormovedTourl
stringnullable

Profile page of the new account.

dataedits[]authormovedTodisplayName
stringnullable

Display name of the new account.

Profile metadata fields, in the owner's order.

dataedits[]authorfields[]name
string

Label.

dataedits[]authorfields[]valueHtml
string

Value as sanitised HTML.

dataedits[]authorfields[]value
string

Value as plain text.

dataedits[]authorfields[]verifiedAt
stringnullable

When a link in the value was verified with rel=me.

Custom emojis used in the display name or bio.

dataedits[]authoremojis[]shortcode
string

Shortcode without colons.

dataedits[]authoremojis[]url
stringnullable

Emoji image.

dataedits[]authoremojis[]staticUrl
stringnullable

Still frame.

Public badges such as Owner or Moderator.

dataedits[]authorroles[]id
stringnullable

Role id on `host`.

dataedits[]authorroles[]name
string

Role name, such as Owner or Moderator.

dataedits[]authorroles[]color
stringnullable

Badge colour as a hex value, when set.

Media attached to this revision.

dataedits[]media[]id
string

Media id on `host`.

dataedits[]media[]type
string

`image`, `video`, `gifv` or `audio`.

one of: image, video, gifv, audio, unknown

dataedits[]media[]url
stringnullable

File on the author's server. Never copied.

dataedits[]media[]previewUrl
stringnullable

Preview image.

dataedits[]media[]originUrl
stringnullable

Where the file lives on the author's own server.

dataedits[]media[]description
stringnullable

Alt text.

dataedits[]media[]blurhash
stringnullable

Blurhash placeholder for the preview.

dataedits[]media[]width
integernullable

Width in pixels, when known.

dataedits[]media[]height
integernullable

Height in pixels, when known.

dataedits[]media[]durationSeconds
numbernullable

Duration in seconds for video or audio, when known.

Focal point, -1 to 1.

dataedits[]media[]focusx
number

Horizontal focal point, -1 to 1.

dataedits[]media[]focusy
number

Vertical focal point, -1 to 1.

Poll in this revision, when it had one.

dataedits[]pollid
string

Poll id on `host`.

dataedits[]pollexpiresAt
stringnullable

When voting closes, when the poll has an end.

dataedits[]pollexpired
boolean

True when voting has closed.

dataedits[]pollmultiple
boolean

True when a voter may choose more than one option.

dataedits[]pollvotes
integernullable

Total votes, or null when the server does not report it.

dataedits[]pollvoters
integernullable

Distinct voters, or null when the server does not count them.

Poll choices, in the author's order.

dataedits[]polloptions[]title
string

Option text.

dataedits[]polloptions[]votes
integernullable

Votes for this option, when reported.

Custom emojis used in the poll.

dataedits[]pollemojis[]shortcode
string

Shortcode without colons.

dataedits[]pollemojis[]url
stringnullable

Emoji image.

dataedits[]pollemojis[]staticUrl
stringnullable

Still frame.

Custom emojis used in this revision.

dataedits[]emojis[]shortcode
string

Shortcode without colons.

dataedits[]emojis[]url
stringnullable

Emoji image.

dataedits[]emojis[]staticUrl
stringnullable

Still frame.

Metadata describing the request and billing outcome.

metarequestId
string

Unique request identifier for tracing this API call.

min 1 chars

metacreditsCharged
integer

Credits charged for this request.

≥ 0

metaversion
string

Public API version that served the response.

one of: v1

Code example

curl "https://api.socialfetch.dev/v1/mastodon/posts/edits?url=https://mastodon.social/@Gargron/117555039933723776" \
  -H "x-api-key: YOUR_API_KEY"

Responses

Every saved version of the post.