Quickstart
From zero to your real profit number in five minutes. Conventions in full:
README.md.
1. Create a token
Settings → API → Create token (Max and Enterprise — the api_access feature.
MCP is separate and free on every plan).
Leave the write option off unless you intend to mutate. A read token
authorizes GET/HEAD only; everything in this quickstart is a read.
The raw token is shown once. Analify stores only a SHA-256 hash — a lost
token can't be recovered, only revoked and re-created.
export ANALIFY_TOKEN="anlfy_..."2. Find your organization and what's connected
Every endpoint needs ?organizationId=. The cheapest call in the API tells you
what you're working with — a plain database read, no date range, no fan-out to
any platform:
curl -s "https://analify.scalyax.ai/api/core/integrations?organizationId=$ORG" \
-H "Authorization: Bearer $ANALIFY_TOKEN"Each row: { id, platform, status, account_id, account_name, connect_type, account_timezone, last_synced_at, last_error }. id is the integration UUID
the per-store endpoints take. Credentials are never returned.
Your organization id is a UUID, visible in the dashboard URL on the
organization settings page.
3. Ask the only question that matters
curl -s -G "https://analify.scalyax.ai/api/analytics/blended/business-overview" \
-H "Authorization: Bearer $ANALIFY_TOKEN" \
--data-urlencode "organizationId=$ORG" \
--data-urlencode "from=2026-08-01" \
--data-urlencode "to=2026-08-16" \
--data-urlencode "compare=true"You get { current, previous } in one response — never call an endpoint
twice to compare periods.
Now divide by 100. Every money field on the Analytics API is an integer in
piasters:
"netProfitMinor": 1250050 → EGP 12,500.50
Getting this wrong inflates every number 100×. It is the most common mistake
consumers of this API make. Ratios (roas, mer, marginPct) are unitless and
are not scaled.
4. Understand what you just read
That response is blended profit — revenue minus ad spend minus shipping
minus COGS minus returns — not a platform's idea of performance. If you want
the platform's own numbers instead, unchanged, that's a different layer:
| You want | Use | Money arrives as |
|---|---|---|
| The number Analify would show | Analytics API | integer piasters, always |
| Exactly what Meta/Shopify/Bosta said | Core API (/api/core/**) | the platform's own unit |
Read Core concepts next — particularly why platform ROAS
misleads on a COD store, and why a profit number is only as good as your COGS
coverage.
5. Check your profit is actually trustworthy
Profit needs cost data, and Analify can't invent it:
curl -s "https://analify.scalyax.ai/api/core/cogs/coverage?organizationId=$ORG" \
-H "Authorization: Bearer $ANALIFY_TOKEN"Low coverage means the profit figure in step 3 is a partial picture. Fill it in
with POST /api/core/cogs/bulk — costPerUnit in piasters — or sync it
nightly (Recipes).
Prefer to skip writing HTTP calls entirely? Connect via MCP and let Claude, Cursor or ChatGPT call the API for you.
Next
- Core concepts — blended profit, RTO, COGS confidence, timezones
- Recipes — daily profit report, settlement reconciliation, COGS sync
- README — auth, conventions, rate limits, caching, error codes
- Core API — the raw platform pass-through layer
Things that will trip you up
| Symptom | Cause |
|---|---|
400 Organization ID required | ?organizationId= missing — required even when the path already carries an org slug or integration id |
| Every money number is 100× too big | You didn't divide piasters by 100 |
403 on a valid token | Token belongs to a different org, or you attempted a mutation with a read token, or the plan lacks api_access |
| Two platforms disagree about "today" | Each ad account and store reports in its own timezone — see Core concepts |
| Polling returns an identical body | The route is cached (60s if the range includes today, 300s if fully past) |
| Empty series on a long TikTok range | TikTok's own daily-trend history is ~30 days — see date-limits.md |
Updated 3 days ago
