Skip to content
GROWTH DEPT.MTA

Export API

Your numbers, in your own warehouse.

curl https://mta.growthdept.ai/api/v1/exports/data-export \
  -H "Authorization: $MTA_API_KEY" \
  -H "Data-Client-ID: $MTA_BRAND_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "level": "campaign",
    "time_granularity": "DAILY",
    "period_type": "LAST_7_DAYS",
    "attribution_options": {
      "attribution_models": ["linear"],
      "attribution_windows": ["7"],
      "accounting_modes": ["accrual"]
    },
    "metrics": [{ "id": "spend" }, { "id": "revAttributed" }, { "id": "roas" }]
  }'

{"id": "a71b..."}

Your data team gets exactly what the dashboard shows, as CSV files: any level, any dates, any model and any metric. Orders, spend and matched views from systems MTA doesn't connect to can come in the same way.

Reads your store and the platforms you buy on
  • Shopify
  • Meta
  • Google Ads
  • TikTok
  • YouTube
  • Instagram
  • Snapchat
  • Pinterest
  • Microsoft Advertising
  • Amazon Ads
  • AppLovin
  • Reddit
  • LinkedIn
  • X
  • The Trade Desk
  • Vibe
  • MNTN
  • Rokt
  • impact.com
  • OpenAI Ads
  • Klaviyo

Start, check, download

Big exports arrive as files you can check.

GET /api/v1/exports/data-export/result/a71b...

{
  "status": "SUCCESS",
  "rows": 24800,
  "files": [
    { "url": "https://.../0?expires=...", "rows": 4800,
      "start_date": "2026-08-01", "end_date": "2026-08-06" },
    ...
  ],
  "columns": ["date", "...", "spend", "attributed_revenue", "roas"]
}

Ask for an export, check its status, then download the CSV files from secure links. Long ranges are split into files of up to 25,000 lines, so no download times out.

The result says how many lines each file holds and which dates it covers, so a loader can tell a finished download from a dropped one.

Keys

A key for each job, with only the access it needs.

API key settings for a demo store: the brand ID and an active key with its scopes.
Demo store. Every figure is generated.

Owners and admins create keys in settings. Each key belongs to one store and gets only the access you tick: reading exports, sending orders, sending spend or sending matched views.

A key is shown once and can be revoked at any time. A warehouse reader needs nothing but export access.

Data in

Orders, spend and views from anywhere else.

POST /api/v1/views

{
  "views": [{
    "platform": "fb",
    "campaign_id": "120200000000100",
    "ad_id": "120200000000301",
    "viewed_at": "2026-11-02T14:03:11Z",
    "order_id": "6012345678901"
  }],
  "coverage": [{ "platform": "fb", "from": "2026-11-01", "to": "2026-11-02" }]
}

Send orders from a store that isn't on Shopify, daily spend from a platform without a connector, or ad views a partner has matched to your orders. They are credited like everything else.

Brands Growth Dept already runs can have a loader copy their MTA numbers into the warehouse Growth Dept runs for them.

Numbers that add up.

Three rules every report keeps, checked by automated tests on every change.

  • 1×

    Each sale counted once

    However many platforms claim an order, its revenue is split across the touches that led to it and never counted twice.

  • = Shopify

    Totals match your store

    Orders with no tracked ad get their own Unattributed row, so changing the model moves credit between rows and never changes the total.

  • 1 currency

    Spend and revenue in yours

    Spend billed in another currency is converted once, at that day's European Central Bank rate, so ROAS never mixes two currencies.

Find out which ads really sell.

Book a 45-minute call with the Growth Dept team. We look at how you measure sales today and show you what MTA would add.