Declare a property
curl --request POST \
--url https://api.interchange.io/api/v2/storefront/property-roster/properties \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "<string>",
"property": {
"propertyId": "<string>",
"name": "<string>",
"identifiers": [
{
"type": "<string>",
"value": "<string>"
}
],
"tags": [
"<string>"
]
}
}
'import requests
url = "https://api.interchange.io/api/v2/storefront/property-roster/properties"
payload = {
"domain": "<string>",
"property": {
"propertyId": "<string>",
"name": "<string>",
"identifiers": [
{
"type": "<string>",
"value": "<string>"
}
],
"tags": ["<string>"]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
domain: '<string>',
property: {
propertyId: '<string>',
name: '<string>',
identifiers: [{type: '<string>', value: '<string>'}],
tags: ['<string>']
}
})
};
fetch('https://api.interchange.io/api/v2/storefront/property-roster/properties', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"outcome": "declared",
"propertyKey": "<string>"
}{
"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": {}
}
}Storefront
Declare a property
Record a seller-declared property under an already-declared publisher domain. At least one of propertyId, an identifier, or name is required. A publisher-origin adagents.json declaration with the same property key supersedes the seller-declared record (outcome: already_resolved).
POST
/
property-roster
/
properties
Declare a property
curl --request POST \
--url https://api.interchange.io/api/v2/storefront/property-roster/properties \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "<string>",
"property": {
"propertyId": "<string>",
"name": "<string>",
"identifiers": [
{
"type": "<string>",
"value": "<string>"
}
],
"tags": [
"<string>"
]
}
}
'import requests
url = "https://api.interchange.io/api/v2/storefront/property-roster/properties"
payload = {
"domain": "<string>",
"property": {
"propertyId": "<string>",
"name": "<string>",
"identifiers": [
{
"type": "<string>",
"value": "<string>"
}
],
"tags": ["<string>"]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
domain: '<string>',
property: {
propertyId: '<string>',
name: '<string>',
identifiers: [{type: '<string>', value: '<string>'}],
tags: ['<string>']
}
})
};
fetch('https://api.interchange.io/api/v2/storefront/property-roster/properties', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"outcome": "declared",
"propertyKey": "<string>"
}{
"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
Body
application/json
Response
Declare a property
declared: recorded as seller-declared identity. already_resolved: a publisher-origin record already covers this property — it wins, and the seller's claim is recorded on it so the declaration survives if that source later retracts the property.
Available options:
declared, already_resolved