Social Post Search
Search the indexed Crustdata social post dataset with structured filter conditions. Each result is a post with its author (person or company page) enriched with a Crustdata id, headline, current title, employer, industry, and structured location, plus engagement counts, every reactor and commenter, resolved mentions, hyperlinks, and document, article, and poll attachments.
Enabled on request. The endpoint is off by default and returns 403 until it is
enabled on your account. Contact us to turn it on.
Default rate-limit is 30 requests per minute. Send an email to gtm@crustdata.co to discuss higher limits if needed for your use case.
Billed at 0.5 credits per post returned. limit: 0 returns total_count alone
and costs nothing. Supports and/or/all_of filter groups, cursor-based
pagination, sorting, field selection, geographic radius filtering on
actor.location, and same-element matching on the nested reactors and comments
arrays. Only indexed fields are filterable and sortable; see the field descriptions
on SocialPostDbSearchCondition and SocialPostDbSearchSort.
The index is rebuilt periodically. For the freshest posts by one person or company,
use /social_post/professional_network/enrich/live.
Authorizations
API key passed as a Bearer token in the Authorization header.
Headers
API version to use. This endpoint currently requires 2025-11-01.
2025-11-01 "2025-11-01"
Body
Search filters, pagination, sorting, and field selection
Request body for the indexed social post search. Every key is optional; {} matches the whole dataset.
A single SocialPostDbSearchCondition or a nested SocialPostDbSearchConditionGroup. Omit to match every indexed post.
- Option 1
- Option 2
Opaque cursor from a prior response's next_cursor. Send the same filters, sorts, and fields with it; a cursor issued for a different body is rejected with Invalid cursor.
Posts per page. 0 returns total_count alone and costs nothing.
0 <= x <= 1000Ordering rules applied in array order. Defaults to date_posted descending.
Dot-paths to include in each returned post, for example actor.name or a whole group such as engagement. Omit to return everything. actor.location and reposter.location are selected whole; their sub-keys are filterable but not selectable. reactors and comments are returned in full and can be long, so leave them out unless you need them. Filter-only fields (content_type, materialized_at) are rejected here.
Response
Posts matching the search criteria with a pagination cursor and total count

