← Back to Crustdata
POST/social_post/search

Social Post Search

Search indexed social posts with filters on text, author, engagement, reactors, commenters, mentions, and attachments. Replaces /screener/linkedin_posts endpoints. Cursor pagination. Billed per post returned (limit defaults to 20).

Crustdata·Dynamic pricing

Dynamic pricing

body.limit == 0 ? 0.01 : (body.limit ? body.limit : 20) * 0.15625

Example code

// Using @orth/sdk - The simplest way to call APIs // Install: npm install @orth/sdk import Orthogonal from "@orth/sdk"; const orthogonal = new Orthogonal({ apiKey: process.env.ORTHOGONAL_API_KEY, }); const output = await orthogonal.run({ api: "crustdata", path: "/social_post/search" }); console.log(output);

Body parameters

filters
object

A single `SocialPostDbSearchCondition` or a nested `SocialPostDbSearchConditionGroup`. Omit to match every indexed post.

cursor
string

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`.

limit
integer

Posts per page. `0` returns `total_count` alone and costs nothing. (default: 20)

sorts
array

Ordering rules applied in array order. Defaults to `date_posted` descending.

fields
array

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.

    Orthogonal - Giving AI agents the tools they need.