Build with the whole network

One console for projects, apps and keys on every OpenVibe service.

Alpha, open source and free. It never stores a secret.

// openvibe-sdk v0.168.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.

See all 47 service APIs

Just here to use OpenVibe? Chat with Vibe or see the network.

Quick start

openvibe-sdk v0.168.0, for Node and the browser. Public reads need no key.

Start from a working example

All examples
A new app from a template · npx
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 and mod. Every way to mod the network.

Calls with an app's key · Node and curl

A sandbox app in your project has a client id and secret. Upload a file from Node:

// npm i https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.168.0
const 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' });

Or get its token over HTTP, from any language:

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
# returns {"access_token":"…","token_type":"Bearer","expires_in":300,…}

From account to integration

6 items

From account to integration

  1. Create a projectSandbox-only at first; staff switch on production.
  2. Add an app and its keyIts secret shows once; a playground has its grants.
  3. Ask for capabilitiesApproved inside the project's allowance.
  4. Get a tokenClient credentials, or sign people in with PKCE.
  5. Receive eventsSubscribe, then verify each delivery's signature.
  6. Publish a releaseValidated; rotate or revoke keys any time.
What a project gets · free 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.

LimitSandboxProduction
Events published per minute30 a minute120 a minute
Event bytes kept5 MB50 MB
Days an event is kept7 days30 days
Days an event can still be replayednone365 days
Webhook subscriptions520
Payload size of one event64 KB64 KB

These are the limits the service enforces, read from openvibe.events/limits.json.

Reference

11 links

Reference

Generated from openvibe-contracts v0.419.0 and openvibe-sdk v0.168.0: API explorer · contracts · capabilities · events · services · tools · SDK · all limits.

One API lists every resource of a project across every service; export a project as one archive any time. Alpha: what works and what does not is on the transparency page.

Questions developers ask

6 questions

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

4 items

More on OpenVibe

One account across every OpenVibe site.

Every OpenVibe site

Recently shipped on OpenVibe.Services

latest 5