Tools API

145 of 169 tools can be called from code, with the same engines the pages use. One request shape for all of them; long work runs as a job you can follow.

Discover

Every tool is described by a machine-readable descriptor (inputs as JSON Schema, file limits, how it runs, who may call it).

Run a tool

curl -X POST https://openvibe.tools/api/v1/tools/jsonminify/run \
  -H 'Content-Type: application/json' \
  -d '{"input":{"text":"{ \"a\": 1 }"}}'
# → {"state":"succeeded","tool":"jsonminify","result":{"text":"{\"a\":1}"},"took_ms":3}

File tools take multipart/form-data (file parts plus an input JSON part). Work that outlasts wait_ms answers 202 with a job: follow it at /api/v1/jobs/{id}/events (server-sent events) and download results from /api/v1/jobs/{id}/files/{n}. Send an Idempotency-Key header to make retries safe.

From JavaScript

const { createClient } = require('openvibe-sdk/core');
const { createToolsClient } = require('openvibe-sdk/tools');
const tools = createToolsClient(createClient({}));
const out = await tools.run('jsonminify', { text: '{ "a": 1 }' });
const job = await tools.run('png', { format: 'png' }, { files: [fileBlob] });
const done = await job.wait();   // any tool, sync or job

The SDK is openvibe-sdk (tag v0.6.0+). It retries on 429 after Retry-After and generates idempotency keys for you.

Access and limits

The rest of OpenVibe

One account works on every site. Open source and community-run.