List placements
curl --request GET \
--url https://workspace.passionfroot.me/api/creators/v1/placements \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://workspace.passionfroot.me/api/creators/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/creators/v1/placements"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "plc_123",
"partnerId": "partner_xyz",
"collaborationId": "collab_xyz",
"date": "2026-09-15T00:00:00.000Z",
"name": "Acme launch – Newsletter feature",
"status": "confirmed",
"platform": "newsletter",
"postType": "Dedicated",
"url": "https://example.com/acme-launch",
"viewCount": 15000,
"likeCount": 1200,
"commentCount": 45,
"shareCount": 30,
"metricsLastUpdatedAt": "2026-09-20T14:30:00.000Z",
"priceCents": 142500,
"usdPriceCents": 142500,
"currency": "USD",
"partner": {
"id": "partner_xyz",
"name": "Acme Corp",
"websiteUrl": "https://acme.com"
}
}
],
"pagination": {
"nextCursor": "plc_122",
"hasMore": true
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "Too many requests, please try again later."
}Placements
List placements
Returns the creator’s scheduled deliverables. All prices are creator earnings after Passionfroot fees and before taxes.
GET
/
placements
List placements
curl --request GET \
--url https://workspace.passionfroot.me/api/creators/v1/placements \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://workspace.passionfroot.me/api/creators/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/creators/v1/placements"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "plc_123",
"partnerId": "partner_xyz",
"collaborationId": "collab_xyz",
"date": "2026-09-15T00:00:00.000Z",
"name": "Acme launch – Newsletter feature",
"status": "confirmed",
"platform": "newsletter",
"postType": "Dedicated",
"url": "https://example.com/acme-launch",
"viewCount": 15000,
"likeCount": 1200,
"commentCount": 45,
"shareCount": 30,
"metricsLastUpdatedAt": "2026-09-20T14:30:00.000Z",
"priceCents": 142500,
"usdPriceCents": 142500,
"currency": "USD",
"partner": {
"id": "partner_xyz",
"name": "Acme Corp",
"websiteUrl": "https://acme.com"
}
}
],
"pagination": {
"nextCursor": "plc_122",
"hasMore": true
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "Too many requests, please try again later."
}Authorizations
Create an API key from Settings → API in an approved Creator workspace.
Query Parameters
Include placements on or after this date.
Include placements on or before this 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 partner and collaboration.
Required range:
1 <= x <= 250Opaque cursor returned by the previous page.