Replace
YOUR_API_KEY in each example with your actual API key. All
requests require the x-api-version: 2025-11-01 header.Enabled on request. This endpoint is off by default on every account
and returns
403 until it is enabled. To turn it on,
contact us. Check your entitlement at any
time with GET /account/endpoints?path=/social_post/search.Indexed, not live. This endpoint queries a periodically rebuilt index
of posts. For the freshest posts by one person or company, use
Enrich Social Posts. For a
real-time keyword search, use
Search Social Posts.
Post record mental model
Every result is one post object with these top-level groups:- Post identity and content:
share_urn,share_url,text,post_type(original,repost_quote, orrepost_without_thoughts),date_posted,hashtags,is_edited, and the URN family (backend_urn,entity_urn,parent_post_urn). actor: the author, person or company, enriched with a Crustdata id, headline, current title andcompany_name, industry, and a structuredlocationwithcity,state,country, andcontinent.reposter: present on reposts. The account that reshared the post, with the same shape asactor.engagement:total_reactions,total_comments,num_shares, andreactions_by_typewith a count per reaction type.reactorsandcomments: every reaction and comment on the post, each with the reacting or commenting person’s identity, title, company, and location. These arrays are returned in full and can be long.mentionsandhyperlinks: the Crustdata ids of people and companies mentioned in the post, plus the raw URLs the post links to.- Attachments:
document,article, andpollobjects, pluscontent_types, the list of attachment classes present on the post. metadata:data_updated_at, when the post record was last updated.
At a glance
Examples
Company page posts, founders announcing a raise, posts mentioning a
company, reactor and commenter targeting, and more.
Pagination and sorting
Sorting, cursor-based pagination, and field selection.
Reference
Filter grammar, operators, every filterable and sortable field, the
response field catalog, and errors.
Request body
Response body
Rate limits and credits
Pricing:
0.5 credits per post returned. A
request that returns no posts does not consume credits, and neither does a
limit: 0 count query. The exact charge comes back in the
X-Credits-Used header.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.Your first search: a keyword from authors in one city
Find people in Kolkata whose posts mention Rust, newest first.[.] on
text is an exact-phrase match, the right tool for a short technical keyword.
The fuzzy (.) operator would also match “just”, “must”, and “trust”.
actor fields such as company_name and title appear only when the author
record carries them, so read every actor field as optional.
Which search pattern should I use?
- I want to explore the dataset
- I want the freshest posts for one person or company
- I want a real-time keyword search
- I want only a count
Use Social Post Search. Slice hundreds of millions of indexed
posts by text, author attributes, engagement, reactor and commenter
attributes, mentions, or attachment type, and walk large result sets with
cursor pagination.
Examples
Worked recipes you can copy, paste, and adapt. Each example is a full working request paired with the response it returned. Responses are trimmed to the fields under discussion, and long text and cursors are shortened. For the filter grammar, operators, and the full field catalog, see Social Post Search reference.Everything a company page has posted
Everything a company page has posted
Filter on
actor.crustdata_entity_id with the company’s Crustdata id and
sort newest first. Person ids and company ids are separate id spaces, so add
actor.actor_type = company when you want to rule out a person with the
same number.Founders announcing a raise, ranked by reactions
Founders announcing a raise, ranked by reactions
Combine an exact phrase on
text with a fuzzy title match and a date floor,
then sort by engagement.total_reactions.Posts that mention a company
Posts that mention a company
mentions.company_id holds the Crustdata ids resolved from the company
pages a post links to. Use it to find who is talking about a target account.
The matching raw URLs sit in hyperlinks.company_professional_network_urls.Hiring posts in one country, by hashtag
Hiring posts in one country, by hashtag
hashtags is an array field, so in matches a post carrying any of the
listed tags. Sort by engagement.total_comments to surface the posts that
drew the most replies.Posts a founder praised where an engineer commented
Posts a founder praised where an engineer commented
Conditions on The response is cut to the first two reactors and the first comment. The
arrays hold every reactor and commenter, not only the ones that matched, so
filter them client-side when you need the matching elements.
reactors.* inside one and group bind to the same
reactor: a founder whose reaction was specifically PRAISE. The
comments.title condition is evaluated independently against the
commenters. See
Nested-array matching
for the cross-element form.Posts with a document attachment from one company's employees
Posts with a document attachment from one company's employees
content_type is a filter-only field that matches posts carrying a given
attachment class: document, article, poll, video, or image. The
matching attachment comes back in its own object.Count matching posts without returning rows
Count matching posts without returning rows
Set
limit to 0. The response carries total_count only, and the request
costs nothing.Walk a result set with the cursor
Walk a result set with the cursor
Send the same body again with
cursor set to the previous next_cursor.
Keep filters, sorts, and fields identical between pages.What to do next
- Look up fields and operators: see Social Post Search reference for the filter grammar, every filterable and sortable field, the response catalog, and errors.
- Resolve an author to an id: use Person Search or Company Identify, then filter on
actor.crustdata_entity_id. - Get the freshest posts for one account: see Enrich Social Posts.
- Run a real-time keyword search: see Search Social Posts.
- Inspect the full schema: read the OpenAPI reference.

