apostra
SDK (python -m pip install apostra) so the job runs on a schedule with fixed,
typed requests and no model in the loop. Use the V3 MCP for the agent that
plans and manages campaigns. Both work on the same account data and permissions.
You need REST rather than MCP for scheduled jobs, backend services and any step
where your code, not a model, picks the operation. A CSV download and a recurring
cloud-storage feed are not V3 operations; the table says where each lives.
Which API for which job
The two surfaces publish separate input contracts, and HTTP can be stricter.
Use the OpenAPI document for HTTP clients and
tools/list for MCP
clients. The Python SDK is generated from the same OpenAPI document, and its
generated manifest lists the public V3 operations. Some administration, ingestion and lifecycle APIs remain on
v2.
A first delivery read in Python
APOSTRA_API_KEY from
the environment, or the sign-in from apostra login for local development.
Limits your pipeline has to handle
- A date range is inclusive, in UTC, and at most 90 days. Lifetime reads use
range: {"lifetime": true}. - Follow every page the response returns before treating a window as complete.
- A metric a seller did not report comes back as unavailable, never as zero.
- Every row carries a
finalitylabel: Official, Snapshot or unavailable. Rows of different finality are not added together. - Delivery is not real time. A successful response does not mean every seller has reported every event.
- A V3 MCP OAuth token is rejected on the HTTP API and the reverse. An M2M token works on the HTTP API only.
When not to use Apostra
- You need reporting from one platform only and no cross-seller view. That platform’s own reporting API, such as the Amazon Ads, Google Ads or Meta reporting APIs, is more direct.
- You need hourly figures. Buyer reporting is day-grain.
- You want a raw event feed with no aggregation. A CSV aggregate is not a raw event feed, and Data Delivery supports specific data types and cadences.
Next step
https://api.apostra.com/mcp/v3 as in Connect in five minutes.