Skip to content

Commands

FlagDescription
--jsonOutput as JSON instead of human-readable tables
--verbose, -vShow request/response details for debugging

The CLI supports two auth modes:

ModeCommandUse case
User OAuthtrace loginDeveloper workflow, multi-app management
API Keytrace login --api-key=...CI/CD pipelines, legacy setups

When both are present, the CLI prefers the OAuth token. Tokens refresh automatically.

Authenticate with your Trace account. Opens your browser for OAuth by default, with interactive provider selection.

Terminal window
# Browser OAuth — interactive provider selection (recommended)
trace login
# Skip prompt, go straight to a specific provider
trace login --provider github
trace login --provider google
# Legacy API key mode (CI/CD)
trace login --api-key tr_live_your_key_here
trace login --api-key tr_live_your_key_here --region eu
FlagRequiredDescription
--providerNoOAuth provider (e.g. github, google, apple) — skips interactive selection
--api-keyNoAPI key for legacy/CI authentication (tr_live_...)
--regionNoApp region: us or eu (legacy mode only)

Available providers are fetched dynamically from the auth server. When new providers are enabled, they appear automatically — no CLI update needed.

Clear authentication tokens from local config.

Terminal window
trace logout # clear OAuth tokens (or API key if no OAuth)
trace logout --all # clear both OAuth tokens and API key

Create a new Trace app interactively.

Terminal window
trace init

Prompts for: app name, Android package, iOS bundle ID, subdomain, and region. If you’re logged in with OAuth, the app is created under your account and set as active. Otherwise falls back to anonymous creation.

Show the current authenticated user or app.

Terminal window
trace whoami

For OAuth users, displays user ID, email, auth mode, active app, and config path. For API key users, displays app name, ID, tier, and region.


List all apps in your account. Requires OAuth login.

Terminal window
trace apps list

Shows name, app ID, tier, region, and which app is currently active (*).

Set the active app for subsequent commands like trace metrics and trace installs.

Terminal window
trace apps select "My App"
trace apps select 550e8400-e29b-41d4-a716-446655440000

Matches by name (case-insensitive) or app ID.

Create a new app under your account. Alias for trace init when logged in.

Terminal window
trace apps create

Link an existing unowned app to your account using its API key. Useful for migrating apps created before user accounts were available.

Terminal window
trace apps claim --api-key tr_live_your_key_here
trace apps claim # uses API key from config if present
FlagDescription
--api-keyAPI key of the app to claim (tr_live_...)

Show current app details including tier, region, and platform identifiers.

Terminal window
trace apps info

Update app settings. Only specified fields are changed.

Terminal window
trace apps update --name "My App v2" --android-package com.example.app
FlagDescription
--nameApp display name
--android-packageAndroid package name
--android-cert-fingerprintSHA-256 cert fingerprint(s) for App Links (comma-separated)
--ios-bundle-idiOS bundle identifier
--ios-team-idApple Team ID for Universal Links
--subdomainShort link subdomain
--app-store-urliOS App Store URL (used as default for new links)
--play-store-urlGoogle Play Store URL (used as default for new links)

Regenerate the API key. The current key is immediately invalidated. Your local config is updated automatically.

Terminal window
trace apps rotate-key
trace apps rotate-key -y # skip confirmation

Regenerate the hash salt. You must update hashSalt in your SDK TraceConfig after rotating.

Terminal window
trace apps rotate-salt

View or sign the Data Processing Agreement (DPA). Required for GDPR compliance before processing EU user data.

Terminal window
# Check DPA status
trace apps dpa --status
# Accept the DPA
trace apps dpa --accept --email legal@yourcompany.com
FlagDescription
--statusShow current DPA signing status
--acceptAccept the current DPA version
--emailEmail of the person signing (required with --accept)

When using --accept, the CLI shows the DPA URL and asks for confirmation before recording the agreement. The full DPA text is available at traceclick.io/legal/dpa.

Open Stripe Checkout to upgrade your plan.

Terminal window
trace apps upgrade --tier growth
trace apps upgrade --tier scale

Add a feature add-on to your current plan. Opens Stripe Checkout in your browser.

Terminal window
trace apps addon --addon byol
FlagRequiredDescription
--addonYesAdd-on to enable (available: byol)

Requires a Growth or Scale plan. BYOL is included free on Scale — this command is for Growth plan users who want to add Bring Your Own Links ($49/month).

Open the Stripe Customer Portal to manage your subscription, update payment method, or cancel.

Terminal window
trace apps billing

Create a new short link.

Terminal window
trace links create --deep-link-path /product/123
trace links create --deep-link-path /invite/abc \
--campaign-id summer-2026 \
--fallback-url https://example.com/invite \
--expires-in-days 30
FlagRequiredDescription
--deep-link-pathYesDeep link path (e.g., /product/123)
--campaign-idNoCampaign identifier for grouping
--fallback-urlNoWeb fallback URL
--metadataNoKey=value pairs (repeatable)
--expires-in-daysNoAuto-expire after N days
--sandboxNoCreate as test link
--qrNoDisplay QR code in terminal after creation

iOS and Android store URLs are automatically pulled from your app settings.

List links with optional filtering.

Terminal window
trace links list
trace links list --campaign-id summer-2026 --limit 10
trace links list --sandbox # show only sandbox links
FlagDescription
--campaign-idFilter by campaign ID
--sandboxFilter by sandbox status
--offsetPagination offset (default: 0)
--limitNumber of links to return, max 100 (default: 50)

Get details for a specific link.

Terminal window
trace links get abc123
trace links get abc123 --qr # display QR code in terminal
FlagDescription
--qrDisplay QR code in terminal

Update a link’s settings. Only specified fields are changed.

Terminal window
trace links update abc123 --fallback-url https://example.com/new
trace links update abc123 --campaign-id winter-2026 --expires-in-days 90
FlagDescription
--deep-link-pathDeep link path
--campaign-idCampaign identifier
--ios-destinationiOS-specific destination
--android-destinationAndroid-specific destination
--fallback-urlWeb fallback URL
--metadataKey=value pairs (repeatable)
--expires-in-daysLink expiration in days

Soft-delete a link.

Terminal window
trace links delete abc123

Submit a GDPR data erasure request. At least one of --ip-address or --user-id is required.

Terminal window
trace privacy erase --ip-address 203.0.113.1
trace privacy erase --user-id user_abc123 --email admin@example.com
FlagDescription
--ip-addressIP address to erase
--user-idUser ID to erase
--emailRequester email for notification

Check the status of a previously submitted erasure request.

Terminal window
trace privacy erase-status req_abc123

Export all data for a user (GDPR subject access request). Always outputs JSON.

Terminal window
trace privacy export --user-id user_abc123
trace privacy export --ip-address 203.0.113.1

Dry-run attribution to see matching scores without recording anything. Requires --ip-address, --user-agent, and --platform. Always outputs JSON.

Terminal window
trace debug attribution \
--ip-address 203.0.113.1 \
--user-agent "Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36" \
--platform ANDROID
Terminal window
trace debug attribution \
--ip-address 203.0.113.1 \
--user-agent "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0)" \
--platform IOS \
--device-model "iPhone15,2" \
--screen-width 1179 \
--screen-height 2556 \
--screen-density 3.0 \
--locale en-US \
--timezone America/New_York
FlagRequiredDescription
--ip-addressYesClient IP address to test
--user-agentYesUser-Agent string to test
--platformYesANDROID or IOS
--os-versionNoOS version string
--device-modelNoDevice model name
--screen-widthNoScreen width in pixels
--screen-heightNoScreen height in pixels
--screen-densityNoScreen density (DPI)
--localeNoDevice locale (e.g., en-US)
--timezoneNoDevice timezone (e.g., America/New_York)
--app-versionNoApp version (default: 1.0.0)
--install-referrerNoInstall referrer string (Android)
--click-idNoSpecific click ID to match against

Clear sandbox attribution data for your app. Optionally scope to a specific IP.

Terminal window
trace debug reset
trace debug reset --ip-address 203.0.113.1

Create a new webhook endpoint for your app.

Terminal window
trace webhooks create --url https://example.com/hook --secret whsec_abc123
trace webhooks create --url https://example.com/hook --secret whsec_abc123 --events install.attributed,install.organic
# Templated webhook (no secret needed)
trace webhooks create --url https://hooks.slack.com/services/T.../B.../xxx --template slack
trace webhooks create --url https://discord.com/api/webhooks/123/abc --template discord
FlagRequiredDescription
--urlYesWebhook endpoint URL
--secretWhen no templateHMAC-SHA256 signing secret
--eventsNoComma-separated event types to filter (empty = all events)
--templateNoMessage template: slack, discord, or teams

List all webhooks configured for the app.

Terminal window
trace webhooks list

Update a webhook’s settings. Only specified fields are changed.

Terminal window
trace webhooks update <id> --url https://example.com/new-hook
trace webhooks update <id> --enabled=false
trace webhooks update <id> --events install.attributed,open.attributed
FlagDescription
--urlWebhook endpoint URL
--secretWebhook signing secret
--eventsComma-separated event types (empty = all)
--enabledEnable or disable the webhook
--templateMessage template: slack, discord, or teams (empty to remove)

Delete a webhook.

Terminal window
trace webhooks delete <id>

List available webhook message templates.

Terminal window
trace webhooks templates

Shows template ID, name, and description. Use the template ID with trace webhooks create --template <id>.

Send a test webhook to a specific webhook endpoint.

Terminal window
trace webhooks test <id>

Returns success or failure. If delivery fails, use trace webhooks deliveries to see attempt details (HTTP status, error message, response body).

List recent webhook delivery attempts with status, duration, and attempt number.

Terminal window
trace webhooks deliveries
trace webhooks deliveries --limit 10
trace webhooks deliveries --event-type install.attributed
trace webhooks deliveries --webhook-id <webhook-id>
FlagDescription
--limitNumber of deliveries to show, max 100 (default: 25)
--event-typeFilter by event type (e.g. install.attributed, open.attributed)
--webhook-idFilter by specific webhook ID

See Webhook Events for the full list of event types and payload schemas.


Show a metrics summary for the active app. Requires OAuth login and an active app.

Terminal window
trace metrics # last 7 days
trace metrics --days 30 # last 30 days
FlagDescription
--daysTime range in days (default: 7)

Displays installs (attributed vs organic), clicks, and events with period-over-period trend percentages.

View a paginated list of installs for the active app. Requires OAuth login and an active app.

Terminal window
trace installs
trace installs --limit 50
trace installs --limit 50 --offset 100
FlagDescription
--limitNumber of installs per page, max 100 (default: 20)
--offsetPagination offset (default: 0)

Shows platform, attribution method, confidence score, device model, campaign, and install timestamp.


Generate a ready-to-paste <script> tag for Bring Your Own Links integration. The snippet is pre-filled with your app’s publishable key and store URLs.

Terminal window
# Basic snippet
trace byol snippet --deep-link-path /product/123
# With campaign and custom fallback
trace byol snippet --deep-link-path /invite/summer \
--campaign-id summer-sale \
--fallback-url https://yourapp.com/download
# Disable auto-redirect
trace byol snippet --deep-link-path /welcome --redirect=false
# JSON output (for scripting)
trace byol snippet --deep-link-path /product/123 --json
FlagDefaultDescription
--deep-link-path/Deep link path for attribution
--deep-link-paramsJSON key-value pairs (e.g. '{"sku":"ABC"}')
--campaign-idCampaign identifier
--redirecttrueAuto-redirect to app store after recording click
--android-urlApp settingPlay Store URL override
--ios-urlApp settingApp Store URL override
--fallback-urlFallback URL for unsupported platforms

Print version, commit hash, and build date.

Terminal window
trace version