Atribu
API Reference

Overview

GET /api/v1/overview — KPIs, revenue, ROAS, visitors

Endpoint
GET /api/v1/overview

Returns KPIs for the current period and an automatically-computed previous period of equal length for comparison.

Scope: analytics:read

Parameters

ParameterTypeRequiredDescription
date_fromstringYesStart date (YYYY-MM-DD)
date_tostringYesEnd date (YYYY-MM-DD)
modelstringNoAttribution model (default: last_touch)
filter[dimension]stringNoFilter by dimension, e.g., filter[channel]=is:Paid Social

Attribution models

last_touch · first_touch · linear · time_decay · last_non_direct

Request

Request
curl -H "Authorization: Bearer atb_live_YOUR_KEY" \
  "https://www.atribu.app/api/v1/overview?date_from=2026-03-01&date_to=2026-03-25&model=last_touch"
Request
const response = await fetch(
  "https://www.atribu.app/api/v1/overview?date_from=2026-03-01&date_to=2026-03-25&model=last_touch",
  {
    headers: {
      Authorization: "Bearer atb_live_YOUR_KEY",
    },
  }
);
const data = await response.json();
Request
import requests

resp = requests.get(
    "https://www.atribu.app/api/v1/overview",
    headers={"Authorization": "Bearer atb_live_YOUR_KEY"},
    params={
        "date_from": "2026-03-01",
        "date_to": "2026-03-25",
        "model": "last_touch",
    },
)
data = resp.json()

Response

Success response (200 OK)
{
  "data": {
    "current": {
      "spend": 4250.00,
      "revenue": 12800.00,
      "roas": 3.01,
      "outcomes": 145,
      "attributed_outcomes": 132,
      "coverage_percent": 91.03,
      "visitors": 8420,
      "pageviews": 24100,
      "bounce_rate": 42.5,
      "avg_engaged_seconds": 185,
      "cash_revenue": 12800.00,
      "cash_payments": 48
    },
    "previous": {
      "spend": 3900.00,
      "revenue": 10200.00,
      "roas": 2.62,
      "outcomes": 128,
      "attributed_outcomes": 115,
      "coverage_percent": 89.84,
      "visitors": 7200,
      "pageviews": 20500,
      "bounce_rate": 45.2,
      "avg_engaged_seconds": 165,
      "cash_revenue": 10200.00,
      "cash_payments": 38
    }
  },
  "meta": {
    "date_from": "2026-03-01",
    "date_to": "2026-03-25",
    "profile_id": "uuid"
  }
}

Response fields

FieldTypeDescription
spendnumberTotal ad spend in reporting currency
revenuenumberAttributed cash revenue (ROAS numerator)
roasnumberReturn on ad spend (revenue / spend)
outcomesnumberTotal conversions
attributed_outcomesnumberConversions with at least one attributed touchpoint
coverage_percentnumberAttribution coverage (attributed / total x 100)
visitorsnumberUnique visitors (distinct anonymous_id)
pageviewsnumberTotal page views
bounce_ratenumberSingle-page session percentage
avg_engaged_secondsnumberAverage engaged time per session
cash_revenuenumberTotal cash payments (Stripe + MercadoPago)
cash_paymentsnumberCount of cash payment events

Previous period

The previous period is automatically computed to be the same length as the current period, ending the day before date_from. For example, if you query March 1-25 (25 days), the previous period will be February 4-28.

Deprecation policy

When an endpoint on this API is superseded, it keeps working for at least 90 days after the change is announced. During that window every response from the deprecated endpoint carries a Deprecation: @<unix-seconds> header (the date the notice went out) and, once a removal date is set, a Sunset: <HTTP-date> header naming it (RFC 8594) plus a Link: <successor-path>; rel="successor-version" pointing at the replacement. Nothing is removed with less notice than that, and every deprecation is also logged in the API changelog with its sunset date. POST /api/v1/goals is the first endpoint on this policy, superseded by POST /api/v1/goals/definitions.

On this page