Query Content Requests
POST body variant of the content requests list, for large identifier lists.
POST/api/v2/content-requests/query
POST body alternative to GET /api/v2/content-requests. Accepts the same filters as native JSON arrays. Use this variant when your identifier arrays are large (more than a few values for company_domain, company_linkedin_handle, or company_linkedin_url). For small queries, prefer the GET endpoint.
Request body
| Field | Type | Description |
|---|---|---|
| page | integer | Page number (default 1). |
| page_size | integer | Number of items per page (default 25). |
| date_from | string | ISO 8601 timestamp. Include requests created at or after this date. |
| date_to | string | ISO 8601 timestamp. Include requests created at or before this date. |
| type | string | Filter by request type. Valid values: account_mapping, top_account_content. |
| stage | string[] | Filter by stage. Native JSON array. Defaults to all stages except completed. |
| company_id | integer | Filter by company numeric SQL id. Takes priority over all human-identifier fields. |
| company_domain | string[] | Filter by company domain(s). Native JSON array. Maximum 100 values. |
| company_linkedin_handle | string[] | Filter by company LinkedIn handle(s). Native JSON array. Maximum 100 values. |
| company_linkedin_url | string[] | Filter by company LinkedIn URL(s). Native JSON array. Maximum 100 values. |
Example request
curl -X POST "https://api.getsillage.com/api/v2/content-requests/query" \
-H "Authorization: Bearer $SILLAGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"page":1,"page_size":10,"type":"account_mapping","company_domain":["acme.com","example.com"]}'const response = await fetch('https://api.getsillage.com/api/v2/content-requests/query', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SILLAGE_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
page: 1,
page_size: 10,
type: 'account_mapping',
company_domain: ['acme.com', 'example.com'],
}),
})
const result = await response.json()import { request } from 'node:https'
const body = JSON.stringify({
page: 1,
page_size: 10,
type: 'account_mapping',
company_domain: ['acme.com', 'example.com'],
})
const req = request(
new URL('https://api.getsillage.com/api/v2/content-requests/query'),
{
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SILLAGE_API_KEY}`,
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(body),
},
},
(res) => {
let data = ''
res.on('data', (chunk) => {
data += chunk
})
res.on('end', () => {
console.log(JSON.parse(data))
})
},
)
req.write(body)
req.end()import os
import requests
response = requests.post(
"https://api.getsillage.com/api/v2/content-requests/query",
json={
"page": 1,
"page_size": 10,
"type": "account_mapping",
"company_domain": ["acme.com", "example.com"],
},
headers={"Authorization": f"Bearer {os.environ['SILLAGE_API_KEY']}"},
timeout=30,
)
response.raise_for_status()
result = response.json()Example response
{
"data": [
{
"id": 43821,
"type": "account_mapping",
"stage": "account_mapping_in_progress",
"created_at": "2026-06-12T08:30:00.000Z",
"updated_at": "2026-06-12T09:10:00.000Z",
"company": {
"id": 8421,
"name": "Acme",
"domain": "acme.com",
"linkedin_url": "https://www.linkedin.com/company/acme"
},
"inputs": {}
}
],
"meta": {
"pagination": {
"page": 1,
"page_size": 10,
"page_count": 3,
"total": 28
},
"resolved_companies": [
{
"company_id": 8421,
"matched_by": "domain",
"identifier": "acme.com"
},
{
"company_id": 9103,
"matched_by": "domain",
"identifier": "example.com"
}
]
}
}meta.resolved_companies
Present on all list responses (GET and POST). Contains one entry per company matched from a company filter (company_id, company_domain, company_linkedin_handle, or company_linkedin_url).
| Field | Type | Description |
|---|---|---|
| company_id | integer | Numeric SQL id of the matched company. |
| matched_by | string | Which identifier tier produced this match. One of: company_id, linkedin_handle, linkedin_url, domain. |
| identifier | string | The original identifier value supplied by the caller (domain, handle, URL, or numeric id echoed as a string). |
All entries share the same matched_by value for a given response. When no company filter is supplied, resolved_companies is an empty array.