> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryverso.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Developer portal

> Manage your apps, API keys, webhooks, team and users, in the sandbox and in production.

The developer portal is where your team manages its Verso integration: API keys, the webhook endpoint and its signing secret, who on your side can sign in, the users who connected an account and the conversations imported for them.

<CardGroup cols={2}>
  <Card title="Sandbox portal" icon="flask" href="https://connect-staging.tryverso.ai/developers">
    Test apps and test keys. Nothing here is production data. Start here.
  </Card>

  <Card title="Production portal" icon="rocket" href="https://connect.tryverso.ai/developers">
    Your live app, real users and real data. Opened when you go live.
  </Card>
</CardGroup>

## Two environments, two portals

Sandbox and production are separate environments end to end: their own database, their own API base URL, their own app secrets and API keys, their own webhook endpoint. The portal follows the same rule, so there is one portal per environment. A switch in the top bar shows which one you are on and takes you to the other.

| | Sandbox | Production |
| - | - | - |
| Portal | `connect-staging.tryverso.ai/developers` | `connect.tryverso.ai/developers` |
| API base URL | `https://connect-staging.tryverso.ai` | `https://connect.tryverso.ai` |
| Connect links | signed with your sandbox app secret | signed with your production app secret |
| Data | test accounts you connect yourself | your users' accounts |

Integrate against the sandbox first. When your integration is ready, we provision your production app and add your team to the production portal; your code only changes its base URL and secrets.

## Signing in

Access is by invitation: Verso adds the first owner when your app is provisioned, and owners add the rest of the team from the **Team** page. There is no password. Enter your work email on the portal, open the one-time link we send you, and you are in. The link works once and expires after an hour.

The same email has to be added in each environment: being an owner in the sandbox does not open the production portal.

## What you can do

| Section | Content |
| - | - |
| **Overview** | Active connections, users, conversations imported in the last 30 days, a set-up checklist until your first user connects, and your integration details (app ID, API base URL, scopes). |
| **Users** | Every `userRef` your backend has signed a connect link for, with status, number of connected accounts, last sync and conversation counts. Open a user to list their conversations, open a conversation to see the exact object `GET /api/conversations` returns. |
| **API keys** | Create keys (shown once) and revoke them. Keys authenticate your backend with `Authorization: Bearer vsk_…`. |
| **Webhooks** | Set the HTTPS endpoint, send a test event, rotate the signing secret, review recent deliveries and their errors. |
| **Team** | Who can sign in for your app, with two roles: *owner* (team, secrets) and *developer* (API keys, webhook). |
| **Activity** | Every action taken in the portal for your app, by whom and when. |
| **Settings** | App identity and the rotation of the app secret that signs your connect links. |

## Roles

| Role | API keys and webhook | Team | App secret and webhook secret rotation |
| - | - | - | - |
| Developer | yes | read | no |
| Owner | yes | yes | yes |

An app always keeps at least one owner.

<Note>
  Secrets and keys appear once, at creation or rotation. Copy them into your secret manager right away; the portal cannot show them again.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.