API v3 is live and in beta: expect possible malfunctions and breaking changes in the coming days. If you find a bug, please report it to your Sillage contact.
v2DeprecatedContents

List Contents

Paginate the content items Sillage collected for a partner workspace.

Returns a paginated list of content items for the workspace, newest first. Send your filters as a JSON body.

List contents

POST/api/v2/partner/workspaces/{partner_workspace_id}/contents/query

Path parameters

ParameterTypeDescription
partner_workspace_idstringOpaque workspace identifier from the partner system.

Request body

Send your filters as a JSON body. Every field is optional — send an empty body {} to get the most recent contents unfiltered.

FieldTypeDescription
pageintegerPage number. Defaults to 1. Must be greater than or equal to 1.
page_sizeintegerNumber of items per page. Defaults to 25. Must be between 1 and 100.
date_fromstringReturn contents created on or after this date (ISO 8601).
date_tostringReturn contents created on or before this date (ISO 8601).
content_typestring[]Filter by content type. JSON array. See the supported values below.
company_idintegerFilter by company id. This ID is specific to your environment.

Supported content_type values: linkedinPost, linkedinCompanyPost, linkedinJobPosting, linkedinComment.

Use linkedinJobPosting for job posts — jobPosting is not accepted and returns 400.

Example request

curl -X POST "https://api.getsillage.com/api/v2/partner/workspaces/ws_123/contents/query" \
  -H "Authorization: Bearer $SILLAGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":1,"page_size":25,"content_type":["linkedinPost","linkedinCompanyPost","linkedinJobPosting"]}'

Example response

{
  "data": [
    {
      "id": 9001,
      "content_type": "linkedinPost",
      "created_at": "2026-06-12T09:00:00.000Z",
      "data": {
        "post_id": "7440055204630249472",
        "is_repost": false,
        "link": "https://www.linkedin.com/posts/sillage-signals_activity-7440055204630249472-vKkM",
        "text": "Thank you for featuring us! 🔥",
        "posted_at": "2026-06-12T08:55:00.000Z",
        "engagement": { "likes": 12, "comments": 2, "shares": 1 },
        "author": {
          "type": "profile",
          "full_name": "Jean Dupont",
          "headline": "VP Sales @ Acme",
          "linkedin_url": "https://www.linkedin.com/in/jeandupont"
        }
      },
      "lead_id": 789,
      "company_id": 456
    }
  ],
  "meta": {
    "pagination": {
      "page": 1,
      "page_size": 25,
      "page_count": 1,
      "total": 1
    }
  }
}

Response fields

FieldTypeDescription
idintegerNumeric id of the content item. This ID is specific to your environment.
content_typestringContent type. See the list of supported values above.
created_atstringWhen the content item was created (ISO 8601).
dataobjectThe content itself. Its shape depends on content_type (see below).
lead_idinteger or nullThe author lead's ID in your workspace, or null when the author is not a tracked lead.
company_idinteger or nullThe company's ID in your workspace, or null when the company is not tracked there.

For a LinkedIn post (linkedinPost, linkedinCompanyPost), data carries text, link, posted_at, engagement, author, and — when present — mentions and images. For a linkedinComment, data carries text, linkedin_url, posted_at, engagement, author, and post_content_id (the id of the post it was left on). For a linkedinJobPosting, data carries title, description, location, and linkedin_url. Any field the underlying content does not carry is omitted rather than sent as null.

Errors

StatusMeaning
400Invalid request body.
401The master key is missing or invalid.
429Rate limit exceeded.
500An unexpected server error occurred.

Error responses use RFC 9457 problem documents with Content-Type: application/problem+json.

On this page