Skip to main content
For a Python reporting pipeline, call Apostra’s V3 HTTP API with the 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

Keep the credential in your secret manager. The SDK reads 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 finality label: 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.
Rerun a completed window and confirm it replaces rows rather than appending duplicates before you connect a dashboard. The checks are in Build a reporting pipeline.

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

Then follow the SDK quickstart to verify the account and read delivery, and Build a reporting pipeline for the extraction job. Pair it with an agent by connecting a coding agent to https://api.apostra.com/mcp/v3 as in Connect in five minutes.

Sources