EPVANTA
Developers

Get started/Quick Start

Make your first decision request in 5 minutes

EPVANTA turns fragmented media signals into executable decisions. Follow these steps to submit a test event, run attribution in Sandbox, and retrieve a decision.

Time
5 minutes
Environment
Sandbox
Last updated
2026-07-17
  1. 1

    Create an API key

    Create a project in Sandbox and copy your API key.

    Read authentication guide
  2. 2

    Send a test event

    Send an event to /v1/events. The Live Runner contains a ready-to-use request.

  3. 3

    Run attribution

    After ingestion, call /v1/attribution/runs to start a run with an optional decision policy.

  4. 4

    Retrieve the decision

    Retrieve an executable recommendation from /v1/decisions/{decision_id}, or receive it by webhook.

From test event to production path

EPVANTA uses one stable contract across events, attribution, decisions, and delivery, with explicit versions, permissions, and observable state.

Clear boundaries from Sandbox to production.

Environments, credentials, permissions, and regional routing remain isolated. Validate the complete workflow before touching production data.

Sandbox project

Use test credentials and seven-day data retention to validate end-to-end integration.

Instant creation · no production data

Scoped credentials

Assign least privilege by project, environment, and operation.

Signed delivery

Verify every server submission and callback with signatures.

Region routing

Keep data in approved processing regions according to policy.

Audit trail

Record changes to credentials, policies, schemas, and releases.

Events and signals

Events are the smallest input unit. Each event includes stable identity, event time, source, and idempotency before entering attribution.

event_namestringrequired

Business event name

event_timetimestamprequired

Time the event occurred

user.external_idstringrequired

Stable business identity

propertiesobjectoptional

Channel and business context

Attribution models

Run attribution with explicit windows, identity rules, regions, and governance parameters in realtime or batch.

POST/v1/attribution/runs
{  "workspace_id": "growth-cn",  "model": "multi_touch",  "date_range": "2026-07-01/2026-07-17",  "identity": { "primary_key": "customer_id" },  "governance": { "data_region": "apac" }}
runs:writeAsync jobAPI v1.3

Decision policies

Retrieve recommendations with confidence, rationale, constraints, approval state, and complete trace context.

94%
decision.confidence

Increase high-intent audience weight by 14%

Evidence: incremental contribution, saturation, conversion quality, and budget guardrails.

status: approval_required

Identity and deduplication

Use a business key as primary identity with explicit device or session fallbacks. Idempotency protects retries while identity preserves attribution context.

01customer_id
02idfa / gps_adid
03session_id
04deduplicated_event

Event ingestion

Submit channel, spend, conversion, and revenue events with schema and identity validation before attribution begins.

REST API

实时事件与低延迟写入

POST /v1/events
Batch upload

历史回填与大批量导入

POST /v1/events/batch
Warehouse sync

标准化数仓增量同步

Scheduled connector

Attribution runs

Attribution runs are isolated async jobs. Query progress, deltas, and governance checks by run_id without a long-lived client connection.

  1. 1queued12 ms
  2. 2validating48 ms
  3. 3processing420 ms
  4. 4decision_ready8 ms

Decision API

Decision retrieval returns the recommended action, confidence, constraints, approval state, and evidence references in one context.

GET/v1/decisions/{decision_id}decisions:read
POST/v1/decisions/{decision_id}/approvedecisions:approve
POST/v1/decisions/{decision_id}/rejectdecisions:approve

Every delivery has status, retry, and recovery.

Inspect signatures, response codes, and next retry time. Safely replay failures with the original idempotency key.

decision.readywh_01J8… · 2026-07-17 10:21:03 UTCDelivered · 204x-epvanta-signature: t=1784283702,v1=9af21c…
action.approval_requiredwh_01J9… · 2026-07-17 10:23:18 UTCDelivered · 200x-epvanta-signature: t=1784283702,v1=9af21c…
export.completedwh_01JA… · 2026-07-17 10:27:42 UTCRetrying · 503x-epvanta-signature: t=1784283702,v1=9af21c…

Deployment and regions

Move through audit, connection, backfill, validation, release, and governance with explicit acceptance criteria.

  1. 01

    Audit the current model

    Inventory event schemas, identity keys, timestamps, spend sources, and reporting dependencies.

  2. 02

    Connect ingestion surfaces

    Map SDK, API, webhook, warehouse, and ad platform inputs into stable contracts.

  3. 03

    Prepare historical backfill

    Normalize legacy exports and isolate imported history from live traffic.

  4. 04

    Validate in parallel

    Run test traffic and reconcile windows, callbacks, raw exports, and dashboards.

  5. 05

    Release in stages

    Use environment credentials, staged rollout, and rollback checkpoints.

  6. 06

    Expand governance

    Add budget controls, finance models, audit trails, and regional privacy settings.

Rate limits

Rate limits are calculated independently by workspace, environment, and endpoint, with remaining capacity and reset time on every response.

Events3,000 req / minBurst 500 / sec
Attribution runs120 req / min20 concurrent
Decision reads6,000 req / minRegional cache

Error codes

400invalid_request

Inspect request_id and follow the documented recovery path.

401authentication_error

Inspect request_id and follow the documented recovery path.

409idempotency_conflict

Inspect request_id and follow the documented recovery path.

429rate_limit_exceeded

Inspect request_id and follow the documented recovery path.

Monitoring and logs

Use trace_id to connect ingestion, attribution, decisions, and webhook delivery. Export raw logs to your observability stack.

event.received
schema.validated
attribution.queued
decision.ready
webhook.delivered

Use tools that match your engineering workflow.

From first validation to ongoing operations, every tool shares the same contracts, version policy, and example data.

Make these boundaries the default before production.

01

Protect retries with idempotency keys

Set a stable idempotency_key on every write to prevent duplicate events during network retries.

02

Verify signatures before processing

Use the raw request body to validate timestamps and signatures within an accepted skew.

03

Separate backfill from live traffic

Use dedicated run identifiers so migrated history cannot distort live production analysis.

04

Observe every error response

Capture request_id, error code, retries, and rate-limit headers for a traceable failure path.

Questions before integration.

Yes. Event ingestion, attribution runs, decision retrieval, and execution delivery are separate permission surfaces. Start with data and parallel validation, then add approval and execution later.

Yes. They use separate projects, credentials, storage, and webhook endpoints. Sandbox data is retained for seven days and never enters production attribution or reporting.

The platform retries with exponential backoff and retains delivery history for 72 hours. Replay failures through the console or API with the original idempotency key.

Breaking changes only enter a new major version. Every deprecation includes a window, migration guide, and parallel validation period.

DEVELOPER SUPPORT

Validate the complete decision path in a Sandbox project.

Bring your event schema, identity rules, and callback requirements. We will help your team complete the first verifiable integration path.

Request developer accessContact technical support