> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.withpersona.com/2020-05-18/relay-getting-started/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.withpersona.com/_mcp/server. # Getting Started > Understand Relay's two integration components and choose the methods that fit your stack. A Relay integration requires two components: a client-side integration that runs the user-facing verification and a server-side integration that creates the Relay session and retrieves the claim result. Together, these components support Relay's Privacy Pass flow, which cryptographically separates verification from claim redemption. Choose the client-side and server-side methods that best fit your product experience and technology stack. Relay supports web, iOS, Android, and multiple backend environments. If you need another platform or integration method, [contact support](https://app.withpersona.com/dashboard/contact-us) or talk to your Persona team. #### How client-side and server-side integrations work together ### 1. Create a Relay session Your server creates a Relay session, stores the Relay token and Relay secret, and returns the Relay session access token to the client. ![Your server creates a Relay session and returns the Relay session access token to the client.](https://assets.withpersona.com/f_auto,q_auto/developer-docs/images/relay-integration-overview-phase1.png) ### 2. Run the user-facing verification The client uses the Relay session access token to start the verification through the Embedded Widget, Hosted Flow, iOS SDK, or Android SDK. ![The client uses the Relay session access token to run the user-facing verification.](https://assets.withpersona.com/f_auto,q_auto/developer-docs/images/relay-integration-overview-phase2.png) ### 3. Retrieve the claim result Your server uses its selected server-side integration to generate and retrieve the claim result. Begin claim retrieval when your client-side integration indicates that the user-facing flow is complete: * **[Embedded Widget](/relay-widget-usage):** Call your server from `onComplete`. * **[Hosted Flow](/relay-hosted-flow):** Begin polling your backend when the user launches Hosted Flow. * **[iOS SDK](/relay-ios-sdk) and [Android SDK](/relay-android-sdk):** Call your server after the platform's normal Inquiry completion mechanism reports that the user-facing experience ended. ![Your server uses its stored credentials to retrieve the Relay claim result.](https://assets.withpersona.com/f_auto,q_auto/developer-docs/images/relay-integration-overview-phase3.png) ## Client-side integration methods | Method | Best for | | -------------------------------------- | ---------------------------------------------------------------------------------------------------- | | [Embedded Widget](/relay-widget-usage) | Websites that want Relay rendered directly inside their page | | [Hosted Flow](/relay-hosted-flow) | Websites that want to send users to a Persona-hosted Relay page with minimal client-side integration | | [iOS SDK](/relay-ios-sdk) | Native iOS apps that run Relay with the Persona iOS SDK | | [Android SDK](/relay-android-sdk) | Native Android apps that run Relay with the Persona Android SDK | ## Server-side integration methods Use the same server-side method to create the Relay session, manage the Privacy Pass, and retrieve the claim result. | Method | Best for | | --------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | | [Server SDK](/relay-sdk-quickstart) | Node.js or Go backends that want the SDK to handle Privacy Pass cryptography and retries | | [Edge Worker](/relay-edge-worker-deploying) | Teams that want to deploy the Gateway Service interface to Cloudflare or Vercel | | [Relay Gateway Service](/relay-gateway-service-deploying) | Backends that want a self-hosted HTTP service to handle Privacy Pass cryptography | | [API](/relay-api-usage) | Teams that want direct API control and can implement the Privacy Pass protocol in their runtime | ## Test before you go live To test a Relay integration, use [sandbox mode](/relay-sandbox). You can exercise the full flow — session, verification, Privacy Pass, and claim result — without running real verifications or incurring usage charges. ## See the whole flow before you build > Understand Relay's two integration components and choose the methods that fit your stack.