Skip to main content
POST https://api.tracenow.io/trace The trace endpoint runs all provided signals (IP, email, phone, device token) in parallel, evaluates your configured policies against the enriched result, tracks velocity counters, and returns a single verdict: allow, challenge, or deny.
The Cloudflare Worker calls this endpoint automatically for every monitored route. This reference documents the request and response shape for your in-app call (where you add the real subject_user_id and confirmed status) and explains how to read the response in either context.

Authentication

All requests require a Bearer token using your secret key:
Secret keys are available in your dashboard under Settings → API keys. Never expose them client-side.

Request

Fields

Send whatever you have: not all fields are required, but the more you provide, the richer the signals.

Examples

Response

Top-level fields

signals.ip

signals.email

signals.phone

signals.device

signals.velocity

signals.decision

Present when a rule matched. Contains the rule that drove the verdict.

policy

Present only when a rule matched.

Verdicts

allow is the implicit default: it means your policies evaluated and nothing triggered.
At the Cloudflare edge, only deny blocks. challenge and allow both forward to your origin because the Worker cannot render your MFA flow. Enforcing challenge requires the in-app call described in Server-side integration.

signals_complete

signals_complete: false means some enrichment group had not fully resolved before the response was returned, typically on the first request for a new IP or email (a cache miss). The verdict was still evaluated against whatever data was available. For most use cases this is acceptable. If you need complete data for a high-stakes decision, retry with the same payload after ~500 ms to get the warm-cache result.