# Search for posts The Posts endpoint allows you to fetch social posts that have been processed and enriched by Constellation. Each post includes its original content—such as text, author information, and engagement data—along with enrichments that provide deeper analytical context. Endpoint: POST /posts/-/search ## Query parameters: - `projectId` (string, required) The ID of the project to for records within ## Request fields (application/json): - `query` (any) - `boolean` (string) A lucene query to filter on post criteria. Provides the same intent as query, but more text-friendly way of specifying the filter. If both boolean and query are provided, they are combined with a logical AND. - `sort` (array) A list of fields to sort by. - `sort.field` (string, required) Enum: "engagement.likes", "engagement.score", "engagement.total", "emotion.anger", "emotion.fear", "toxicity.toxic", "createdAt", "postId" - `sort.direction` (string, required) Enum: "ASC", "DESC" - `page` (object) Pagination information. - `page.first` (integer) - `page.after` (string) ## Response 200 fields (application/json): - `posts` (array, required) Example: [{"postId":"1960806642217574502","narrativeId":"429","createdAt":"2025-08-27T20:48:28.000Z","platform":"twitter","text":"RT @Jansant: @MichaelWestBiz @AlboMP Over the weekend 300k march to sanction Israel..."}] - `posts.allAuthorText` (string) Search across all author text fields - author.username, author.displayName, author.description, author.location. NOTE - Not actually returned as a field in the response, but documented here to facilitate describing the filterability. - `posts.allNarrativeText` (string) Search across all narrative text fields - narrative.title, narrative.compassHeadline, narrative.compassSummary, narrative.compassOneSentence, narrative.executiveBriefing. NOTE - Not actually returned as a field in the response, but documented here to facilitate describing the filterability. - `posts.allPostText` (string) Search across all post text content fields - title, body. NOTE - Not actually returned as a field in the response, but documented here to facilitate describing the filterability. - `posts.anomalousScore` (number) Behavioral Manipulation score from the BBMI model. - `posts.author` (object) - `posts.author.username` (string) The author's username/handle. - `posts.authorId` (string) The unique identifier for the author of the post. - `posts.createdAt` (string, required) The timestamp when the post was created. Example: "2025-08-27T20:48:28.000Z" - `posts.domain` (object) - `posts.domain.domain` (string) Domain URL. - `posts.domain.id` (string) Domain identifier. - `posts.domain.name` (string) Domain name. - `posts.lang` (string) The detected language of the post content (e.g., 'en', 'es'). - `posts.narrativeId` (string) The unique identifier for the narrative. Example: "429" - `posts.parentId` (string) The ID of the post's direct parent. - `posts.platform` (string, required) The platform where the post originated (e.g., Twitter, Reddit, Telegram). Example: "twitter" - `posts.postId` (string, required) The unique identifier for the post. Example: "1960806642217574502" - `posts.postUrl` (string) The original URL of the post. - `posts.text` (string) The main text content of the post. Not exposed for twitter or reddit posts. Use the postUrl to get it. Example: "RT @Jansant: @MichaelWestBiz @AlboMP Over the weekend 300k march to sanction Israel..." - `posts.title` (string) The title of the post (e.g., for Reddit submissions or articles). Not exposed for twitter or reddit posts. Use the postUrl to get it. - `posts.updatedAt` (string) The timestamp when the post was last updated. - `pageInfo` (object, required) Example: {"hasNextPage":true,"endCursor":"eyJjcmVhdGVkQXQiOiIyMDI1LTA4LTI3VDAxOjAwOjEyLjAwMFoiLCJwb3N0SWQiOiIxOTYwNTA3NjA3Njg2MjA1ODc5In0=","sortKey":"created_at DESC, post_id ASC"} - `pageInfo.hasNextPage` (boolean, required) Example: true - `pageInfo.endCursor` (string) Example: "eyJjcmVhdGVkQXQiOiIyMDI1LTA4LTI3VDAxOjAwOjEyLjAwMFoiLCJwb3N0SWQiOiIxOTYwNTA3NjA3Njg2MjA1ODc5In0=" - `pageInfo.totalCount` (number) - `pageInfo.sortKey` (string) Example: "created_at DESC, post_id ASC"