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 wantUseMoney arrives as
The number Analify would showAnalytics APIinteger piasters, always
Exactly what Meta/Shopify/Bosta saidCore 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

SymptomCause
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 bigYou didn't divide piasters by 100
403 on a valid tokenToken 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 bodyThe route is cached (60s if the range includes today, 300s if fully past)
Empty series on a long TikTok rangeTikTok's own daily-trend history is ~30 days — see date-limits.md

Did this page help you?