OpenVibe.Tools API

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

Server https://openvibe.tools. 12 routes performing 6 capabilities. OpenAPI 3.1 document.

POST /api/v1/jobs

Submit an asynchronous tool job (img.process, audio.process, docs.process) with its input files (tools.job-request@1, JSON or multipart); the job is owned by the calling principal.

Capabilities
tools.job.create
Visibility
public
Request body
application/json tools.job-create-request@1
Response
application/json tools.job@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>tools.job.create</strong> (public): Submit an asynchronous tool job (img.process, audio.process, docs.process) with its input files (tools.job-request@1, JSON or multipart); the job is owned by the calling principal. Idempotency-Key supported. Also the owner&#39;s other writes on a job: retry a failed job as a new one (idempotent: asking again returns that retry), and keep a succeeded job&#39;s result while a reference such as community:paste:p_123 points at it (PUT), or let it expire again (DELETE, after the last reference).</p> <p>Route note: Tools satellites: img, audio, docs</p>

GET /api/v1/jobs/{id}

Read a job the calling principal created: state, progress, result (Media object references or local files), SSE progress with Last-Event-ID resume, result files.

Capabilities
tools.job.read
Visibility
public
Parameters
  • id (path, required)
Response
application/json tools.job-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>tools.job.read</strong> (public): Read a job the calling principal created: state, progress, result (Media object references or local files), SSE progress with Last-Event-ID resume, result files.</p>

DELETE /api/v1/jobs/{id}

Cancel a queued or running job the calling principal created.

Capabilities
tools.job.cancel
Visibility
public
Parameters
  • id (path, required)
Response
application/json tools.job@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>tools.job.cancel</strong> (public): Cancel a queued or running job the calling principal created.</p>

GET /api/v1/jobs/{id}/events

Read a job the calling principal created: state, progress, result (Media object references or local files), SSE progress with Last-Event-ID resume, result files.

Capabilities
tools.job.read
Visibility
public
Parameters
  • id (path, required)
Response
application/json tools.job-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>tools.job.read</strong> (public): Read a job the calling principal created: state, progress, result (Media object references or local files), SSE progress with Last-Event-ID resume, result files.</p>

GET /api/v1/jobs/{id}/files/{n}

Read a job the calling principal created: state, progress, result (Media object references or local files), SSE progress with Last-Event-ID resume, result files.

Capabilities
tools.job.read
Visibility
public
Parameters
  • id (path, required)
  • n (path, required)
Response
application/json tools.job-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>tools.job.read</strong> (public): Read a job the calling principal created: state, progress, result (Media object references or local files), SSE progress with Last-Event-ID resume, result files.</p>

PUT /api/v1/jobs/{id}/references/{ref}

Submit an asynchronous tool job (img.process, audio.process, docs.process) with its input files (tools.job-request@1, JSON or multipart); the job is owned by the calling principal.

Capabilities
tools.job.create
Visibility
public
Parameters
  • id (path, required)
  • ref (path, required)
Request body
application/json tools.job-create-request@1
Response
application/json tools.job@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>tools.job.create</strong> (public): Submit an asynchronous tool job (img.process, audio.process, docs.process) with its input files (tools.job-request@1, JSON or multipart); the job is owned by the calling principal. Idempotency-Key supported. Also the owner&#39;s other writes on a job: retry a failed job as a new one (idempotent: asking again returns that retry), and keep a succeeded job&#39;s result while a reference such as community:paste:p_123 points at it (PUT), or let it expire again (DELETE, after the last reference).</p>

DELETE /api/v1/jobs/{id}/references/{ref}

Submit an asynchronous tool job (img.process, audio.process, docs.process) with its input files (tools.job-request@1, JSON or multipart); the job is owned by the calling principal.

Capabilities
tools.job.create
Visibility
public
Parameters
  • id (path, required)
  • ref (path, required)
Input
tools.job-create-request@1
Response
application/json tools.job@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>tools.job.create</strong> (public): Submit an asynchronous tool job (img.process, audio.process, docs.process) with its input files (tools.job-request@1, JSON or multipart); the job is owned by the calling principal. Idempotency-Key supported. Also the owner&#39;s other writes on a job: retry a failed job as a new one (idempotent: asking again returns that retry), and keep a succeeded job&#39;s result while a reference such as community:paste:p_123 points at it (PUT), or let it expire again (DELETE, after the last reference).</p>

POST /api/v1/jobs/{id}/retry

Submit an asynchronous tool job (img.process, audio.process, docs.process) with its input files (tools.job-request@1, JSON or multipart); the job is owned by the calling principal.

Capabilities
tools.job.create
Visibility
public
Parameters
  • id (path, required)
Request body
application/json tools.job-create-request@1
Response
application/json tools.job@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>tools.job.create</strong> (public): Submit an asynchronous tool job (img.process, audio.process, docs.process) with its input files (tools.job-request@1, JSON or multipart); the job is owned by the calling principal. Idempotency-Key supported. Also the owner&#39;s other writes on a job: retry a failed job as a new one (idempotent: asking again returns that retry), and keep a succeeded job&#39;s result while a reference such as community:paste:p_123 points at it (PUT), or let it expire again (DELETE, after the last reference).</p>

GET /api/v1/tools

Read the tool registry (ADR-027): every tool's descriptor (tools.tool@1: execution, whether the run API exposes it, how to call it, input and output schemas, files, limits, auth, quota class, cost, eg

Capabilities
tools.tool.read
Visibility
public
Response
application/json tools.tool-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>tools.tool.read</strong> (public): Read the tool registry (ADR-027): every tool&#39;s descriptor (tools.tool@1: execution, whether the run API exposes it, how to call it, input and output schemas, files, limits, auth, quota class, cost, egress, hosts, docs), filtered by family, execution, api, status or text. GET /api/v1/tools answers tools.tool-list@1 with schemas as { $ref }; GET /api/v1/tools/:id has them embedded; GET /api/v1/tools/:id/schema answers { $schema, $id, $defs: { input, output } }, with $defs.input false for a tool without an API. The gateway (https://openvibe.tools) answers for every tool, and each satellite for its own tools with its own live status. Open to everyone, anonymous callers included, from any origin (CORS *); cacheable (ETag, 304). A bad filter value is 400 tools.query.invalid; an unknown, planned or mirror id is 404 tools.tool.not_found, whose detail says which.</p>

GET /api/v1/tools/{id}

Read the tool registry (ADR-027): every tool's descriptor (tools.tool@1: execution, whether the run API exposes it, how to call it, input and output schemas, files, limits, auth, quota class, cost, eg

Capabilities
tools.tool.read
Visibility
public
Parameters
  • id (path, required)
Response
application/json tools.tool-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>tools.tool.read</strong> (public): Read the tool registry (ADR-027): every tool&#39;s descriptor (tools.tool@1: execution, whether the run API exposes it, how to call it, input and output schemas, files, limits, auth, quota class, cost, egress, hosts, docs), filtered by family, execution, api, status or text. GET /api/v1/tools answers tools.tool-list@1 with schemas as { $ref }; GET /api/v1/tools/:id has them embedded; GET /api/v1/tools/:id/schema answers { $schema, $id, $defs: { input, output } }, with $defs.input false for a tool without an API. The gateway (https://openvibe.tools) answers for every tool, and each satellite for its own tools with its own live status. Open to everyone, anonymous callers included, from any origin (CORS *); cacheable (ETag, 304). A bad filter value is 400 tools.query.invalid; an unknown, planned or mirror id is 404 tools.tool.not_found, whose detail says which.</p>

POST /api/v1/tools/{id}/run

Run the network probe tools through the run API (ADR-027): the tools whose descriptor names auth.capability tools.net.probe (port checks, ping, traceroute, mtr, latency, bulk header and TLS checks), w

Capabilities
tools.net.probe, tools.tool.run
Visibility
partner, public
Parameters
  • id (path, required)
Request body
application/json tools.run-request@1
Response
application/json tools.run@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>tools.net.probe</strong> (partner): Run the network probe tools through the run API (ADR-027): the tools whose descriptor names auth.capability tools.net.probe (port checks, ping, traceroute, mtr, latency, bulk header and TLS checks), which send traffic to a host the caller chose. Only app and service principals holding this capability run them through the API or the SDK: partner visibility, so Network grants it to a developer project only when staff add it to that project&#39;s allowance by hand, and first-party services hold it through their own grants. People keep using the probe pages, which have a per-target throttle. Every run is throttled per target across all callers (limits.perTargetPerMinute) and written to the pseudonymous abuse log. Planned until the gateway serves the route.</p> <p><strong>tools.tool.run</strong> (public): Run a tool through the uniform run API (ADR-027): POST /api/v1/tools/:id/run with tools.run-request@1 (JSON, or multipart with uploaded files), answered inline (tools.run@1 succeeded or failed) or, for a job tool that has not finished within wait_ms, with its job (202 + Location). Every tool whose descriptor has api true and auth.capability tools.tool.run. Callers are tiered, anonymous &lt; session &lt; user &lt; app/service: tools with auth.anonymous true take anonymous callers (keyed by IP, IPv6 by /64); the others need a browser session, a signed-in person or a token. An app or service token needs this capability; people and browser sessions do not. Quotas count each tool&#39;s cost within its quota class, per caller. A job tool&#39;s run creates a job owned by the caller, like tools.job.create. Planned until the gateway serves the route.</p> <p>Route note: tools with auth.capability tools.net.probe</p>

GET /api/v1/tools/{id}/schema

Read the tool registry (ADR-027): every tool's descriptor (tools.tool@1: execution, whether the run API exposes it, how to call it, input and output schemas, files, limits, auth, quota class, cost, eg

Capabilities
tools.tool.read
Visibility
public
Parameters
  • id (path, required)
Response
application/json tools.tool-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>tools.tool.read</strong> (public): Read the tool registry (ADR-027): every tool&#39;s descriptor (tools.tool@1: execution, whether the run API exposes it, how to call it, input and output schemas, files, limits, auth, quota class, cost, egress, hosts, docs), filtered by family, execution, api, status or text. GET /api/v1/tools answers tools.tool-list@1 with schemas as { $ref }; GET /api/v1/tools/:id has them embedded; GET /api/v1/tools/:id/schema answers { $schema, $id, $defs: { input, output } }, with $defs.input false for a tool without an API. The gateway (https://openvibe.tools) answers for every tool, and each satellite for its own tools with its own live status. Open to everyone, anonymous callers included, from any origin (CORS *); cacheable (ETag, 304). A bad filter value is 400 tools.query.invalid; an unknown, planned or mirror id is 404 tools.tool.not_found, whose detail says which.</p>