Skip to main content
POST
Retrieve one synchronous page of people who commented on a LinkedIn post, with public profile fields enriched for each returned engagement.
The API reserves one credit for each requested slot (limit) before retrieving the page. Unused slots are refunded. Each successfully enriched profile consumes one credit. Definitive not_found and failed error outcomes remain in the page and are refunded, so they have zero net credit cost. An uncertain response can retain its reservation until the same page finishes; it does not prove a refund.

Rate limit

The limit is 180 requests per minute per workspace, shared by Post likers and Post commenters, including different API keys for the same workspace. Pagination requests and retries each count toward this limit. The counter uses a fixed minute window and resets at the next minute boundary. Requests above the limit receive HTTP 429 before provider or billing work. Wait until the next minute, then retry the identical page with the same Idempotency-Key using bounded backoff. This is a request limit, not a guarantee of enrichment throughput; the maximum page size remains 25.

Pagination

Omit cursor on the first request. When pagination.next_cursor is not null, send it unchanged with the same post URL and limit to fetch the next page. The page size is 1–25 (default 25). The provider and continuation account remain pinned to the cursor. New cursors expire after 10 minutes and are bound to the workspace, post, engagement type, and page size. Optional retrieval metadata contains reported_total, returned_count, status, and stop_reason. A provider_exhausted status means that provider has no further cursor; it does not guarantee that every LinkedIn engagement was accessible. Provider totals can change, and comment events are not the same count as unique authors. Public pagination does not promise every reply returned by the dashboard’s background extraction.

Safe retries

Supply an optional UUID in the Idempotency-Key header. Save that key together with the endpoint and exact request body before sending the request. Reuse the same key with the identical post_url, limit, and cursor if the response is lost or processing is uncertain. Use a new key for the next page. The code examples read AIRSCALE_PAGE_KEY from your environment. Set it to a UUID once for each new page, and keep that value for every retry of that page. Replace the synthetic post URL and cursor with your own values. Omitting the header remains supported. However, an independent retry without the original key can reserve credits again. When a pending or uncertain response includes idempotency_key, retain and send that returned key even if your first request omitted the header. Completed results remain replayable for 24 hours after completion, including after the input cursor expires. Already-saved profile or billing work can also resume after cursor expiry. An expired cursor cannot start a new provider fetch. A reservation for unresolved work does not automatically become a refund after 24 hours.

Pending and error responses

A 202 response with status: "pending" and code: "page_pending" means the bridge did not respond within 90 seconds. The outcome is unconfirmed; processing may still be running or may not have started. Wait for Retry-After (15 seconds for this response), then resend the identical page with the returned idempotency_key. The body also supplies retry_after_ms. If a cooldown outlasts an unfetched cursor, wait for the cooldown, then begin a fresh traversal without the cursor and with a new key. Deduplicate earlier results. A fresh traversal is new billable work. Saved work and completed replay results can still be recovered under the rules above. Airscale can choose another eligible account before a traversal starts. A continuation stays on its original account; it cannot silently switch accounts or reorder your results. Provider failures do not turn upstream access or pagination limits into a complete result set.

Billing recovery

A failed provider discovery attempt is refunded before a new attempt is funded. Once a page has been saved, retries resume its profile enrichment or billing settlement without rediscovering the page or repeating successfully settled profile charges. Keep the same key throughout recovery.

Next step

Use Post likers for the other engagement type, or read the post engagement workflow for the dashboard flow.

Authorizations

Authorization
string
header
required

Use an Airschool workspace API key. Never expose the key in client-side code.

Headers

Idempotency-Key
string<uuid>

Create a UUID for this page and reuse it with the identical endpoint, post_url, limit and cursor on every retry. Use a new key for the next page. Completed results are replayable for 24 hours after completion. Omitting the header is supported, but an independent retry without the original key can reserve credits again.

Body

application/json

Provide a LinkedIn post URL, an optional page size from 1 to 25, and the opaque cursor when continuing pagination. The JSON body must not exceed 128 KiB.

post_url
string<uri>
required

An HTTP(S) LinkedIn post URL containing an activity identifier.

Required string length: 1 - 2048
limit
integer
default:25

Number of engagements to request on this page.

Required range: 1 <= x <= 25
cursor
string | null

An opaque cursor returned by the preceding page. Send it unchanged.

Required string length: 1 - 8192

Response

A page of enriched LinkedIn post engagements.

items
object[]
required

The requested engagements with public profile fields and enrichment status.

pagination
object
required
billing
object
required
provider
enum<string>

The provider selected for this page. Treat this value as informational.

Available options:
b2benrichment,
rapidapi,
rapidapi_pnd,
unipile
retrieval
object

Optional retrieval evidence. Exhausting a provider cursor does not prove all LinkedIn engagements were accessible.