Atribu
API Reference

Profile & Data Quality

The profile's own settings and the reads that say whether its numbers can be trusted.

Everything under /api/v1/profile and /api/v1/quality is a property of the profile rather than of a date range: how it is configured, how fresh its attribution is, and how much of its traffic and revenue can be explained at all.

The four reads worth knowing by name

routequestion it answers
GET /profile/readinessWhat is still missing, in order, and the one next thing to do about it.
GET /profile/freshnessWhen this profile's attribution was last recomputed. A dashboard that looks wrong is often just not recomputed yet.
GET /quality/attributionHow many conversions carry a touch at all — attribution coverage, not accuracy.
GET /trustThe trust signals behind the dashboard's own honesty banners.

GET /profile is the profile's rendering context: name, currency, PII mode, entitlements, and the legacy onboarding_completed boolean.

`onboarding_completed` is not readiness

It means one thing: a person pressed Finish in the setup wizard. Every wizard step is skippable, so it is not evidence that any step is done. Use readiness for that, and this only to tell "has been through onboarding and is still missing things" from "nobody has started".

Attribution windows

GET / PATCH /api/v1/profile/attribution-settings read and write the click, view-through, first-touch and cash windows. They are documented in full, with both tracks, on Attribution windows — including the part that matters most: every successful PATCH queues a full-profile replay, because a window change redefines which touches attach to which conversion retroactively.

UTM health

GET /api/v1/quality/utm, /quality/utm/anomalies and POST /quality/utm/refresh are the instrumentation audit: links that lost their parameters, campaigns whose UTMs disagree with the ad they came from, sudden drops in tagged traffic. POST /quality/utm/refresh runs the audit now rather than waiting for the scheduled pass.

MethodPathWhat it does
GET/api/v1/profileGet the authenticated profile's rendering context
PATCH/api/v1/profileUpdate the authenticated profile's settings
GET/api/v1/profile/attribution-settingsGet the profile's attribution windows
PATCH/api/v1/profile/attribution-settingsUpdate the profile's attribution windows
POST/api/v1/profile/audit-eventsStamp one allowlisted UI-interaction audit event
GET/api/v1/profile/bio-pageThe profile's hosted bio-page handle and config
PUT/api/v1/profile/bio-pageSet the bio-page handle and config
GET/api/v1/profile/bio-page/slug-availabilityWhether a bio-page handle is free
GET/api/v1/profile/brandingThe profile's report/email branding
PUT/api/v1/profile/brandingUpdate the profile's branding (non-logo fields)
POST/api/v1/profile/branding/logoUpload the profile's logo
DELETE/api/v1/profile/branding/logoRemove the profile's logo
POST/api/v1/profile/creative-analysis/backfillMark a profile's back catalogue for creative analysis
GET/api/v1/profile/dark-messaging-spendEstimate revenue at risk from unattributed Instagram DM conversations
GET/api/v1/profile/freshnessGet when this profile's attribution data was last recomputed
GET/api/v1/profile/knowledge-base/documentsList a profile's knowledge-base documents
POST/api/v1/profile/knowledge-base/documentsAdd a document to the knowledge base
GET/api/v1/profile/knowledge-base/documents/{documentId}Get one knowledge-base document
PATCH/api/v1/profile/knowledge-base/documents/{documentId}Edit a knowledge-base document
DELETE/api/v1/profile/knowledge-base/documents/{documentId}Remove a knowledge-base document
PUT/api/v1/profile/outcome-definitionsReplace one family of outcome definitions
GET/api/v1/profile/pacingThe profile's monthly budget and outcome goal
PUT/api/v1/profile/pacingSet the profile's monthly budget and outcome goal
POST/api/v1/profile/payments/import/commitCommit a previously-parsed payments import
POST/api/v1/profile/payments/import/parseParse a payments statement or sales sheet (preview)
GET/api/v1/profile/payments/import/templateGet an importer's CSV template
GET/api/v1/profile/payments/importsList past payments imports
POST/api/v1/profile/payments/imports/{importId}/undoUndo a completed Webpay import
GET/api/v1/profile/readinessGet the profile's setup checklist and the one next thing to do
POST/api/v1/profile/recomputeRecompute attribution
POST/api/v1/profile/recompute-fxRe-normalise the profile's conversions after a currency change
GET/api/v1/profile/recompute-statusIs a recompute still running?
GET/api/v1/profile/share-destinationThe profile's default destination for organic share links
PUT/api/v1/profile/share-destinationSet or clear the default share destination
GET/api/v1/qualityGet attribution data quality
GET/api/v1/quality/ad-idsGet paid-Touch ad-id coverage
GET/api/v1/quality/ad-ids/url-tagsGet the URL-parameter apply state
POST/api/v1/quality/ad-ids/url-tags/applyApply Atribu's URL parameters to Meta ads
POST/api/v1/quality/ad-ids/url-tags/undoUndo a URL-parameter change
GET/api/v1/quality/attributionGet attribution coverage — how many conversions can be attributed at all
GET/api/v1/quality/instrumentation-healthGet instrumentation health
GET/api/v1/quality/itpGet Safari ITP exposure
GET/api/v1/quality/utmGet UTM / tracking-health quality signals
GET/api/v1/quality/utm/anomaliesGet the UTM anomaly breakdown
POST/api/v1/quality/utm/refreshRun the UTM health audit now
GET/api/v1/trustGet attribution trust signals

Generated from openapi.json. The full request and response schema for every operation is in the OpenAPI document.

Next steps

On this page