OpenVibe.Services · the developer platform · alpha
Build with the whole network
One console for everything programmable on OpenVibe: projects, scoped credentials, capability grants, usage and releases, over every service. The reference is generated from the exact contract and SDK versions production runs.
Open source. Network owns projects, apps, credentials, grants and quotas; this console shows its API with your own sign-in and never stores a secret.
// openvibe-sdk v0.65.0
const sdk = require('openvibe-sdk');
const ov = sdk.createClient(); // public reads need no key
const search = sdk.search.createSearchClient(ov);
const { results } = await search.query('go live');
const registry = sdk.registry.createRegistryClient(ov);
const services = await registry.services();The building blocks
Every OpenVibe product runs on these, and your app can call the same ones with a project's token.
Just want to use OpenVibe? Chat with Vibe, OpenVibe's assistant, or see everything people do here.
What you can build today
Each card is a working example in OpenVibe.Examples (MIT, with a smoke test) or a service you can call now.
Start from one: npx --package=https://codeload.github.com/OpenVibers/OpenVibe.Examples/tar.gz/refs/tags/v0.3.0 create-openvibe-app my-app --template web (templates: web, server, bot, mod). All examples · Every way to mod the network.
Quick start
openvibe-sdk v0.65.0, for Node and the browser. Public reads need no key; an app's calls use the client id and secret of a sandbox app in your project.
// npm i https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.65.0
const sdk = require('openvibe-sdk');
const ov = sdk.createClient(); // public reads need no token
const search = sdk.search.createSearchClient(ov);
const { results } = await search.query('patch notes', { owner: 'blog' });
const registry = sdk.registry.createRegistryClient(ov);
const services = await registry.services(); // every service, with its healthconst sdk = require('openvibe-sdk');
const tokens = sdk.auth.createServiceTokenClient({
clientId: process.env.OV_CLIENT_ID, clientSecret: process.env.OV_CLIENT_SECRET,
});
const ov = sdk.createClient({ tokenProvider: tokens });
const { unverifiedClaims } = await tokens.getTokenInfo({ audience: 'openvibe.media' });
const media = sdk.media.createMediaClient(ov, { app: unverifiedClaims.project_id });
const file = await media.upload(bytes, { filename: 'logo.png', contentType: 'image/png' });curl -s https://openvibe.network/oauth/token \
-d grant_type=client_credentials \
-d client_id="$OV_CLIENT_ID" -d client_secret="$OV_CLIENT_SECRET" \
-d audience=openvibe.media
# → {"access_token":"…","token_type":"Bearer","expires_in":300,…}Everything an integration needs
Each piece is a public API with a reference generated from what production runs.
Services you can build on
Each one runs in production today; its API reference is generated from the capabilities it declares, and the counts are the ones an app can be granted.
From account to integration
- Create a projectSigned in with your OpenVibe account. New projects are sandbox-only; staff enable production.
- Add a sandbox appA confidential app gets a client secret, shown once.
- Pick capabilitiesRequest them for the app; they are approved only inside the project's allowance.
- Get a tokencreateServiceTokenClient() for client credentials, or sign people in with authorization code + PKCE.
- Receive eventsSubscribe, then verify each delivery's signature.
- Publish a releaseValidated release metadata; rotate or revoke credentials any time.
What a project gets
Projects cost nothing today: no plan to buy and no card to add. What a project gets is its limits, and these are the numbers OpenVibe.Events enforces for every project.
| Limit | Sandbox | Production |
|---|---|---|
| Events published per minute | 30 a minute | 120 a minute |
| Event bytes kept | 5 MB | 50 MB |
| Days an event is kept | 7 days | 30 days |
| Days an event can still be replayed | none | 365 days |
| Webhook subscriptions | 5 | 20 |
| Payload size of one event | 64 KB | 64 KB |
These are the limits the service enforces, read from openvibe.events/limits.json.
Reference
Generated from openvibe-contracts v0.217.0 and openvibe-sdk v0.65.0: API explorer · contracts · capabilities · events · services · tools · SDK · all limits.
Questions developers ask
What does it cost?
Nothing today. There is no plan to buy and no card to add; a project gets the limits on this page, which the services themselves enforce.
Do I need permission to start?
No. Sign in, create a project and add a sandbox app; its sandbox capabilities are approved at once. Production is switched on by staff for a project that needs it.
Which languages can I use?
Any that speaks HTTP: every API takes a Bearer token and answers JSON, with RFC 9457 problems for errors. openvibe-sdk adds typed clients for Node and the browser.
Where do my client secrets live?
OpenVibe.Network shows a new secret once and keeps only a hash. This console passes it through in that one response and stores no copy.
Can my users sign in with their OpenVibe account?
Yes. Authorization code with PKCE gives your app a token that acts for the person, carrying only the capabilities your app was granted. A public web app needs no secret.
Is it open source?
Yes. Every OpenVibe service is open source on GitHub under OpenVibers, and the examples are MIT, so you can copy them into your own project.
Part of OpenVibe
One account across every OpenVibe site. Related places to go next:
Start building
Sign in with your OpenVibe account; your first project takes a minute. Coding with an agent? OpenVibe.Codes routes the task to Claude Code, Codex, OpenCode or your own model.