Skip to main content
When a user taps a chip and lands on Endstate’s hosted verification flow, you can send them straight to a destination you choose - a product page, a campaign, or your own verification experience. You configure that destination through the API at three levels. The most specific level wins, and if none is set, the user stays on Endstate’s hosted verify page.

Resolution order

Endstate resolves the destination for each tap from most specific to least specific, and uses the first one that is set: A unit redirect overrides its collection’s redirect; a collection redirect overrides the organization default. Set the level that matches how broadly you want the destination to apply.
The tap response (POST /v1/taps) also returns a field named redirect_url - that one is different: it is the canonical verify-page URL on your verified domain, not the tap redirect configured here. See Chips & verification.

Continuing the flow on your destination

When Endstate redirects to your URL, it appends the tapped chip’s id and one-time credential as query parameters, so your page has everything it needs to verify the tap:
string
The chip_id of the tapped chip.
string
The one-time tap credential (the e value) for this tap.
For example, a redirect URL of https://brand.example/p sends the user to:
Read endstate_chip_id and send it as chip_id:
Your page then records the tap with POST /v1/taps, either way round - the endpoint takes either credential:
  • With a backend - forward the two values to your server, which calls POST /v1/taps with your API key. See Verify a unit.
  • Without one - the page calls POST /v1/taps itself with your publishable key, then reads the unit with the session token it gets back. See Host your own verify page.
Either way you host the entire post-tap experience on your own domain.
The endstate_e value is a single-use credential with a short validity window. Verify promptly; do not log it or store it at rest.

Setting a redirect

A redirect URL must be a valid absolute URL (surrounding whitespace is trimmed). Every write requires an API key (end_sk_...) and is scoped to your organization. Send null to clear a redirect.

On a unit

Set it at creation, or update it later. The value is returned when you read the unit.

On a collection

Applies to every unit in the collection that does not set its own redirect_url.

Organization default

The fallback for every tap that has no unit or collection redirect. Read the current value with GET /v1/settings; set or clear it with PATCH /v1/settings. See Organization settings for the rest of that response.
(The settings response also carries your organization’s read-only network configuration - default_chain_id and allowed_chain_ids - which controls what collections are created on. Only default_redirect_url is editable here.)

Clearing a redirect

Send null to remove a redirect at any level. Resolution then falls through to the next level down.

Endpoints

redirect_url is also accepted on POST /v1/units and POST /v1/collections, and returned on read. See the API reference for full schemas.

Next steps

Verify a unit

Complete verification server-side after a tap lands on your destination.

Units

Where a unit-level redirect lives, alongside the rest of the unit record.