List placements
curl --request GET \
--url https://workspace.passionfroot.me/api/v1/placements \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://workspace.passionfroot.me/api/v1/placements', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://workspace.passionfroot.me/api/v1/placements"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "plc_123",
"creatorId": "creator_abc",
"creatorName": "Jane Creator",
"collaborationId": "collab_xyz",
"date": "2026-09-15T00:00:00.000Z",
"name": "Fall launch – Instagram Reel",
"status": "confirmed",
"platform": "instagram",
"postType": "Reel",
"url": "https://instagram.com/p/example",
"viewCount": 15000,
"likeCount": 1200,
"commentCount": 45,
"shareCount": 30,
"metricsLastUpdatedAt": "2026-09-20T14:30:00.000Z",
"priceCents": 15750,
"usdPriceCents": 15750,
"currency": "USD"
}
],
"pagination": {
"nextCursor": "plc_122",
"hasMore": true
}
}{
"error": {
"code": "INVALID_QUERY_PARAMETER",
"message": "Invalid query parameters",
"details": [
{
"field": "limit",
"message": "Number must be less than or equal to 250"
}
]
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Invalid or expired API key"
}
}{
"error": {
"code": "MISSING_SCOPE",
"message": "API key missing required scope: write:conversations"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "This API key is over its rate limit. Wait for Retry-After before sending more.",
"details": {
"limit": 2,
"windowSeconds": 1
}
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "API key verification is temporarily unavailable, retry shortly"
}
}Placements
List placements
Returns scheduled content for the organization. Related creator, channel, collaboration, and campaign objects are opt-in through include.
GET
/
placements
List placements
curl --request GET \
--url https://workspace.passionfroot.me/api/v1/placements \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://workspace.passionfroot.me/api/v1/placements', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://workspace.passionfroot.me/api/v1/placements"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "plc_123",
"creatorId": "creator_abc",
"creatorName": "Jane Creator",
"collaborationId": "collab_xyz",
"date": "2026-09-15T00:00:00.000Z",
"name": "Fall launch – Instagram Reel",
"status": "confirmed",
"platform": "instagram",
"postType": "Reel",
"url": "https://instagram.com/p/example",
"viewCount": 15000,
"likeCount": 1200,
"commentCount": 45,
"shareCount": 30,
"metricsLastUpdatedAt": "2026-09-20T14:30:00.000Z",
"priceCents": 15750,
"usdPriceCents": 15750,
"currency": "USD"
}
],
"pagination": {
"nextCursor": "plc_122",
"hasMore": true
}
}{
"error": {
"code": "INVALID_QUERY_PARAMETER",
"message": "Invalid query parameters",
"details": [
{
"field": "limit",
"message": "Number must be less than or equal to 250"
}
]
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Invalid or expired API key"
}
}{
"error": {
"code": "MISSING_SCOPE",
"message": "API key missing required scope: write:conversations"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "This API key is over its rate limit. Wait for Retry-After before sending more.",
"details": {
"limit": 2,
"windowSeconds": 1
}
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "API key verification is temporarily unavailable, retry shortly"
}
}Authorizations
Create an API key from Settings → AI agents & API in your Partner workspace.
Query Parameters
Include placements on or after this calendar date.
Include placements on or before this calendar date.
Include placements whose reported metrics were updated on or after this date or timestamp.
Include placements whose reported metrics were updated on or before this date or timestamp.
Return placements belonging to this collaboration.
Comma-separated statuses.
Comma-separated expansions. Supported values are creator, creator.channels, collaboration, and collaboration.campaign.
Required range:
1 <= x <= 250Opaque cursor returned by the previous page.

