Sources / REST APIMenu

REST API

Read Tapll's numbers from your own scripts and tools with an organization API key: sessions, people, ASO, competitors, web traffic, crashes and revenue.

Updated · Markdown · Ask Claude · Ask ChatGPT

The REST API gives scripts the same reads the panel shows, with the same definitions: a number you fetch is the number on the screen. It is read-only. It comes with the Pro and Studio plans.

Create a key

Open Settings → Organization → API keys and create a key. It starts with tapll_api_ and is shown once; store it as a secret. A key acts with its own role and on behalf of the person who created it: if they leave the organization, the key stops working.

Don’t confuse it with the SDK’s keys: av_… (client) and sk_… (server) send events in; tapll_api_… reads results out.

Requests

curl https://tapll.com/api/v1/projects \
  -H "Authorization: Bearer tapll_api_…"

GET /api/v1/projects lists the organization’s projects. Every other read is GET /api/v1/projects/<project>/<read>, where <project> is the slug from that list:

Read What it answers
live People in the app now, with the latest sessions and events
sessions_overview Sessions in a window against the previous one, by day, device, OS, country and version
sessions The newest sessions (page with before; filter by version, install, person, flag, traffic, f)
sessions/<sessionId> One session’s timeline with purchases and subscription state
people People using the app, grouped across devices
people/<installId>/activity One install’s activity
screens Screens by views, time and exits
retention Day-N return rates of install cohorts
crashes Crash issues and the crash-free rate
crashes/issues/<fingerprint> One crash issue in depth
revenue Revenue and subscription movement per source
revenue/mrr Recurring revenue movement
revenue/transactions Newest transactions (limit, source)
revenue/upcoming Upcoming renewals (days 7 or 30)
revenue/examples Paid sessions behind the totals
releases App versions with adoption and stability
releases/<version> One version in depth
features Features with their discovery → adoption → success funnel
features/<id> One feature in depth
data The event catalogue with counts
data/events/<name> One event in depth
search Palette search (q required)
keywords Tracked ASO phrases in a storefront (country)
keywords/<phraseId> One phrase: rank series, rivals, difficulty
keywords/discover Long-tail candidates not tracked yet
keywords/lookup Live look at one term (term required, writes nothing)
keywords/changes Listing changes with search impact
keywords/impact How search contributes sessions
competitors Watched competitors in a storefront
competitors/<appId> One competitor in depth
competitors/updates Rival release feed
web/overview Website traffic in a window
web/examples Newest website visits
web/goals, web/goals/options Goals and what a goal can count
store App Store performance in a storefront
store/markets Per-storefront markets
store/reviews Own reviews, filtered and paged
store/referrers Where product page views came from

Query parameters, where the read takes them: env (production or sandbox), days (allowed values depend on the read: 1, 7, 28, 30, 90, 180 or 365), platform (ios, android or web), before, f (repeatable dim:value filters), limit, country (2-letter storefront), term/q, channel, referrer, paid, period, plus the id in the path (sessionId, phraseId, appId, …).

A null value means “not counted” (no data reached that day or window), never zero. The full description is at /api/v1/openapi.json (OpenAPI 3.1). Limits: 300 requests a minute per key.