Skip to main content

Make your first request

Call the sandbox discovery endpoint. You do not need an account or a credential.
An HTTP 200 response confirms that the sandbox is ready. The response includes:
  • A ready-to-run synthetic event request under try.
  • A live sandbox key under self_serve_key.issued_key.
One read-only request therefore gives you both a successful API response and working sandbox credentials.

Test an authenticated client

Read the key from self_serve_key.issued_key.api_key, store it in a protected local environment variable, and send it as a bearer token:
You can also issue a sandbox key directly. GET /api/v1/sandbox/keys returns HTTP 200, while POST /api/v1/sandbox/keys returns HTTP 201. Issuance writes nothing, so both operations are safe to repeat. Every issued key has this shape: PlainRouter never persists a sandbox key.
A sandbox key is not a Signal tracker secret or a workspace execution token. It authenticates only the synthetic sandbox, has no workspace or Meta ad-account binding, and grants no production access.

Validate without a credential

Use POST /api/v1/sandbox/events when you want to validate a synthetic event without testing bearer authentication:
An HTTP 200 response has accepted: true, status: "simulated", persisted: false, and provider_delivery: false.

Use identity-free synthetic fields

The public sandbox accepts these documented fields: The sandbox rejects user_data, visitor_id, click_ids, event_source, consent, consent_mode, and tcf. A request containing one of these fields returns HTTP 422 with this validation message:
Do not send personal data, customer identifiers, click identifiers, or production event payloads to the sandbox.

Understand what the sandbox does

The sandbox validates each request in memory and immediately discards it. A sandbox request:
  • Does not write to the Signal ledger or any other database table.
  • Does not enqueue work.
  • Does not contact Meta or another provider.
  • Does not read production data.
The keyed and keyless validation endpoints apply the same synthetic-event rules.

Handle sandbox key errors

The keyed endpoint returns HTTP 401 when its bearer credential is missing, invalid, or expired. Each error includes an error.resolution field that tells you to supply or issue a replacement sandbox key. The response also includes WWW-Authenticate: Bearer.

Stay within the rate limits

Sandbox limits are per client IP address: Key issuance and keyed validation use independent budgets. Validation traffic cannot exhaust the issuance budget.

Move to production

PlainRouter is free while monthly managed ad spend is under $300. Registration is self-serve, and a workspace admin can issue scoped workspace execution tokens from the dashboard without a contact-sales step. Keep the production credential types separate. A Signal tracker secret authenticates the Signals Conversion API. A workspace execution token authenticates MCP and authorized workspace routes for one workspace and one Meta ad account. Neither credential is a sandbox key. Follow the Quickstart to create a workspace, configure a Signal, and verify the production ingestion path.