Skip to main content

Attribution API

A source that brings a thousand signups and no customers is worth less than one that brings twenty signups and five customers. Attribution joins where each waitlist signup came from to who is paying you in Stripe.

Get an API key → Attribution guide

What exists today

  • For each source it reports signups, confirmed, invited, paying now and ever paid, plus current MRR and collected revenue per currency.
  • Group by referring site, UTM source, UTM campaign, or by referral code to see which existing signup brought in paying customers.
  • Source is first touch, recorded on the signup itself. The hosted waitlist page and the script widget capture it from the referrer and the page URL with no cookie and no browser storage, so it needs no consent banner. The referrer is stored as a hostname only.
  • It only covers people who signed up through a Launch waitlist form, page or widget. It is not page analytics: it knows nothing about visitors who never signed up.
  • Paying and revenue come from your connected Stripe account, matched by email. Without Stripe the funnel still works and paying is zero.
  • Sources are recorded on every plan, so the report has history on the day you upgrade.

Endpoints

GET /v1/attribution Funnel and money per source. group_by: referrer, utm_source, utm_campaign, referral_code
POST /v1/waitlist/signups Pass a source object from your own form

Full reference with request and response schemas: docs.nordva.dev. Every response uses the same envelope and stable error codes.

MCP tools

The same operations are available to Claude Code, Claude Desktop and Cursor through the Nordva MCP server at mcp.nordva.dev:

  • get_attribution_report

Arguments, example prompts and client setup →

Questions

Do I need a tracking script?
No. There is nothing to install beyond the waitlist form you already use. The source is read once, when the form page loads, and sent with the signup.
Is this a replacement for web analytics?
No. It answers one question, which sources produce customers, and only for people who signed up through Launch. Pageviews, sessions and funnels are out of scope.
What about customers who never joined my waitlist?
They are not in this report, because they have no recorded source. They still appear in Revenue and in Contacts.