DataFast alternative: free, open-source revenue analytics your AI agent sets up

DataFast is revenue-first web analytics: it ties payments from Stripe, LemonSqueezy, Polar, Paddle, Shopify and others to the channels that brought each customer, from $9 a month for 10k events after a 14-day trial (as of 7 November 2026). AgentFirstStack Analytics does the same job free and open source, and is built for an AI agent to run: it signs up, creates the site, connects Stripe with a restricted key, checks its own install, and reports MRR by channel, campaign, country and plan. DataFast is the better choice for its dashboard, Search Console keywords, X and Reddit mentions, Meta ad spend, a mobile SDK and years of history.

Updated

Set it up with one prompt

Paste this into your coding agent. If the site runs DataFast, the agent keeps it in place, sends the same goals to both, and passes both visitor ids through checkout while you compare.

Paste this into Claude Code, Cursor or Codex

Add analytics with revenue to this project with AgentFirstStack. It's free, open-source analytics built for agents, and you can do all of it yourself: there is no signup form. 1. Read https://agentfirststack.com/llms.txt and https://analytics.agentfirststack.com/llms.txt. 2. If this project's .env already has AGENTFIRSTSTACK_API_KEY, use it and read AGENTFIRSTSTACK.md. Otherwise get a key: curl -X POST https://agentfirststack.com/v1/signup, and save api_key in .env as AGENTFIRSTSTACK_API_KEY and in the production secrets. 3. Find what the site uses today. If it runs DataFast, note its website id, every goal it sends (window.datafast("...") calls) and every checkout that passes datafast_visitor_id, and don't remove any of it. 4. Create a site for the production domain and serve the snippet first-party: a first-party domain (one CNAME), or else the path proxy from the install answer. Create a goal for each DataFast goal with the same name, and send the same events with afsa('event', ...). 5. Revenue: wherever a checkout passes datafast_visitor_id, also pass afsa.visitorId(): metadata.afs_visitor_id on Stripe (and subscription_data.metadata for subscriptions), customData.afs_visitor_id on Paddle, metadata.afs_visitor_id on Polar, checkout[custom][afs_visitor_id] on LemonSqueezy. For Stripe, ask me for a restricted key with Webhook Endpoints Write and Checkout Sessions, Invoices, Charges and Subscriptions Read, and connect it with backfill_days 90. For the others, connect their webhook. 6. If you can read DataFast's API (DATAFAST_TOKEN or DATAFAST_SITE_KEY in the environment, or its CLI already logged in), import its daily history up to today: its timeseries with interval=day and fields visitors,sessions,pageviews, sent to POST /v1/sites/:id/imports with source "other" and tool "datafast" (sessions as visits). 7. Deploy (or tell me to), open the site with ?afsa_debug=1, run verify, then GET https://agentfirststack.com/v1/setup?services=analytics until it says ready or tells you what's left. 8. Write the site id and the env var name (never a key) in AGENTFIRSTSTACK.md, and create a claim link for me with POST https://agentfirststack.com/v1/claim-link. Tell me what you set up and imported, how many payments came in and found their visit, and give me the claim link. Leave DataFast installed until I say otherwise.

What DataFast is

DataFast calls itself "Revenue-first analytics". Its manual for agents says it attributes "revenue, MRR, LTV, subscriptions, upgrades, downgrades, cancellations, and churn" to traffic sources, from Stripe, LemonSqueezy, Polar, Shopify, WooCommerce, Paddle, Dodo Payments and others (datafa.st/llms.txt, as of 7 Nov 2026). With Stripe Checkout you pass DataFast's cookies into the session's metadata, and "No webhook setup is required" (Stripe Checkout API).

Its default script "uses cookies for visitor identification", which DataFast says may need a cookie banner; a cookieless script uses a salt that "rotates about every 24 hours", which DataFast says makes attribution over weeks or months less complete (GDPR and cookieless tracking). A managed proxy serves the script from a subdomain of yours with one CNAME to proxy.datafast.io (Managed reverse proxy). Crawler visits come from a server package, @datafast/ai-crawl, grouped into AI answers, indexing and training, with IP verification (Bot traffic tracking).

For agents there's a REST API, a CLI and an MCP server at datafa.st/api/mcp (OAuth or a token). A person creates the account and the first token: datafast login "opens the DataFast dashboard API tab" to make one. Over MCP, "Connecting or disconnecting providers is dashboard-only" (MCP tools); the REST API has connect endpoints for Stripe (a restricted key: Connect Stripe), Paddle, Polar and LemonSqueezy. DataFast also imports Plausible exports ("Next is Google Analytics", its FAQ says), shows Google Search Console keywords, X and Reddit mentions, and Meta ad spend through Meta's OAuth (Meta ads attribution), and has a React Native SDK and mobile apps.

DataFast's plans (the pricing section on datafa.st, as of 7 Nov 2026; yearly billing gives "2 months free"):

Monthly eventsStarterGrowth
10k$9 a month$19 a month
100k$19$39
200k$29$59
500k$49$99
1M$69$139
2M$89$179
5M$129$259
10M$169$339
10M+$199$399
Websites and team members1 and 130 and 30
Data retention3 years5+ years
X and Reddit mentions, X link attributionNot includedIncluded

Both plans list "100K AI bot requests" and "API, CLI & MCP", and start with a "14-day free trial. No card required". Past your plan's events, "We'll continue tracking your events", but the dashboard needs a larger plan.

How AgentFirstStack does it

The question is the same: which channels bring paying customers. The difference is who runs the tool, and what you pay.

  • No signup form. POST https://agentfirststack.com/v1/signup returns a key. Your agent creates the site, the goals and the payment connection, then gives you a claim link to the dashboard, where you sign in with Google.
  • Revenue from your provider. Stripe connects in one call with a restricted key (REST or the MCP tool connect_stripe_key): the service creates the webhook endpoint in your Stripe account and imports 90 days of history. Polar, Paddle and LemonSqueezy connect by webhook; anything else goes through the payments and subscriptions API. Each payment joins its visit through afsa.visitorId() in the checkout's metadata, and renewals keep the customer's first source.
  • MRR by source. MRR, ARR and ARPU; new, expansion, contraction, churned and reactivation MRR; churn rates and trial conversion, by channel, campaign, country or plan. More on the revenue and MRR page.
  • The reports DataFast users rely on. A visitor list with generated names, each visitor's timeline, journeys to a goal with time to complete, insights (first-visit purchase rate, days and visits to purchase, revenue share by device, OS and browser, top converting events, a day by hour heatmap), realtime with a map, annotations with automatic traffic-spike notes, saved funnels, goal and payment alerts, weekly reports, exclusions, and new and returning visitors.
  • AI crawlers. Your server reports bot requests (POST /v1/sites/:id/crawls), classified by user agent (AI training, AI search and AI assistant bots, search engines, SEO tools, link previews) and counted apart from visitors. GET /v1/sites/:id/ai-search puts them next to the visitors AI assistants send. User agents aren't checked against the bots' IP ranges, so a spoofed one counts as the bot it claims.
  • Served from your domain. A first-party domain (POST https://agentfirststack.com/v1/first-party-domains with {"hostname":"edge.example.com"}, one CNAME to fp.agentfirststack.com) serves analytics, tags and replay from your subdomain with no server code. A path proxy is the alternative.
  • Cookieless by default. A visitor is a hash of a daily salt, the site, the IP address and the user agent, and nothing is stored in the browser. Persistent mode, opt-in, keeps a random id in localStorage so visits on different days link.
  • More on the same key. A tag manager that sends conversions to the ad platforms' APIs, session replay and email inboxes, free on the hosted version.

Side by side

DataFastAgentFirstStack Analytics
PriceFrom $9 a month (Starter, 10k events) or $19 (Growth); 14-day trial, no cardFree hosted service with fair-use limits
AccountA person signs up and creates the token in the dashboardPOST /v1/signup, one request; a claim link for the owner
Agent accessREST API, CLI and MCP; over MCP, payment providers are connected in the dashboard, while REST has connect endpointsREST and MCP for every step, Stripe connection included
Payment providersStripe, LemonSqueezy, Polar, Paddle, Shopify, WooCommerce, Dodo Payments and a payments APIStripe (one call, 90 days of history), Polar, Paddle and LemonSqueezy by webhook, and a payments and subscriptions API
Subscription metricsMRR, LTV, churn, upgrades, downgrades and cancellationsMRR, ARR, ARPU, MRR movements, churn rates and trial conversion; no LTV
Visitor identityCookies by default; a cookieless script that rotates dailyCookieless by default, rotating daily; persistent mode in localStorage
First-party servingManaged proxy (CNAME to proxy.datafast.io) or proxy guides for 12 stacksFirst-party domain (CNAME to fp.agentfirststack.com) or a path proxy
AI crawlersServer package, with IP verification; 100K bot requests includedServer-reported, classified by user agent only
ImportsPlausible exportGA4, Plausible or any tool's daily totals, DataFast included, with a check that the numbers match
Search keywords and social mentionsGoogle Search Console keywords; X and Reddit mentionsNone
Ad spendMeta Ads through OAuthDaily costs by API or CSV, any platform, for ROAS, CPA and CAC
Mobile appsReact Native SDK; iOS and Android appsWebsites; an app's backend can send server events
History3 years (Starter), 5+ years (Growth)400 days on the hosted service
SourceHosted serviceAGPL-3.0, self-hostable on Cloudflare; browser scripts MIT

When to choose which

Use DataFast if

  • You'll open the dashboard every day and want its charts and mobile apps.
  • You want Search Console keywords, X and Reddit mentions, or Meta ad spend pulled in for you.
  • You sell through Shopify, WooCommerce or Dodo Payments and want a native connection.
  • Your sales cycle runs over weeks and you're fine with its cookie script (and a consent banner where the law asks), so anonymous visitors link across days.
  • You need more than 400 days of history.

Use AgentFirstStack if

  • An AI agent should set up analytics and revenue from nothing, Stripe included, and keep them working without you creating accounts or tokens.
  • You want MRR, churn and trial conversion split by campaign, country or plan, through an API and MCP.
  • You want it free, open source, or on your own Cloudflare account.
  • You also want server-side conversion tracking, session replay or an inbox for your agent on the same key.

Moving from DataFast

  1. Find it. The tags service's site scan recognises DataFast's script and keeps its website id, and the setup check's migrate.tools row lists it until its history is brought over.
  2. Goals. Each window.datafast("signup") call gets an afsa('event', 'signup') next to it and an event goal with the same name. Goals apply to stored data, so one created after the events started still counts them.
  3. Daily history. DataFast's timeseries API (or datafast analytics timeseries) returns visitors, sessions and pageviews per day. Your agent sends them as POST /v1/sites/:id/imports with {"source":"other","tool":"datafast","rows":[{"date","visitors","visits","pageviews"}]}. Imports carry visits, not money.
  4. Revenue history. It comes from your payment provider instead: the Stripe connection imports 90 days. Checkouts made while only DataFast was installed carry its visitor id, not ours, so those payments count in totals and MRR but show as Unattributed by source. Pass both ids through checkout while both run.
  5. Compare, then decide. Keep both for a week and import DataFast's daily visitors for those days too. GET /v1/sites/:id/imports/compare?tool=datafast sets our visitors next to DataFast's and says whether they're close. Remove DataFast when they are and you say so. If they aren't, the answer's note lists the usual causes, such as ad blockers, consent banners and cookie versus cookieless counting.

FAQ

Is AgentFirstStack free?

Yes. The hosted service is free with fair-use limits, including revenue, MRR and the Stripe connection. The code is open source under AGPL-3.0, with MIT browser scripts, and runs on your own Cloudflare account if you'd rather host it.

What does DataFast cost?

As of 7 November 2026, Starter is $9 a month for 10k events and Growth $19, rising to $69 and $139 at 1M events and $199 and $399 above 10M. Starter covers 1 website and 3 years of data, Growth 30 websites and 5+ years. Both start with a 14-day trial without a card.

Can an AI agent set up DataFast?

Partly. Its API, CLI and MCP server can create websites, goals, funnels and alerts once a person has signed up and created a token in the dashboard. Over MCP, payment providers are connected in the dashboard; its REST API has connect endpoints for Stripe, Paddle, Polar and LemonSqueezy.

Can I bring my DataFast data over?

The daily totals, yes: visitors, sessions and pageviews from DataFast's API, imported with source other and tool datafast, then checked against our own counts for the days both run. Revenue history comes from your payment provider instead, through Stripe's 90-day import.

Does AgentFirstStack use cookies?

Not by default. A visitor is a hash of a daily salt, the site, the IP address and the user agent, so anonymous visits on different days don't link. Persistent mode, which you turn on per site, keeps a random id in localStorage instead.

Does it track AI crawlers like DataFast?

Yes, if your site has a server or edge code: it reports bot requests to the crawls endpoint, and they're classified by user agent and counted apart from visitors. Unlike DataFast, it doesn't verify the bots' IP addresses, so a spoofed user agent counts as the bot it claims.

Product names belong to their owners. AgentFirstStack isn't affiliated with DataFast.