Pull your account data — revenue attributed to each post, itemized purchases, link clicks, and self-report attribution — over a simple read API, or as MCP tools an agent can call directly. Everything is confidence-scored and directional, never sold as deterministic.
Paste api.txt into Claude / ChatGPT and ask it to pull & analyze your data.
On the MCP page, flip the scope toggle to Read only and generate. You get an atb_… token that can only read — any write is refused with 403— so it is safe to drop in a script or hand to an agent. Send it as a Bearer header; every response is scoped to that token's project.
curl -s https://api.attribura.com/v1/overview \
-H "Authorization: Bearer atb_your_read_token"All GET, all JSON. List endpoints take ?since= (RFC-3339) and ?limit= (1–500, default 100), newest first. Money is always in cents.
/v1/overviewHeadline revenue — 30-day + all-time, by source.
{ revenue_cents_30d, events_30d, revenue_cents_all, events_all, by_source[] }
/v1/distributions/performanceThe money-per-post table — every post ranked by revenue. The core view.
[{ distribution_id, channel, hook, clicks, installs, conversions, revenue_cents, proceeds_cents, subscriptions }]
/v1/revenue/eventsItemized revenue — each purchase joined back to the post that drove it.
[{ id, source, kind, amount_cents, currency, occurred_at, method, distribution_id, channel, hook }]
/v1/revenue/salesApple's itemized App Store sales — the only revenue feed with a country in it. A line is one storefront's sales of one product on one day, not one customer. Amounts are what Apple paid you, in that storefront's own currency.
{ configured, archive_from, archive_to, fx, sales: [{ day, country_code, product_type, in_app, currency, units, proceeds_cents, usd_cents }], more, units, countries }
/v1/self-reports/summarySelf-report rollup — verified vs dark-social share, revenue, per-channel.
{ reports_30d, verified_share, dark_social_share, self_report_revenue_cents_30d, by_channel[] }
/v1/onboarding/funnelYour in-app onboarding, step by step, split by the channel each run came from. Steps above the “how did you hear about us?” question carry no split — a run that quit before answering never gave a channel. Needs iOS SDK 0.2.1+.
{ days, since, version, versions[], runs, steps: [{ index, step, runs, by_channel, caveat }], edges: [{ key, label, rate, basis, caveat }], source_index, dark_steps, cohort_caveat, channels, tail[], identified_runs }
/v1/self-reportsItemized “how did you hear about us?” answers.
[{ id, channel, raw_answer, method, confidence, distribution_id, external_user_id, occurred_at }]
/v1/contentEvery post a connected account posted or imported + latest engagement stats + ready-to-share links. `measured: false` means nobody has counted it yet, so read its zeros as blanks.
{ items: [{ distribution_id, channel, title, hook, views, likes, comments_count, measured, campaign_url, store_url }] }
/v1/content/:distribution_id/commentsThe imported comments for one post.
{ items: [{ id, author, text, like_count, published_at }] }
/v1/distributionsRaw posts logged for attribution, without the engagement stats.
[{ id, channel, kind, campaign_token, link_slug, external_url, hook, posted_at }]
/v1/linksTracked short links with their click counts (human clicks; bots excluded).
[{ slug, short_url, destination_url, distribution_id, clicks, created_at }]
/v1/clicksIndividual click events with the dimensions resolved at redirect time. No IP is stored; bots are flagged, not counted.
[{ occurred_at, slug, distribution_id, country, device, os, is_bot, ua, referer }]
The same data is exposed as read tools over the hosted MCP, so an agent can call them directly instead of curling. Connect once with your read token:
claude mcp add --transport http attribura \
https://api.attribura.com/mcp \
-H "Authorization: Bearer atb_your_read_token"The 35 tools a read token can call: get_context · list_creatives · get_overview · get_performance · get_revenue_events · get_store_sales · get_self_report_summary · list_self_reports · get_revenue_breakdown · get_analytics · get_store_funnel · get_onboarding_funnel · get_retention · get_reputation · list_mentions · get_store_rating · list_replies · list_projects · get_coverage · get_integrations_health · list_content · get_content_config · list_ideas · list_accounts · get_tiktok_creator_info · list_publish_jobs · list_links · list_clicks · keyword_brief · list_tracked_keywords · get_keyword_history · get_keywords_field · get_listing · suggest_keywords · list_notes. The write tools are listed too once connected — they just answer 403 on this token. Full reference in the tool catalog.
revenue_cents is gross; proceeds_cents is after the store cut, where known.dark_social_sharemeans word-of-mouth is working — it just can't be pinned to one post.