curl --request GET \
--url https://api.apostra.com/api/v2/storefront/property-roster \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.apostra.com/api/v2/storefront/property-roster"
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/storefront/property-roster', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"publishers": [
{
"domain": "<string>",
"provenance": "declared",
"adagentsStatus": "resolved",
"authorizationStatus": "authorized",
"authorizationReason": "no_file",
"lastSyncedAt": "<string>",
"formatCatalogSyncedAt": "<string>",
"identityCatalogStatus": "pending",
"formatCatalogStatus": "pending",
"properties": [
{
"propertyKey": "<string>",
"propertyId": "<string>",
"propertyType": "<string>",
"name": "<string>",
"identifiers": [
{
"type": "<string>",
"value": "<string>"
}
],
"tags": [
"<string>"
],
"provenance": "publisher_adagents",
"authorization": {
"status": "authorized",
"grain": "domain",
"reason": "no_file"
},
"declaredBySellerAt": "<string>",
"firstSeenAt": "<string>",
"lastSeenAt": "<string>"
}
],
"collections": [
{
"collectionId": "<string>",
"name": "<string>",
"tags": [
"<string>"
],
"provenance": "publisher_adagents",
"firstSeenAt": "<string>",
"lastSeenAt": "<string>"
}
],
"formats": [
{
"formatKey": "<string>",
"formatOptionId": "<string>",
"displayName": "<string>",
"formatKind": "image",
"params": {},
"appliesToPropertyIds": [
"<string>"
],
"appliesToPropertyTags": [
"<string>"
],
"applicablePropertyKeys": [
"<string>"
],
"applicablePropertyKeysTruncated": true,
"appliesToAllProperties": true,
"sellerPreference": "<string>",
"experimental": true,
"provenance": "publisher_adagents",
"firstSeenAt": "<string>",
"lastSeenAt": "<string>"
}
],
"propertyCount": 4503599627370495,
"collectionCount": 4503599627370495,
"formatCount": 4503599627370495
}
],
"totals": {
"publishers": 4503599627370495,
"authorizedPublishers": 4503599627370495,
"properties": 4503599627370495,
"collections": 4503599627370495,
"formats": 4503599627370495
},
"truncated": {
"publishers": true,
"properties": true,
"collections": true,
"formats": true
},
"coverageApplies": true,
"permissions": {
"canManagePublisherDomains": true
}
}{
"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": {}
}
}Get the property roster
The canonical property roster: every declared publisher domain with the properties and collections resolved from that publisher’s adagents.json, plus the persisted authorization outcome (authorizationStatus and, when resolved under the reason contract, authorizationReason).
curl --request GET \
--url https://api.apostra.com/api/v2/storefront/property-roster \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.apostra.com/api/v2/storefront/property-roster"
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/storefront/property-roster', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"publishers": [
{
"domain": "<string>",
"provenance": "declared",
"adagentsStatus": "resolved",
"authorizationStatus": "authorized",
"authorizationReason": "no_file",
"lastSyncedAt": "<string>",
"formatCatalogSyncedAt": "<string>",
"identityCatalogStatus": "pending",
"formatCatalogStatus": "pending",
"properties": [
{
"propertyKey": "<string>",
"propertyId": "<string>",
"propertyType": "<string>",
"name": "<string>",
"identifiers": [
{
"type": "<string>",
"value": "<string>"
}
],
"tags": [
"<string>"
],
"provenance": "publisher_adagents",
"authorization": {
"status": "authorized",
"grain": "domain",
"reason": "no_file"
},
"declaredBySellerAt": "<string>",
"firstSeenAt": "<string>",
"lastSeenAt": "<string>"
}
],
"collections": [
{
"collectionId": "<string>",
"name": "<string>",
"tags": [
"<string>"
],
"provenance": "publisher_adagents",
"firstSeenAt": "<string>",
"lastSeenAt": "<string>"
}
],
"formats": [
{
"formatKey": "<string>",
"formatOptionId": "<string>",
"displayName": "<string>",
"formatKind": "image",
"params": {},
"appliesToPropertyIds": [
"<string>"
],
"appliesToPropertyTags": [
"<string>"
],
"applicablePropertyKeys": [
"<string>"
],
"applicablePropertyKeysTruncated": true,
"appliesToAllProperties": true,
"sellerPreference": "<string>",
"experimental": true,
"provenance": "publisher_adagents",
"firstSeenAt": "<string>",
"lastSeenAt": "<string>"
}
],
"propertyCount": 4503599627370495,
"collectionCount": 4503599627370495,
"formatCount": 4503599627370495
}
],
"totals": {
"publishers": 4503599627370495,
"authorizedPublishers": 4503599627370495,
"properties": 4503599627370495,
"collections": 4503599627370495,
"formats": 4503599627370495
},
"truncated": {
"publishers": true,
"properties": true,
"collections": true,
"formats": true
},
"coverageApplies": true,
"permissions": {
"canManagePublisherDomains": true
}
}{
"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
Response
Get the property roster
The storefront property roster: every declared publisher domain with its resolved properties, canonical AdCP Collections, canonical creative formats, authorization state, and the authenticated user's management permission. AAO publisher lookup supplies publisher and community formats while authorization remains a separate live-origin decision. totals describe the storefront; the returned arrays are response-bounded and truncated says where.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
True where the response omitted rows the storefront actually has. Compare the per-publisher counts against the returned arrays to see where.
Show child attributes
Show child attributes
False when selling rights come from a platform account connection rather than adagents.json. Do not report an authorization verdict as a problem when this is false.
Show child attributes
Show child attributes