Skip to main content
When your agent reaches a Versine sign-in, your backend tells Versine who your user is and gets back a one-time sign-in token. Your agent’s browser sends it to Versine, which returns the agent to the platform, signed in. Your users never need a Versine account. Versine handles the tokens, keys and platform rules. You add three things:
  1. A sign-in token request from your backend: when your agent reaches a Versine sign-in, you send Versine your user’s details and get back a one-time token for that sign-in.
  2. A browser hook that adds the token to the Versine sign-in request.
  3. A consent model to verify which sites your users want to allow signing into.
See How Versine works for the full flow.

1. Register your assistant

Register an assistant in Console. You get an assistant ID, which platforms see in every sign-in, and a secret:
Until Versine approves your registration, you can sign in only to demo.versine.com and platform projects in your own Console organization.
In Console, create a second secret, switch to it, then revoke the old one. You can also limit the secret to your backend’s IP addresses. Console lists every sign-in made with your credentials. If a secret leaks, revoke it or contact security@versine.com.

2. Recognize a Versine sign-in

Tell your agent to use Versine when a site offers it, for example in its system prompt:
The browser is then sent, often through redirects, to https://auth.versine.com/authorize?client_id=...&scope=.... Your browser hook catches that request (step 4).

3. Request a sign-in token

The token works once, for that URL only, within 60 seconds. Platforms that follow the setup guide request openid profile email phone; the URL’s scope parameter says which. Versine passes on only the requested details and doesn’t check consent. If you leave a detail out, the platform gets the sign-in without it. Many platforms can’t create an account without an email.
GET /v1/sign-ins/preview?url=…, with the same credentials, returns the platform’s name, logoUrl, termsUrl and privacyUrl, and the requested scopes. Use these rather than anything on the web page.

Report verification

Platforms use verification to decide whether a sign-in can reach an existing account. Versine treats an email as verified for a year after verifiedAt, and a phone number for 30 days. If you haven’t verified a value, leave out its verification object.

4. Add the token to the request

In the browser your agent drives, intercept requests to https://auth.versine.com/authorize, including redirects, and add the token as the Versine-Sign-In header:
browser.onRequest stands for your runtime’s request interception, such as the Chrome DevTools Protocol’s Fetch domain. On failure, Versine shows an error page with a Versine-Sign-In-Error header:
A sign-in token signs in as your user. Add it only to requests to https://auth.versine.com/authorize, and keep it away from the model, page scripts, tool results, logs and screenshots. Request it in the browser layer, not through a tool the agent can call. Keep your secret on your backend.

Use a code instead of a header

If your agent’s browser can’t add headers, and the platform allows code sign-in, the Versine sign-in page asks for a code instead. Give your agent a tool that takes the page’s address. Your backend calls POST /v1/sign-ins with that address as url and "delivery": "code":
The agent types the code into the page. It works once, on that page only, for two minutes.
The code signs in as your user. Tell your agent to type it only into the auth.versine.com page it requested it for, and never to share it anywhere else.

5. Test

Test your integration at demo.versine.com, a sample platform that accepts every registered assistant. Then request review in Console.