List posts with media for an actor
const url = 'https://api.fxbsky.app/2/profile/bsky.app/media?count=20&lang=es';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.fxbsky.app/2/profile/bsky.app/media?count=20&lang=es'Returns a timeline page in the same shape as FxTwitter GET /2/profile/{handle}/media (code, results, cursor). handle may be a handle or DID. Pagination uses Bluesky app.bsky.feed.getAuthorFeed with filter=posts_with_media: cursor.bottom is the opaque next-page token (pass as cursor query param). cursor.top is always null.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Example
bsky.appBluesky handle (e.g. user.bsky.social) or DID (did:plc:…)
Query Parameters
Section titled “Query Parameters ”Page size (default 20)
Pagination cursor from prior response (cursor.bottom)
Example
esTarget language (ISO 639-1 or BCP 47) for inline translation when available
Responses
Section titled “ Responses ”Media timeline page
object
object
Discriminator: single status
Recursive reference — same shape as APIBlueskyStatus.
object
object
Placeholder for an unavailable post (quote/thread).
Why the post is unavailable
object
Discriminator: full user profile (API v2).
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
object
object
object
object
object
object
Discriminator: full user profile (API v2).
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
object
object
object
object
object
object
object
object
object
Discriminator: full user profile (API v2).
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
object
object
object
object
object
object
object
Discriminator: full user profile (API v2).
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
Handle or account id used in permalinks (@user on X).
Parent post id (X: snowflake; Bluesky: record key).
Permalink to the parent post when known.
Permalink to the parent author profile when known.
Display name of the parent author when known.
object
object
Example
{ "results": [ { "type": "status", "quote": { "type": "tombstone", "provider": "twitter", "reason": "deleted", "author": { "type": "profile", "verification": { "type": "organization" } } }, "author": { "type": "profile", "verification": { "type": "organization" } }, "media": { "external": { "type": "video" }, "photos": [ { "type": "photo" } ], "videos": [ { "type": "video", "formats": [ { "container": "mp4", "codec": "h264" } ], "publisher": { "type": "profile", "verification": { "type": "organization" } } } ], "all": [ { "type": "photo" } ], "mosaic": { "type": "mosaic_photo" }, "broadcast": { "state": "LIVE", "orientation": "landscape" } }, "embed_card": "tweet", "provider": "bluesky" } ]}Invalid path or query parameters (e.g. count out of range)
object
Example
{ "code": 400}Actor not found
object
object
Discriminator: single status
Recursive reference — same shape as APIBlueskyStatus.
object
object
Placeholder for an unavailable post (quote/thread).
Why the post is unavailable
object
Discriminator: full user profile (API v2).
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
object
object
object
object
object
object
Discriminator: full user profile (API v2).
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
object
object
object
object
object
object
object
object
object
Discriminator: full user profile (API v2).
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
object
object
object
object
object
object
object
Discriminator: full user profile (API v2).
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
Handle or account id used in permalinks (@user on X).
Parent post id (X: snowflake; Bluesky: record key).
Permalink to the parent post when known.
Permalink to the parent author profile when known.
Display name of the parent author when known.
object
object
Example
{ "results": [ { "type": "status", "quote": { "type": "tombstone", "provider": "twitter", "reason": "deleted", "author": { "type": "profile", "verification": { "type": "organization" } } }, "author": { "type": "profile", "verification": { "type": "organization" } }, "media": { "external": { "type": "video" }, "photos": [ { "type": "photo" } ], "videos": [ { "type": "video", "formats": [ { "container": "mp4", "codec": "h264" } ], "publisher": { "type": "profile", "verification": { "type": "organization" } } } ], "all": [ { "type": "photo" } ], "mosaic": { "type": "mosaic_photo" }, "broadcast": { "state": "LIVE", "orientation": "landscape" } }, "embed_card": "tweet", "provider": "bluesky" } ]}Upstream or processing error
object
object
Discriminator: single status
Recursive reference — same shape as APIBlueskyStatus.
object
object
Placeholder for an unavailable post (quote/thread).
Why the post is unavailable
object
Discriminator: full user profile (API v2).
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
object
object
object
object
object
object
Discriminator: full user profile (API v2).
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
object
object
object
object
object
object
object
object
object
Discriminator: full user profile (API v2).
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
object
object
object
object
object
object
object
Discriminator: full user profile (API v2).
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Facet kind: e.g. url, mention, hashtag, bold, media, custom_emoji (Mastodon custom emoji image)
Start and end UTF-16 indices
object
object
Handle or account id used in permalinks (@user on X).
Parent post id (X: snowflake; Bluesky: record key).
Permalink to the parent post when known.
Permalink to the parent author profile when known.
Display name of the parent author when known.
object
object
Example
{ "results": [ { "type": "status", "quote": { "type": "tombstone", "provider": "twitter", "reason": "deleted", "author": { "type": "profile", "verification": { "type": "organization" } } }, "author": { "type": "profile", "verification": { "type": "organization" } }, "media": { "external": { "type": "video" }, "photos": [ { "type": "photo" } ], "videos": [ { "type": "video", "formats": [ { "container": "mp4", "codec": "h264" } ], "publisher": { "type": "profile", "verification": { "type": "organization" } } } ], "all": [ { "type": "photo" } ], "mosaic": { "type": "mosaic_photo" }, "broadcast": { "state": "LIVE", "orientation": "landscape" } }, "embed_card": "tweet", "provider": "bluesky" } ]}