Skip to content

post/search

Searches posts with filters, pagination, and sorting.

What is post search?

Post search is the main way to retrieve collected posts from a project. It combines the project scope with filters such as date range, platform, sentiment, tags, and text search, and returns a paginated result set.

Authentication

Authentication is required. See Authentication.

Permissions

Authentication is required.

Method and path

POST /post/search

Request headers

HeaderRequiredDescription
X-Api-Key or X_API_KEYyesAPI key.
Content-Typeyesapplication/json.
Cache-ControlnoSend no-cache to bypass the API cache for this request. In the PHP bootstrap this is read as HTTP_CACHE_CONTROL.

Request body

FieldTypeRequiredDescription
project_idintegeryesProject identifier.
limitintegernoPage size. Subject to server-side limits.
offsetintegernoPagination offset.
orderBystringnoSort field. Default is post_time or engagement when engsort is set.
orderDirstringnoSort direction. Default DESC.
tab_idintegernoCache invalidation scope.
debugbooleannoDebug toggle for query diagnostics.
Shared filtersmixednoShared post filters such as date, platform, sentiment, priority, jobs, tags, language, author, and text search.

Example request

bash
curl -X POST "$SIGNAL_API_BASE_URL/post/search" \
  -H "X-Api-Key: $SIGNAL_API_KEY" \
  -H "Cache-Control: no-cache" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": 123,
    "limit": 100,
    "offset": 0,
    "orderBy": "post_time",
    "orderDir": "DESC"
  }'
json
{
  "project_id": 123,
  "limit": 100,
  "offset": 0,
  "orderBy": "post_time",
  "orderDir": "DESC"
}

Example response

json
{
  "total": "<total_matches>",
  "cached": "<boolean>",
  "posts": [
    {
      "uuid": "<post_uuid>",
      "title": "<post_title>",
      "post_text": "<post_text>",
      "platform": "<platform_code>",
      "post_time": "<post_datetime>",
      "sentiment": "<sentiment>",
      "priority": "<priority>",
      "tags": ["<tag_id>"],
      "full_uri": "<post_url>"
    }
  ]
}

Response fields

FieldTypeDescription
totalintegerTotal number of matching posts.
postsarray<object>Page of matched post documents.
cachedbooleanPresent when the response is served from cache.

Post object fields

FieldTypeDescription
uuidstringUnique post identifier.
titlestringnull
post_textstringnull
full_uristringnull
platformstringPlatform code (tw, ig, fb, wn, etc.).
post_timestringnull
langstringnull
sentimentstringnull
priorityintegernull
tagsarray<stringinteger>
Additional fieldsmixedPlatform-specific fields can be included when available.

Notes

  • Supports cache hits via API cache helpers.
  • Cached responses include cached: true.
  • To bypass the cache, send Cache-Control: no-cache; the V2 bootstrap checks this header via HTTP_CACHE_CONTROL before endpoint-level cache logic runs.

Doc rev.1.12.3 2026.05.08