Skip to main content
The v0 format is deprecated. It will be unsupported after October 1, 2026, and removed by January 1, 2027. Use the v1 signed payload format for new integrations, and migrate existing ones before then.
Use this guide as a reference for the legacy v0 embed URL signing format. In the v0 format, each parameter is sent as its own URL query parameter, and the signature parameter covers the parameter values concatenated into a single newline-delimited string.

Parameter encoding

JSON-valued parameters - userAttributes, connectionRoles, modelRoles, customTheme, uiSettings, and groups - must be stringified and then URL encoded, like every other parameter in the URL. For example, this JSON-valued parameter:
Must be stringified and then URL encoded:

Manually generate a v0 signed URL

To generate the signature:
1
Concatenate the required properties, delimited by a newline character in the exact order enumerated below. Note: The properties are in alphabetical order, with the exception of the leading login URL:
2
Concatenate the optional properties in alphabetical order, delimited by a newline character in the exact order enumerated below:
Do not include leading or trailing spaces. Include only a single newline between each part of the signature.The following example includes optional parameters for custom theme, entity, filter search param, prefers dark, link access, theme, and user attributes:
Refer to the Embed parameters reference for more information about available parameters.
3
Sign the string using your secret key with an HMAC sha256 digest algorithm, encoded as a base64url string:
Node.js example
Refer to the Base64 spec for more information about base64url.
4
URL encode each parameter as part of a URL query string and attach the generated signature. The order of parameters is irrelevant when generating the login URL.

Next steps