Get campaign workspace
curl --request GET \
--url https://api.apostra.com/api/v2/buyer/campaigns/{campaignId}/workspace \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.apostra.com/api/v2/buyer/campaigns/{campaignId}/workspace"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.apostra.com/api/v2/buyer/campaigns/{campaignId}/workspace', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"campaignId": "<string>",
"advertiserId": "<string>",
"name": "<string>",
"revision": 0,
"handling": "tracking",
"phase": "draft",
"isPaused": true,
"isArchived": true,
"autonomy": {
"inventorySelection": {
"mode": "manual",
"source": "inherited"
},
"rebriefing": {
"mode": "manual",
"source": "inherited"
}
},
"createdAt": "<string>",
"updatedAt": "<string>",
"catalogId": "<string>",
"catalogArchived": true,
"brief": "<string>",
"mode": "review",
"flight": {
"startAt": "<string>",
"endAt": "<string>"
},
"budget": {
"total": 123,
"currency": "<string>",
"dailyCap": 123,
"pacing": "even"
},
"audienceConfig": {
"targetAudienceIds": [
"<string>"
],
"suppressAudienceIds": [
"<string>"
]
},
"source": {
"kind": "interchange",
"sellerId": "<string>",
"freshness": "live",
"lastSyncedAt": "<string>"
},
"sellerIds": [
"<string>"
],
"labels": {},
"readiness": {
"attention": [
"blocked"
],
"blockers": [
{
"code": "<string>",
"message": "<string>"
}
],
"status": "ready",
"reasons": [
"no_budget"
],
"nextAction": {
"action": "<string>",
"label": "<string>",
"params": {}
}
},
"spend": {
"state": "available",
"value": {
"total": 123,
"currency": "<string>"
},
"source": "<string>",
"asOf": "<string>"
},
"pacing": {
"state": "available",
"value": {
"percent": 123,
"verdict": "behind"
},
"source": "<string>",
"asOf": "<string>"
},
"outcome": {
"state": "available",
"value": {
"label": "<string>",
"actual": 123,
"unit": "<string>",
"verdict": "working",
"target": 123
},
"source": "<string>",
"asOf": "<string>"
},
"mediaBuys": [
{
"mediaBuyId": "<string>",
"sellerId": "<string>",
"name": "<string>",
"phase": "draft",
"isPaused": true,
"budget": {
"total": 123,
"currency": "<string>"
},
"spend": {
"state": "available",
"value": {
"total": 123,
"currency": "<string>"
},
"source": "<string>",
"asOf": "<string>"
},
"sellerName": "<string>",
"channelGroup": {
"channelGroupId": "<string>",
"name": "<string>"
},
"flight": {
"startAt": "<string>",
"endAt": "<string>"
},
"delivery": {
"state": "available",
"value": {
"percent": 123
},
"source": "<string>",
"asOf": "<string>"
},
"proposalSource": {
"proposalId": "<string>",
"version": 0,
"state": "quoted"
},
"source": {
"freshness": "live",
"lastSyncedAt": "<string>"
},
"attentionNote": "<string>",
"reconciliation": {
"required": true,
"since": "<string>",
"reason": "<string>"
}
}
],
"creatives": [
{
"creativeId": "<string>",
"name": "<string>",
"formatLabel": "<string>",
"dimensions": "<string>",
"previewUrl": "<string>",
"readiness": "ready",
"sellerReviews": [
{
"sellerName": "<string>",
"status": "ready",
"issue": "<string>"
}
],
"placements": [
{
"placementId": "<string>",
"placementName": "<string>"
}
]
}
],
"recentActivity": [
{
"id": "<string>",
"at": "<string>",
"actor": "person",
"summary": "<string>",
"outcome": "success"
}
],
"targeting": {
"geo": [
{
"requirementId": "<string>",
"strength": "required",
"include": [
"<string>"
],
"exclude": [
"<string>"
]
}
],
"language": [
{
"requirementId": "<string>",
"strength": "required",
"include": [
"<string>"
],
"exclude": [
"<string>"
]
}
],
"device": [
{
"requirementId": "<string>",
"strength": "required",
"include": [
"desktop"
],
"exclude": [
"desktop"
]
}
],
"dayparts": [
{
"requirementId": "<string>",
"strength": "required",
"timezone": "<string>",
"windows": [
{
"days": [
"mon"
],
"startHour": 11,
"endHour": 12
}
]
}
],
"demographics": {
"age": [
{
"requirementId": "<string>",
"strength": "required",
"includeUnknownAge": false,
"allowModeledAge": false,
"minAge": 4503599627370495,
"maxAge": 4503599627370495
}
]
}
},
"channelGroups": [
{
"channelGroupId": "<string>",
"name": "<string>",
"source": {
"kind": "preset",
"presetId": "display",
"presetVersion": 4503599627370495
},
"inventory": {
"channels": [
"display"
],
"propertyTypes": [
"website"
],
"deviceTypes": [
"desktop"
],
"formatKinds": [
"image"
]
}
}
],
"frequencyCap": {
"level": "mediaBuy",
"config": {
"maxImpressions": 4503599627370495,
"per": "individuals",
"window": {
"interval": 4503599627370495,
"unit": "seconds"
}
}
},
"targetingOverlay": {
"geo_countries": [
"<string>"
],
"geo_countries_exclude": [
"<string>"
],
"geo_regions": [
"<string>"
],
"geo_regions_exclude": [
"<string>"
],
"geo_metros": [
{
"system": "nielsen_dma",
"values": [
"<string>"
]
}
],
"geo_metros_exclude": [
{
"system": "nielsen_dma",
"values": [
"<string>"
]
}
],
"geo_postal_areas": [
{
"country": "US",
"system": "zip",
"values": [
"<string>"
]
}
],
"geo_postal_areas_exclude": [
{
"country": "US",
"system": "zip",
"values": [
"<string>"
]
}
],
"geo_places": [
{
"country": "<string>",
"system": "geonames",
"place_type": "airport",
"values": [
"<string>"
],
"system_version": "<string>",
"value_labels": {},
"ext": {}
}
],
"geo_places_exclude": [
{
"country": "<string>",
"system": "geonames",
"place_type": "airport",
"values": [
"<string>"
],
"system_version": "<string>",
"value_labels": {},
"ext": {}
}
],
"geo_proximity": [
{
"lat": 0,
"lng": 0,
"label": "<string>",
"travel_time": {
"value": 2,
"unit": "min"
},
"transport_mode": "walking",
"radius": {
"value": 1,
"unit": "km"
},
"geometry": {
"type": "Polygon",
"coordinates": [
"<unknown>"
]
},
"ext": {}
}
],
"language": [
"<string>"
],
"device_type": [
"desktop"
],
"device_type_exclude": [
"desktop"
],
"device_platform": [
"ios"
],
"device_platform_exclude": [
"ios"
],
"browser": [
"chrome"
],
"browser_exclude": [
"chrome"
],
"daypart_targets": [
{
"days": [
"monday"
],
"start_hour": 11,
"end_hour": 12,
"timezone": "inventory_local",
"label": "<string>"
}
],
"demographics": {
"age": {
"min": 75,
"include_unknown": true,
"max": 75,
"accepted_bases": [
"verified"
],
"accepted_verification_methods": [
"facial_age_estimation"
]
}
},
"age_restriction": {
"min": 56,
"verification_required": false,
"accepted_methods": [
"facial_age_estimation"
]
}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}Campaigns
Get campaign workspace
Get the assembled CampaignWorkspace projection for the campaign drill-in widget: phase, handling, budget, source, plus media-buy and creative sections. A presentation-ready view over get_campaign, not a substitute for it.
GET
/
campaigns
/
{campaignId}
/
workspace
Get campaign workspace
curl --request GET \
--url https://api.apostra.com/api/v2/buyer/campaigns/{campaignId}/workspace \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.apostra.com/api/v2/buyer/campaigns/{campaignId}/workspace"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.apostra.com/api/v2/buyer/campaigns/{campaignId}/workspace', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"campaignId": "<string>",
"advertiserId": "<string>",
"name": "<string>",
"revision": 0,
"handling": "tracking",
"phase": "draft",
"isPaused": true,
"isArchived": true,
"autonomy": {
"inventorySelection": {
"mode": "manual",
"source": "inherited"
},
"rebriefing": {
"mode": "manual",
"source": "inherited"
}
},
"createdAt": "<string>",
"updatedAt": "<string>",
"catalogId": "<string>",
"catalogArchived": true,
"brief": "<string>",
"mode": "review",
"flight": {
"startAt": "<string>",
"endAt": "<string>"
},
"budget": {
"total": 123,
"currency": "<string>",
"dailyCap": 123,
"pacing": "even"
},
"audienceConfig": {
"targetAudienceIds": [
"<string>"
],
"suppressAudienceIds": [
"<string>"
]
},
"source": {
"kind": "interchange",
"sellerId": "<string>",
"freshness": "live",
"lastSyncedAt": "<string>"
},
"sellerIds": [
"<string>"
],
"labels": {},
"readiness": {
"attention": [
"blocked"
],
"blockers": [
{
"code": "<string>",
"message": "<string>"
}
],
"status": "ready",
"reasons": [
"no_budget"
],
"nextAction": {
"action": "<string>",
"label": "<string>",
"params": {}
}
},
"spend": {
"state": "available",
"value": {
"total": 123,
"currency": "<string>"
},
"source": "<string>",
"asOf": "<string>"
},
"pacing": {
"state": "available",
"value": {
"percent": 123,
"verdict": "behind"
},
"source": "<string>",
"asOf": "<string>"
},
"outcome": {
"state": "available",
"value": {
"label": "<string>",
"actual": 123,
"unit": "<string>",
"verdict": "working",
"target": 123
},
"source": "<string>",
"asOf": "<string>"
},
"mediaBuys": [
{
"mediaBuyId": "<string>",
"sellerId": "<string>",
"name": "<string>",
"phase": "draft",
"isPaused": true,
"budget": {
"total": 123,
"currency": "<string>"
},
"spend": {
"state": "available",
"value": {
"total": 123,
"currency": "<string>"
},
"source": "<string>",
"asOf": "<string>"
},
"sellerName": "<string>",
"channelGroup": {
"channelGroupId": "<string>",
"name": "<string>"
},
"flight": {
"startAt": "<string>",
"endAt": "<string>"
},
"delivery": {
"state": "available",
"value": {
"percent": 123
},
"source": "<string>",
"asOf": "<string>"
},
"proposalSource": {
"proposalId": "<string>",
"version": 0,
"state": "quoted"
},
"source": {
"freshness": "live",
"lastSyncedAt": "<string>"
},
"attentionNote": "<string>",
"reconciliation": {
"required": true,
"since": "<string>",
"reason": "<string>"
}
}
],
"creatives": [
{
"creativeId": "<string>",
"name": "<string>",
"formatLabel": "<string>",
"dimensions": "<string>",
"previewUrl": "<string>",
"readiness": "ready",
"sellerReviews": [
{
"sellerName": "<string>",
"status": "ready",
"issue": "<string>"
}
],
"placements": [
{
"placementId": "<string>",
"placementName": "<string>"
}
]
}
],
"recentActivity": [
{
"id": "<string>",
"at": "<string>",
"actor": "person",
"summary": "<string>",
"outcome": "success"
}
],
"targeting": {
"geo": [
{
"requirementId": "<string>",
"strength": "required",
"include": [
"<string>"
],
"exclude": [
"<string>"
]
}
],
"language": [
{
"requirementId": "<string>",
"strength": "required",
"include": [
"<string>"
],
"exclude": [
"<string>"
]
}
],
"device": [
{
"requirementId": "<string>",
"strength": "required",
"include": [
"desktop"
],
"exclude": [
"desktop"
]
}
],
"dayparts": [
{
"requirementId": "<string>",
"strength": "required",
"timezone": "<string>",
"windows": [
{
"days": [
"mon"
],
"startHour": 11,
"endHour": 12
}
]
}
],
"demographics": {
"age": [
{
"requirementId": "<string>",
"strength": "required",
"includeUnknownAge": false,
"allowModeledAge": false,
"minAge": 4503599627370495,
"maxAge": 4503599627370495
}
]
}
},
"channelGroups": [
{
"channelGroupId": "<string>",
"name": "<string>",
"source": {
"kind": "preset",
"presetId": "display",
"presetVersion": 4503599627370495
},
"inventory": {
"channels": [
"display"
],
"propertyTypes": [
"website"
],
"deviceTypes": [
"desktop"
],
"formatKinds": [
"image"
]
}
}
],
"frequencyCap": {
"level": "mediaBuy",
"config": {
"maxImpressions": 4503599627370495,
"per": "individuals",
"window": {
"interval": 4503599627370495,
"unit": "seconds"
}
}
},
"targetingOverlay": {
"geo_countries": [
"<string>"
],
"geo_countries_exclude": [
"<string>"
],
"geo_regions": [
"<string>"
],
"geo_regions_exclude": [
"<string>"
],
"geo_metros": [
{
"system": "nielsen_dma",
"values": [
"<string>"
]
}
],
"geo_metros_exclude": [
{
"system": "nielsen_dma",
"values": [
"<string>"
]
}
],
"geo_postal_areas": [
{
"country": "US",
"system": "zip",
"values": [
"<string>"
]
}
],
"geo_postal_areas_exclude": [
{
"country": "US",
"system": "zip",
"values": [
"<string>"
]
}
],
"geo_places": [
{
"country": "<string>",
"system": "geonames",
"place_type": "airport",
"values": [
"<string>"
],
"system_version": "<string>",
"value_labels": {},
"ext": {}
}
],
"geo_places_exclude": [
{
"country": "<string>",
"system": "geonames",
"place_type": "airport",
"values": [
"<string>"
],
"system_version": "<string>",
"value_labels": {},
"ext": {}
}
],
"geo_proximity": [
{
"lat": 0,
"lng": 0,
"label": "<string>",
"travel_time": {
"value": 2,
"unit": "min"
},
"transport_mode": "walking",
"radius": {
"value": 1,
"unit": "km"
},
"geometry": {
"type": "Polygon",
"coordinates": [
"<unknown>"
]
},
"ext": {}
}
],
"language": [
"<string>"
],
"device_type": [
"desktop"
],
"device_type_exclude": [
"desktop"
],
"device_platform": [
"ios"
],
"device_platform_exclude": [
"ios"
],
"browser": [
"chrome"
],
"browser_exclude": [
"chrome"
],
"daypart_targets": [
{
"days": [
"monday"
],
"start_hour": 11,
"end_hour": 12,
"timezone": "inventory_local",
"label": "<string>"
}
],
"demographics": {
"age": {
"min": 75,
"include_unknown": true,
"max": 75,
"accepted_bases": [
"verified"
],
"accepted_verification_methods": [
"facial_age_estimation"
]
}
},
"age_restriction": {
"min": 56,
"verification_required": false,
"accepted_methods": [
"facial_age_estimation"
]
}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}Authorizations
API key or access token
Path Parameters
Unique identifier for the campaign
Minimum string length:
1Example:
"cmp_987654321"
Response
Get campaign workspace
Required range:
-9007199254740991 <= x <= 9007199254740991Available options:
tracking, managing Available options:
draft, active, ending, completed, canceled Show child attributes
Show child attributes
Available options:
review, record Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
- Option 1
- Option 2
- Option 3
- Option 4
Show child attributes
Show child attributes
- Option 1
- Option 2
- Option 3
- Option 4
Show child attributes
Show child attributes
- Option 1
- Option 2
- Option 3
- Option 4
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Required array length:
1 - 25 elementsShow child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes