Skip to main content

App

Your application, identified by appId. It holds your app secret, your API keys, your webhook URL and secret, and the branding of the hosted pages. Everything below is scoped to one app: the same person connecting through two apps produces two unrelated users, and neither app can see the other’s data.

User

Created the first time a userRef opens a connect link for your app. userRef is your identifier, any string you choose; Verso never interprets it. It is the key of GET /api/connections and appears in every webhook payload.

Connection

A connected provider account of a user. Lifecycle:
A user may have several connections at once: two different ChatGPT accounts, or an old revoked one next to its replacement. GET /api/connections lists them all.

Conversation

A conversation of the provider account, imported and normalized. A conversation is updated in place when the provider reports a newer update_time; it keeps the same id.

Message

The first message’s timestamp is what recentConversationCount is computed from.

What is not exposed

Session credentials are never returned by any endpoint, not even encrypted. The provider’s raw conversation objects are kept by Verso to re-normalize data when the message format improves, but are not part of the API.