Debug API
Dry-run attribution
Section titled “Dry-run attribution”POST /v1/debug/attributionTest attribution matching without recording anything. Pass the same fingerprint data the SDK would send, and Trace returns which click (if any) would match — without creating an install record.
This is useful for:
- Verifying your short links are set up correctly
- Debugging why an attribution didn’t match
- Testing the attribution flow in CI/CD
Request body
Section titled “Request body”{ "apiKey": "tr_live_xxxxxxxxxxxx", "fingerprint": { "ipAddress": "203.0.113.42", "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8)", "platform": "ANDROID", "osVersion": "14", "deviceModel": "Pixel 8", "screenWidth": 1080, "screenHeight": 2400, "screenDensity": 2.75, "locale": "en_US", "timezone": "America/New_York", "appVersion": "1.0.0", "sdkVersion": "1.0.0" }, "installReferrer": "utm_source=google&trace_click_id=abc123", "clickId": null}| Field | Type | Required | Description |
|---|---|---|---|
apiKey | string | yes | Your app’s API key |
fingerprint | object | yes | Device fingerprint (same shape the SDK sends) |
installReferrer | string | no | Android install referrer string |
clickId | string | no | Explicit click ID from a deep link |
Response
Section titled “Response”{ "attributed": true, "method": "INSTALL_REFERRER", "installId": null, "clickId": "abc123", "campaignId": "summer_sale", "deepLinkPayload": { "deepLinkPath": "/product/123", "deepLinkParams": {"color": "blue"}, "isDeferred": true }, "metadata": {}}The response shape is identical to a real attribution response, except installId is always null (since no install is recorded).
Attribution methods
Section titled “Attribution methods”The method field tells you how the match was made:
| Method | Description |
|---|---|
INSTALL_REFERRER | Matched via the Android install referrer string containing a trace_click_id |
CLICK_ID | Matched via an explicit click ID passed by the SDK |
FINGERPRINT | Probabilistic match based on device signals (screen, OS, locale, timezone) |
ORGANIC | No match found — the install would be recorded as organic |
Example
Section titled “Example”curl -X POST https://api.traceclick.io/v1/debug/attribution \ -H "Content-Type: application/json" \ -d '{ "apiKey": "tr_live_xxxxxxxxxxxx", "fingerprint": { "ipAddress": "203.0.113.42", "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8)", "platform": "ANDROID", "osVersion": "14", "deviceModel": "Pixel 8", "screenWidth": 1080, "screenHeight": 2400, "screenDensity": 2.75, "locale": "en_US", "timezone": "America/New_York", "appVersion": "1.0.0", "sdkVersion": "1.0.0" } }'