Skip to main content
Host: https://dialedapi.evomarketing.co The SDK repository is the reference client for the public endpoints. Read it before writing your own integration.

Public endpoints

Record a click

Called by the redirect application, not by brand code. It resolves a vanity-domain hit to a link, logs the click, and returns where to send the visitor.
string
required
The vanity host that was hit, without www.
string
The path after the domain. An unknown slug falls back to the domain’s root link.
string
The incoming query string. UTM values are stored on the click and forwarded to web destinations.
string
Referring URL. Falls back to the request’s own referrer header.
string
Used to detect ios, android, or desktop.
string
Two-letter country code from the edge, stored on the click.
string
Visitor IP. Hashed with a secret key for app links only, and never stored raw.
string
Where to send the visitor: the store URL for a matching mobile platform, otherwise the decorated web destination.
string
The minted evc_… token.
string
ios, android, desktop, or null.
web or app.
string
Used as the heading on the smart install page.
object
null for web links. For app links: ios_url, android_url, android_package (parsed from the Play URL’s id parameter), and fallback_url (the token-decorated web fallback).
An unresolvable domain and slug returns 404 with {"error":"link_not_found"}.

Record an install

string
required
The brand’s public pixel key.
string
required
Persistent device install ID. Stripped and limited to 128 characters. This is the deduplication key.
string
required
ios or android.
string
The evc_… click token read from the clipboard at first launch.
string
A creator code the new user typed in the app.
string
Reported app version.
string
ISO 8601 timestamp. Defaults to now.
boolean
boolean
true when this install ID was already recorded.
object
install_id, platform, attributed, resolution_method (clipboard, code, ip, or unattributed), confidence, link, code, and creator. link, code, and creator are null when unattributed.

Record an event

string
required
The brand’s public pixel key.
string
default:"purchase"
One of purchase, renewal, refund, trial, signup, lead, custom, install.
string
default:"pixel"
Send sdk from a mobile app; anything else is recorded as pixel.
string
The evc_… token captured on the landing page. A token minted for another brand’s link never credits this brand.
string
A creator code the customer typed at checkout.
string
Deduplication key, limited to 128 characters. Always send one.
string
Your own user id, or the persistent install ID for SDK purchases — that is what lets a purchase inherit its install’s attribution.
number
Value in major units. amount_cents is accepted instead.
string
default:"USD"
USD, CAD, EUR, GBP, or AUD. Anything else falls back to USD.
string
ISO 8601 timestamp. Defaults to now.
boolean
boolean
true when the same (brand, event_type, transaction_id) already exists.
403 for an invalid pixel key, 422 with invalid_event_type for an unknown event type.

Provider webhook

string
required
revenuecat, superwall, stripe, shopify, or apple.
string
required
The connection’s evw_… inbound token. This is the baseline authentication.
The body is the provider’s own payload, verified with that provider’s signature scheme — see Billing connectors.
boolean
integer
Ledger rows written.
integer
Events that were duplicates or map to no ledger row.
404 unknown_connection, 401 on a signature failure, 422 on an unparseable payload. Any error sets the connection’s status to error with last_error.

Portal endpoints

Authenticated by the client portal session and always scoped to the brand it resolves. Shared domains and another brand’s data are never writable.
GET /api/client/attribution/setup is the only portal endpoint that returns the brand’s pixel key. The links list never exposes pixel keys or raw creator user ids — creator attribution comes back as an { id, name } object.

Internal endpoints

EVO team only. Requires an admin JWT with user_typ: "evo". Surfaced in the admin console under Sales Attribution. Connections are created by the brand in its own portal, so there is no internal create endpoint.