Filtering posts
GET /posts and GET /collections/{collectionId}/posts accept the same set of filters. Add as many as you need — they combine with AND, so a post must match every filter to be returned. The same filters define a content selection for POST /analyses (selection.posts).
Examples
Posts with a Siftsy score of 7 or higher:
Everything from one creator on TikTok this quarter:
Posts where at least 60% of comments are positive and no more than 10% are negative:
Look up a single post by its URL:
Low-scoring posts inside one collection:
Posts tagged launch or preorder:
The same selection as an analysis body:
How matching works
- Links are matched loosely:
httpvshttps,www., trailing slashes, upper/lower case, and anything after?or#are ignored. Tracking parameters like?igsh=or?utm_source=never break a match. - Accounts match the creator’s username or display name, case-insensitive. The leading
@is optional. - Tags are the content tags on the post in Siftsy, matched case-insensitively. The leading
#is optional. Several tags match posts carrying any of them. - Lists:
link,account,tag, andplatformaccept several values — comma-separate them (platform=instagram,tiktok) or repeat the parameter. - Dates are ISO 8601. A date without a time (
2026-01-01) means midnight UTC. - Scores and percentages compare against the values in the post payload (
scores.siftsyScoreandsentimentMix.*), so what you filter on is exactly what you get back. Posts that have not finished scoring are excluded from score and sentiment filters.
The response echoes your active filters in meta.filters, so you can confirm exactly what was applied.
Filters and paging
Filters are applied while each page is being filled, so pages stay close to your limit rather than coming back nearly empty. To get the next page, send the same filters again and add the cursor from the previous response. Keep going until hasMore is false.
Invalid values (a bad date, min_score=11, min_score greater than max_score) return 400 with a message explaining what to fix.
To sample the comments behind a mix-bar bucket (evidence, not a full export), see Retrieving comments.