Social platforms

Get a Bluesky post · Bluesky API

GET/bluesky/users/{username}/posts/{id}
$min $0.003

Returns one Bluesky post by author handle and post id (the record key at the end of a bsky.app post link), with replies. Returns `not_found` when the post does not exist.

Using ChatGPT, Claude Code or another client? See the setup steps

Request
curl https://api.unifapi.com/bluesky/users/{username}/posts/{id} \
  -H "Authorization: Bearer $UNIFAPI_KEY"

Parameters

usernamepathrequired
Bluesky handle of the author.
idpathrequired
Post record key, as in bsky.app/profile/{username}/post/{id}.
The parameter for this Bluesky operation. Use the URL-visible slug or id described in the docs.
Overview

This operation is part of the Bluesky API in the social platforms category. It uses the same Bearer token, request tracing, error model, and billing envelope as every UnifAPI endpoint, so agents can switch between platforms without custom per-vendor glue code.

Use it when a workflow needs Bluesky public data alongside other social networks, but should still keep one API key, one account balance, and one predictable JSON contract.

Common agent workflows

  • Fetch canonical public Bluesky content for summarization, ranking, monitoring, or enrichment.
  • Attach engagement, author, media, and source metadata to an agent workflow.
  • Give an AI agent a stable Bluesky data source without building a per-platform integration.
  • Normalize Bluesky responses into the same UnifAPI envelope used across the catalog.
Response shape

Unified envelope, platform-native fields

  • Lookup responses return one canonical object in `data` with stable identifiers, source URLs where available, and platform-specific metadata normalized into predictable JSON.
  • The operation has a 3 credits ($0.003) minimum charge, so `billing.records_charged` can be higher than the visible records returned.
  • A not-found or invalid-input condition uses the unified UnifAPI error shape, so callers do not need special handling for each source platform.

Response status codes

200400401402404429500502503

Billing

This operation charges 1 credit per billable record, with a 3 credits ($0.003) operation minimum. Public responses include billing metadata with credits charged, records charged, and remaining workspace balance. Incorrect Credit deductions caused by platform failures can be restored as billing corrections.

Errors and retries

Authentication, validation, rate-limit, not-found, and provider errors use the unified UnifAPI error format. Agents should log `request_id`, retry only retryable failures, and treat invalid API keys, disabled keys, and expired keys as the same public `unauthorized` error type.

Response fields

Fields in the data object

A successful Get a Bluesky post call returns one data object with these fields (12 of 13 shown — the docs list the full schema).

idstring | null
Stable Bluesky post URI (at://…).
cidstring | null
Content id when available.
urlstring | null
Canonical public Bluesky web URL for the post.
textstring | null
Post text body when available.
created_atnumber | null
ISO-8601 timestamp when the post was created. Unix seconds.
indexed_atnumber | null
ISO-8601 timestamp when the post was indexed. Unix seconds.
authorobject | null
Author when found.
like_countnumber | null
Like count when available.
repost_countnumber | null
Repost count when available.
reply_countnumber | null
Reply count when available.
quote_countnumber | null
Quote count when available.
embedobject | null
Embed when present.