Search
POST /search is the fastest way to see what’s out there on a topic. In a few seconds it returns:
content: ranked posts matching your query.narratives: the narratives those posts belong to.creators: who made the posts.
Every id in the response can be passed straight to the detail endpoints. For more than 300 posts or a full analysis, use an intelligence job.
Cost: 0.01 credits per post returned. An empty answer costs nothing. See Pricing & Credits.
Request
cURL
Response
content: ranked posts (see The Content Object). Each one links to its narratives (narrativeIds→GET /narratives/{id}) and visual patterns (patternKeys→GET /intelligence/patterns/{patternKey}).narratives: up to 10, only when the evidence supports them.sourcetells you which kind:tracked: a narrative on the precomputed map. Itsidworks withGET /narratives/{id}.content_countis its total size in the corpus;memberOverlapis how many of your results belong to it.emergent: formed on the spot from your results. Itsidonly exists in this response.
creators: who made the returned posts, sorted byhits(posts in your results), thenfollowerCount. Handles are never exposed.usage.credits: what the call cost.
If narratives or creators find nothing in time, they come back empty and the rest of the answer is unaffected.
The patterns list is temporarily switched off and returns []. Posts still carry their patternKeys, and the pattern endpoints work as normal.
Retries
Send an Idempotency-Key header with a unique value per request. Retrying with the same key and body within 15 minutes isn’t charged again. Without the header, every call is billed.
Slow searches return 202
A search has about 20 seconds. If it runs over, you’re not charged for the search. Instead, the question is sent to an insights job (100 records), charged at that job’s price, and you get back a jobId:
Poll it like any job. A smaller limit or a shorter window makes this less likely.