Bluesky Post
Bluesky posts are public publications with text, author identity, media, timestamps, hashtags, mentions, and visible engagement counts. These records support URL enrichment, source review, content research, and time-stamped engagement comparison.
Features
- Known post lookupResolve one public bsky.app URL into the normalized record for that selected post rather than expanding an account feed.
- Content and author contextReturn available post text, source URL, author identity, attached media, hashtags, mentions, and publication time together.
- Visible engagement snapshotKeep available like, comment, repost, and view counts with the collection time for a point-in-time observation.
Parameters
| Parameters | Required | Description |
|---|---|---|
url | Required | Required non-empty post reference whose parsed hostname is bsky.app or a bsky.app subdomain. The submission validator accepts absolute references with any scheme and protocol-relative references. |
How to Use
Submit a known public Bluesky post URL, follow the asynchronous task, and read the normalized result through the standard result envelope.
- Prepare one public bsky.app URL that resolves to the Bluesky post you want to inspect.
- Submit the URL as url to /v1/bluesky/post and save the returned task_id.
- Poll /v1/tasks/{task_id} until the task succeeds or returns a failure.
- Read data.results.items; follow next_cursor only when the result envelope reports has_more as true.
curl -X POST "https://api.socq.ai/v1/bluesky/post" \
-H "Authorization: Bearer $SOCQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://bsky.app/profile/jay.bsky.team/post/3micofpyeys2g"}'
# Poll GET /v1/tasks/{task_id}
# Read data.results.items and follow next_cursor only while has_more is trueBest Use Cases
- Enrich a known post URL: Convert a selected bsky.app link into structured text, author, media, timestamp, tag, mention, metric, and source fields.
- Review content and attribution: Use post text, author identity, media, and the public source URL to examine a selected publication with traceable attribution.
- Compare engagement observations: Pair visible engagement counts with collected_at to compare separately collected snapshots without treating them as a live stream.
Pro Tips
- Confirm that the parsed hostname is bsky.app or a bsky.app subdomain. The submission validator does not restrict the URL scheme and also accepts protocol-relative references.
- Use one post URL per task and omit results_limit because the input identifies one selected post rather than a feed page.
- Treat post text, author details, media, hashtags, mentions, publication time, and individual metrics as nullable fields.
- Store collected_at with visible engagement counts so later comparisons preserve when each observation was made.
Related APIs
Use these APIs when you need a different type of public Bluesky data.
- Bluesky Profile API — Retrieve one public Bluesky profile from a validated username with normalized identity, biography, imagery, website, status fields, visible account counts, and collection context.
- Bluesky User Posts API — Collect one page of public Bluesky posts by handle or DID with normalized content, author, media, timestamps, and visible engagement.