IntegrationItemListResponse
CompanyAdvertisingAnalyticsMetaAPI
Properties
| Name | Type | Description |
|---|---|---|
| success | boolean | |
| items | array | Newest first (by internal_ad_id or alert_id). |
| pagination | object | |
| meta | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/adspendspy/main/json-schema/adspendspy-integration-item-list-response-schema.json",
"title": "IntegrationItemListResponse",
"x-generated": "2026-10-27",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_original/adspendspy-api-openapi.json#/components/schemas/IntegrationItemListResponse",
"type": "object",
"required": [
"success",
"items",
"pagination",
"meta"
],
"properties": {
"success": {
"type": "boolean",
"enum": [
true
]
},
"items": {
"type": "array",
"description": "Newest first (by internal_ad_id or alert_id).",
"items": {
"$ref": "#/$defs/IntegrationItem"
}
},
"pagination": {
"type": "object",
"required": [
"next_cursor",
"has_more"
],
"properties": {
"next_cursor": {
"type": [
"string",
"null"
],
"description": "Send as cursor with the same filters for the next page; null on the last page."
},
"has_more": {
"type": "boolean"
}
}
},
"meta": {
"type": "object",
"required": [
"currency",
"spend_basis",
"spend_is_estimate"
],
"properties": {
"currency": {
"type": "string",
"enum": [
"EUR"
]
},
"spend_basis": {
"type": "string",
"enum": [
"latest_cumulative_estimate"
]
},
"spend_is_estimate": {
"type": "boolean",
"enum": [
true
]
}
}
}
},
"$defs": {
"IntegrationItem": {
"type": "object",
"description": "One ad.new or ad.spend_alert event; identical in polling items and webhook bodies. Media URLs are stored copies or null.",
"required": [
"id",
"event",
"occurred_at",
"currency",
"spend_is_estimate",
"brand",
"ad",
"alert"
],
"properties": {
"id": {
"type": "string",
"pattern": "^ad\\.(new|spend_alert):[0-9]+$",
"description": "Stable event id (ad.new:<internal_ad_id> or ad.spend_alert:<alert_id>); use it to deduplicate."
},
"event": {
"type": "string",
"enum": [
"ad.new",
"ad.spend_alert"
]
},
"occurred_at": {
"type": [
"string",
"null"
],
"description": "ISO 8601 with offset: first seen (ad.new) or alert created (ad.spend_alert)."
},
"currency": {
"type": "string",
"enum": [
"EUR"
]
},
"spend_is_estimate": {
"type": "boolean",
"enum": [
true
]
},
"brand": {
"type": "object",
"required": [
"page_id",
"name",
"image_url",
"url"
],
"properties": {
"page_id": {
"type": "string",
"pattern": "^[0-9]{5,25}$",
"description": "Meta advertiser page ID, kept as a string."
},
"name": {
"type": [
"string",
"null"
]
},
"image_url": {
"type": [
"string",
"null"
]
},
"url": {
"type": "string",
"description": "Advertiser page on AdSpendSpy."
}
}
},
"ad": {
"type": "object",
"required": [
"internal_ad_id",
"meta_ad_id",
"media_type",
"platforms",
"is_active",
"estimated_spend_eur",
"spend_coverage",
"url"
],
"properties": {
"internal_ad_id": {
"type": "integer",
"description": "Pass this value to ads/details.php as ad_id."
},
"meta_ad_id": {
"type": [
"string",
"null"
]
},
"ad_archive_id": {
"type": [
"string",
"null"
]
},
"headline": {
"type": [
"string",
"null"
]
},
"body_text": {
"type": [
"string",
"null"
],
"description": "Cut at 2,000 characters.",
"maxLength": 2000
},
"cta_text": {
"type": [
"string",
"null"
]
},
"landing_url": {
"type": [
"string",
"null"
]
},
"media_type": {
"type": [
"string",
"null"
]
},
"thumbnail_url": {
"type": [
"string",
"null"
]
},
"video_url": {
"type": [
"string",
"null"
]
},
"platforms": {
"type": "array",
"items": {
"type": "string",
"enum": [
"facebook",
"instagram",
"messenger",
"audience_network"
]
}
},
"start_date": {
"type": [
"string",
"null"
],
"description": "Date, format YYYY-MM-DD."
},
"is_active": {
"type": "boolean"
},
"estimated_spend_eur": {
"type": [
"number",
"null"
],
"description": "Latest cumulative estimated spend in EUR; null means unknown."
},
"spend_coverage": {
"type": [
"string",
"null"
],
"enum": [
"eu_uk",
"eu_uk_us",
"us_extrapolated",
"none"
],
"description": "Basis of the estimate: eu_uk is based on reach data that Meta publishes for the EU and UK; us_extrapolated and the US part of eu_uk_us are extrapolated; none means no estimate."
},
"url": {
"type": "string",
"description": "Ad page on AdSpendSpy."
}
}
},
"alert": {
"type": [
"object",
"null"
],
"description": "null for ad.new.",
"required": [
"alert_id",
"threshold_eur",
"spend_at_alert_eur"
],
"properties": {
"alert_id": {
"type": "integer"
},
"threshold_eur": {
"type": [
"number",
"null"
],
"description": "Alert threshold in EUR when the alert was created."
},
"spend_at_alert_eur": {
"type": [
"number",
"null"
],
"description": "Estimated spend in EUR when the alert was created."
}
}
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/adspendspy-integration-item-list-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.