OpenVibe.Vision API
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
Server https://openvibe.vision. 38 routes performing 23 capabilities. OpenAPI 3.1 document.
POST /api/v1/alt
Write editable alt text for an image on OpenVibe.Vision: POST /api/v1/alt returns one short sentence about the scene, objects and action, never about a person.
- Capabilities
- vision.alt.write
- Visibility
- first-party
- Request body
application/jsonvision.image-request@1- Response
application/jsonvision.alt-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.alt.write</strong> (first-party): Write editable alt text for an image on OpenVibe.Vision: POST /api/v1/alt returns one short sentence about the scene, objects and action, never about a person. The answer has passed noLooks; the receipt names the engine, cost and latency. Rooms use it for Pics, Media and Chat uploads.</p>POST /api/v1/ask
Ask or describe an image on OpenVibe.Vision: POST /api/v1/ask and /api/v1/describe take an image (multipart, data URL or public URL), a question, a task (ask, describe, identify, count, translate, ocr
- Capabilities
- vision.image.ask
- Visibility
- first-party
- Request body
application/jsonvision.ask-request@1- Response
application/jsonvision.answer-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.image.ask</strong> (first-party): Ask or describe an image on OpenVibe.Vision: POST /api/v1/ask and /api/v1/describe take an image (multipart, data URL or public URL), a question, a task (ask, describe, identify, count, translate, ocr) and a mode (auto, local, ai). A read question is answered by the local OCR reader first; everything else goes through OpenVibe.AI, whose provenance the answer reports. In auto mode a read question also works anonymously; any other task needs a signed-in person or this capability.</p>GET /api/v1/benchmarks
Read OpenVibe.Vision's aggregate comparison results: GET /api/v1/benchmarks groups compare samples by task, engine, provider and model with sample counts, mean latency and mean cost, with no subject,
- Capabilities
- vision.benchmarks.read
- Visibility
- first-party
- Response
application/jsonvision.benchmarks@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.benchmarks.read</strong> (first-party): Read OpenVibe.Vision's aggregate comparison results: GET /api/v1/benchmarks groups compare samples by task, engine, provider and model with sample counts, mean latency and mean cost, with no subject, image or answer text. Public.</p>POST /api/v1/compare
Run OpenVibe.Vision's side-by-side comparison: POST /api/v1/compare runs the local reader and up to three AI model hints on the same image and returns each row with its success, text, cost and latency.
- Capabilities
- vision.model.compare
- Visibility
- first-party
- Request body
application/jsonvision.compare-request@1- Response
application/jsonvision.answer-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.model.compare</strong> (first-party): Run OpenVibe.Vision's side-by-side comparison: POST /api/v1/compare runs the local reader and up to three AI model hints on the same image and returns each row with its success, text, cost and latency. The requested model is a hint; OpenVibe.AI's own provenance is what each row reports.</p>POST /api/v1/describe
Ask or describe an image on OpenVibe.Vision: POST /api/v1/ask and /api/v1/describe take an image (multipart, data URL or public URL), a question, a task (ask, describe, identify, count, translate, ocr
- Capabilities
- vision.image.ask
- Visibility
- first-party
- Request body
application/jsonvision.ask-request@1- Response
application/jsonvision.answer-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.image.ask</strong> (first-party): Ask or describe an image on OpenVibe.Vision: POST /api/v1/ask and /api/v1/describe take an image (multipart, data URL or public URL), a question, a task (ask, describe, identify, count, translate, ocr) and a mode (auto, local, ai). A read question is answered by the local OCR reader first; everything else goes through OpenVibe.AI, whose provenance the answer reports. In auto mode a read question also works anonymously; any other task needs a signed-in person or this capability.</p>POST /api/v1/faces/blur
Identity-free face blurring on OpenVibe.Vision: POST /api/v1/faces/blur returns a redacted PNG derivative and the blurred count in X-Faces-Blur.
- Capabilities
- vision.face.blur
- Visibility
- first-party
- Request body
application/jsonvision.image-request@1- Response
application/jsonvision.face-blur@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.blur</strong> (first-party): Identity-free face blurring on OpenVibe.Vision: POST /api/v1/faces/blur returns a redacted PNG derivative and the blurred count in X-Faces-Blur. No template is stored and the original is discarded; anyone may use it.</p>POST /api/v1/faces/cast/match
Match faces against one channel's opted-in adult cast roster for OpenVibe.Live: POST /api/v1/faces/cast/match.
- Capabilities
- vision.face.cast.match
- Visibility
- first-party
- Request body
application/jsonvision.face-cast-match-request@1- Response
application/jsonvision.face-cast-match@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.cast.match</strong> (first-party): Match faces against one channel's opted-in adult cast roster for OpenVibe.Live: POST /api/v1/faces/cast/match. The caller is the Live service token scoped to that channel (its channel_id claim must equal the body's channel) and must hold this capability. A non-consented person is never matched and the answer does not say whether they exist.</p>GET /api/v1/faces/cast/tags
Read your own cast tags on OpenVibe.Vision: GET /api/v1/faces/cast/tags lists the named channel and media reference for each tag the person's own cast consent produced.
- Capabilities
- vision.face.cast.read
- Visibility
- first-party
- Response
application/jsonvision.face-tag-list@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.cast.read</strong> (first-party): Read your own cast tags on OpenVibe.Vision: GET /api/v1/faces/cast/tags lists the named channel and media reference for each tag the person's own cast consent produced. Revoking the consent removes them.</p>GET /api/v1/faces/consents
Read, grant and revoke purpose-scoped face or voice consent on OpenVibe.Vision: GET /api/v1/faces/consents and /consents/text, POST /consents/:feature with the signed current text, and DELETE /consent
- Capabilities
- vision.face.consent.manage
- Visibility
- first-party
- Parameters
signed_name(query, required)text_version(query, required)modality(query)feature(query) — Echo of the :feature path segment.channel(query)adult(query)region(query)
- Input
- vision.consent-request@1
- Response
application/jsonvision.consent@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.consent.manage</strong> (first-party): Read, grant and revoke purpose-scoped face or voice consent on OpenVibe.Vision: GET /api/v1/faces/consents and /consents/text, POST /consents/:feature with the signed current text, and DELETE /consents/:feature, which revokes and erases the template and derived data in one transaction. A person manages only their own record; the record says whose face or voice, the scope, expiry and how it was revoked (vision.consent@1).</p>POST /api/v1/faces/consents/{feature}
Read, grant and revoke purpose-scoped face or voice consent on OpenVibe.Vision: GET /api/v1/faces/consents and /consents/text, POST /consents/:feature with the signed current text, and DELETE /consent
- Capabilities
- vision.face.consent.manage
- Visibility
- first-party
- Parameters
feature(path, required)
- Request body
application/jsonvision.consent-request@1- Response
application/jsonvision.consent@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.consent.manage</strong> (first-party): Read, grant and revoke purpose-scoped face or voice consent on OpenVibe.Vision: GET /api/v1/faces/consents and /consents/text, POST /consents/:feature with the signed current text, and DELETE /consents/:feature, which revokes and erases the template and derived data in one transaction. A person manages only their own record; the record says whose face or voice, the scope, expiry and how it was revoked (vision.consent@1).</p>DELETE /api/v1/faces/consents/{feature}
Read, grant and revoke purpose-scoped face or voice consent on OpenVibe.Vision: GET /api/v1/faces/consents and /consents/text, POST /consents/:feature with the signed current text, and DELETE /consent
- Capabilities
- vision.face.consent.manage
- Visibility
- first-party
- Parameters
feature(path, required)signed_name(query, required)text_version(query, required)modality(query)channel(query)adult(query)region(query)
- Input
- vision.consent-request@1
- Response
application/jsonvision.consent@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.consent.manage</strong> (first-party): Read, grant and revoke purpose-scoped face or voice consent on OpenVibe.Vision: GET /api/v1/faces/consents and /consents/text, POST /consents/:feature with the signed current text, and DELETE /consents/:feature, which revokes and erases the template and derived data in one transaction. A person manages only their own record; the record says whose face or voice, the scope, expiry and how it was revoked (vision.consent@1).</p>GET /api/v1/faces/consents/text
Read, grant and revoke purpose-scoped face or voice consent on OpenVibe.Vision: GET /api/v1/faces/consents and /consents/text, POST /consents/:feature with the signed current text, and DELETE /consent
- Capabilities
- vision.face.consent.manage
- Visibility
- first-party
- Parameters
signed_name(query, required)text_version(query, required)modality(query)feature(query) — Echo of the :feature path segment.channel(query)adult(query)region(query)
- Input
- vision.consent-request@1
- Response
application/jsonvision.consent@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.consent.manage</strong> (first-party): Read, grant and revoke purpose-scoped face or voice consent on OpenVibe.Vision: GET /api/v1/faces/consents and /consents/text, POST /consents/:feature with the signed current text, and DELETE /consents/:feature, which revokes and erases the template and derived data in one transaction. A person manages only their own record; the record says whose face or voice, the scope, expiry and how it was revoked (vision.consent@1).</p>POST /api/v1/faces/detect
Identity-free face detection on OpenVibe.Vision: POST /api/v1/faces/detect counts faces and returns their boxes and scores with local YuNet.
- Capabilities
- vision.face.detect
- Visibility
- first-party
- Request body
application/jsonvision.image-request@1- Response
application/jsonvision.face-detection@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.detect</strong> (first-party): Identity-free face detection on OpenVibe.Vision: POST /api/v1/faces/detect counts faces and returns their boxes and scores with local YuNet. It stores no template, names no one and needs no consent; anyone may use it.</p>POST /api/v1/faces/enrol/{feature}
Verify yourself against your own enrolled template on OpenVibe.Vision: POST /api/v1/faces/enrol/verify and /api/v1/faces/verify.
- Capabilities
- vision.face.verify.self
- Visibility
- first-party
- Parameters
feature(path, required)
- Request body
application/jsonvision.face-enrol-request@1- Response
application/jsonvision.face-verify@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.verify.self</strong> (first-party): Verify yourself against your own enrolled template on OpenVibe.Vision: POST /api/v1/faces/enrol/verify and /api/v1/faces/verify. Refused with faces.consent_required without that person's verify consent, the same answer whether or not a template exists; a match alone unlocks nothing.</p>POST /api/v1/faces/find
Find yourself in your own private uploads on OpenVibe.Vision: POST /api/v1/faces/media, GET /api/v1/faces/media/:id and POST /api/v1/faces/find.
- Capabilities
- vision.face.find.self
- Visibility
- first-party
- Request body
application/jsonvision.find-request@1- Response
application/jsonvision.face-find-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.find.self</strong> (first-party): Find yourself in your own private uploads on OpenVibe.Vision: POST /api/v1/faces/media, GET /api/v1/faces/media/:id and POST /api/v1/faces/find. Refused with faces.consent_required without find consent, the same answer whether or not any media exists; results are private links to the caller's own rows.</p>POST /api/v1/faces/library/cluster
Group faces in your own Vision library: POST /api/v1/faces/library/cluster (region-gated), GET /api/v1/faces/library/groups and POST /api/v1/faces/library/correct (exclude, merge, split).
- Capabilities
- vision.face.library
- Visibility
- first-party
- Request body
application/jsonvision.face-library-request@1- Response
application/jsonvision.face-library-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.library</strong> (first-party): Group faces in your own Vision library: POST /api/v1/faces/library/cluster (region-gated), GET /api/v1/faces/library/groups and POST /api/v1/faces/library/correct (exclude, merge, split). Requires library consent; unknown faces stay unlabelled and nothing leaves that person's library.</p>POST /api/v1/faces/library/correct
Group faces in your own Vision library: POST /api/v1/faces/library/cluster (region-gated), GET /api/v1/faces/library/groups and POST /api/v1/faces/library/correct (exclude, merge, split).
- Capabilities
- vision.face.library
- Visibility
- first-party
- Request body
application/jsonvision.face-library-request@1- Response
application/jsonvision.face-library-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.library</strong> (first-party): Group faces in your own Vision library: POST /api/v1/faces/library/cluster (region-gated), GET /api/v1/faces/library/groups and POST /api/v1/faces/library/correct (exclude, merge, split). Requires library consent; unknown faces stay unlabelled and nothing leaves that person's library.</p>GET /api/v1/faces/library/groups
Group faces in your own Vision library: POST /api/v1/faces/library/cluster (region-gated), GET /api/v1/faces/library/groups and POST /api/v1/faces/library/correct (exclude, merge, split).
- Capabilities
- vision.face.library
- Visibility
- first-party
- Parameters
action(query, required)region(query)ids(query)
- Input
- vision.face-library-request@1
- Response
application/jsonvision.face-library-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.library</strong> (first-party): Group faces in your own Vision library: POST /api/v1/faces/library/cluster (region-gated), GET /api/v1/faces/library/groups and POST /api/v1/faces/library/correct (exclude, merge, split). Requires library consent; unknown faces stay unlabelled and nothing leaves that person's library.</p>POST /api/v1/faces/media
Find yourself in your own private uploads on OpenVibe.Vision: POST /api/v1/faces/media, GET /api/v1/faces/media/:id and POST /api/v1/faces/find.
- Capabilities
- vision.face.find.self
- Visibility
- first-party
- Request body
application/jsonvision.find-request@1- Response
application/jsonvision.face-find-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.find.self</strong> (first-party): Find yourself in your own private uploads on OpenVibe.Vision: POST /api/v1/faces/media, GET /api/v1/faces/media/:id and POST /api/v1/faces/find. Refused with faces.consent_required without find consent, the same answer whether or not any media exists; results are private links to the caller's own rows.</p>GET /api/v1/faces/media/{id}
Find yourself in your own private uploads on OpenVibe.Vision: POST /api/v1/faces/media, GET /api/v1/faces/media/:id and POST /api/v1/faces/find.
- Capabilities
- vision.face.find.self
- Visibility
- first-party
- Parameters
id(path, required)
- Input
- vision.find-request@1
- Response
application/jsonvision.face-find-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.find.self</strong> (first-party): Find yourself in your own private uploads on OpenVibe.Vision: POST /api/v1/faces/media, GET /api/v1/faces/media/:id and POST /api/v1/faces/find. Refused with faces.consent_required without find consent, the same answer whether or not any media exists; results are private links to the caller's own rows.</p>POST /api/v1/faces/verify
Verify yourself against your own enrolled template on OpenVibe.Vision: POST /api/v1/faces/enrol/verify and /api/v1/faces/verify.
- Capabilities
- vision.face.verify.self
- Visibility
- first-party
- Request body
application/jsonvision.face-enrol-request@1- Response
application/jsonvision.face-verify@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.face.verify.self</strong> (first-party): Verify yourself against your own enrolled template on OpenVibe.Vision: POST /api/v1/faces/enrol/verify and /api/v1/faces/verify. Refused with faces.consent_required without that person's verify consent, the same answer whether or not a template exists; a match alone unlocks nothing.</p>GET /api/v1/find
Index and search a person's own images by CLIP embedding on OpenVibe.Vision: POST /api/v1/index stores one scoped embedding per item and GET/POST /api/v1/find searches only that person's own private i
- Capabilities
- vision.media.find
- Visibility
- first-party
- Input
- vision.find-request@1
- Response
application/jsonvision.find-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.media.find</strong> (first-party): Index and search a person's own images by CLIP embedding on OpenVibe.Vision: POST /api/v1/index stores one scoped embedding per item and GET/POST /api/v1/find searches only that person's own private index, by words or by an example image. No public image index is made; every read is owner-checked.</p>POST /api/v1/find
Index and search a person's own images by CLIP embedding on OpenVibe.Vision: POST /api/v1/index stores one scoped embedding per item and GET/POST /api/v1/find searches only that person's own private i
- Capabilities
- vision.media.find
- Visibility
- first-party
- Request body
application/jsonvision.find-request@1- Response
application/jsonvision.find-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.media.find</strong> (first-party): Index and search a person's own images by CLIP embedding on OpenVibe.Vision: POST /api/v1/index stores one scoped embedding per item and GET/POST /api/v1/find searches only that person's own private index, by words or by an example image. No public image index is made; every read is owner-checked.</p>POST /api/v1/index
Index and search a person's own images by CLIP embedding on OpenVibe.Vision: POST /api/v1/index stores one scoped embedding per item and GET/POST /api/v1/find searches only that person's own private i
- Capabilities
- vision.media.find
- Visibility
- first-party
- Request body
application/jsonvision.find-request@1- Response
application/jsonvision.find-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.media.find</strong> (first-party): Index and search a person's own images by CLIP embedding on OpenVibe.Vision: POST /api/v1/index stores one scoped embedding per item and GET/POST /api/v1/find searches only that person's own private index, by words or by an example image. No public image index is made; every read is owner-checked.</p>GET /api/v1/models
Read OpenVibe.Vision's model menu: GET /api/v1/models returns the AI route's offered provider:model hints, the configured hints and the local engines present, with no subject data.
- Capabilities
- vision.models.read
- Visibility
- first-party
- Response
application/jsonvision.models@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.models.read</strong> (first-party): Read OpenVibe.Vision's model menu: GET /api/v1/models returns the AI route's offered provider:model hints, the configured hints and the local engines present, with no subject data. Public; OpenVibe.AI's router is still the authority.</p>POST /api/v1/moments
Find moments in a stream or VOD on OpenVibe.Vision: POST /api/v1/moments compares up to 30 timestamped frames with CLIP prompt embeddings and a histogram scene-change pass, returning scene changes and
- Capabilities
- vision.video.moments
- Visibility
- first-party
- Request body
application/jsonvision.moments-request@1- Response
application/jsonvision.moments-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.video.moments</strong> (first-party): Find moments in a stream or VOD on OpenVibe.Vision: POST /api/v1/moments compares up to 30 timestamped frames with CLIP prompt embeddings and a histogram scene-change pass, returning scene changes and candidate moments. A candidate is a suggestion for Live or Media to accept.</p>POST /api/v1/ocr
Read text from an image with OpenVibe.Vision's local Tesseract 5 reader: POST /api/v1/ocr returns the text, mean confidence and word boxes at zero cost, anonymously.
- Capabilities
- vision.text.read
- Visibility
- first-party
- Request body
application/jsonvision.ocr-request@1- Response
application/jsonvision.answer-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.text.read</strong> (first-party): Read text from an image with OpenVibe.Vision's local Tesseract 5 reader: POST /api/v1/ocr returns the text, mean confidence and word boxes at zero cost, anonymously. <code>fallback</code> asks OpenVibe.AI only when the local pass found no usable text, and that fallback needs a signed-in person or this capability.</p>POST /api/v1/product
Match a product photo to offers on OpenVibe.Vision: POST /api/v1/product describes the product only (never a person), embeds it with CLIP and returns candidate offers from OpenVibe.Deals and open.shoe
- Capabilities
- vision.product.match
- Visibility
- first-party
- Request body
application/jsonvision.product-request@1- Response
application/jsonvision.product-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.product.match</strong> (first-party): Match a product photo to offers on OpenVibe.Vision: POST /api/v1/product describes the product only (never a person), embeds it with CLIP and returns candidate offers from OpenVibe.Deals and open.shoes with their score and URL. A candidate is not a verified price.</p>POST /api/v1/receipt
Read a receipt on OpenVibe.Vision: POST /api/v1/receipt returns the store, line items and total the local OCR reader extracted; `fallback` asks OpenVibe.AI only when the local pass could not produce b
- Capabilities
- vision.receipt.read
- Visibility
- first-party
- Request body
application/jsonvision.receipt-request@1- Response
application/jsonvision.receipt-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.receipt.read</strong> (first-party): Read a receipt on OpenVibe.Vision: POST /api/v1/receipt returns the store, line items and total the local OCR reader extracted; <code>fallback</code> asks OpenVibe.AI only when the local pass could not produce both. OpenVibe.Food decides what enters a pantry.</p>GET /api/v1/review
Read OpenVibe.Vision's unsafe-image review queue and one review, including its operator report and the logged operator views.
- Capabilities
- vision.review.read
- Visibility
- first-party
- Response
- —
- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.review.read</strong> (first-party): Read OpenVibe.Vision's unsafe-image review queue and one review, including its operator report and the logged operator views. Staff use it through the review pages; a service token holding this capability can read the queue. POST /api/v1/review/:id/reveal opens one 60-second Media evidence view and logs it.</p>POST /api/v1/review
Sort one image (or one AI text) into OpenVibe.Vision's unsafe-image review: exactly fine (nudity allowed), sex_acts (never public; kept for its owner) or minor_sexual (always blocked, quarantined and
- Capabilities
- vision.image.review
- Visibility
- first-party
- Response
- —
- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.image.review</strong> (first-party): Sort one image (or one AI text) into OpenVibe.Vision's unsafe-image review: exactly fine (nudity allowed), sex_acts (never public; kept for its owner) or minor_sexual (always blocked, quarantined and reported to the operator). POST /api/v1/review accepts a multipart image, a data URL, a public https image URL or text, plus the caller's object reference; the answer carries the category, plain words, the action and the operator report for category 3. Media, Community and Live call it with their own service token. No image bytes are stored.</p>GET /api/v1/review/{id}
Read OpenVibe.Vision's unsafe-image review queue and one review, including its operator report and the logged operator views.
- Capabilities
- vision.review.read
- Visibility
- first-party
- Parameters
id(path, required)
- Response
- —
- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.review.read</strong> (first-party): Read OpenVibe.Vision's unsafe-image review queue and one review, including its operator report and the logged operator views. Staff use it through the review pages; a service token holding this capability can read the queue. POST /api/v1/review/:id/reveal opens one 60-second Media evidence view and logs it.</p>POST /api/v1/review/{id}/decide
Set one OpenVibe.Vision unsafe-image review to exactly fine, sex_acts or minor_sexual.
- Capabilities
- vision.review.decide
- Visibility
- first-party
- Parameters
id(path, required)
- Response
- —
- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.review.decide</strong> (first-party): Set one OpenVibe.Vision unsafe-image review to exactly fine, sex_acts or minor_sexual. POST /api/v1/review/:id/decide records who decided and when, and an overruling category releases Media's evidence hold. Staff use it through the review page; a service token holding this capability can make the same decision.</p>POST /api/v1/review/{id}/reveal
Read OpenVibe.Vision's unsafe-image review queue and one review, including its operator report and the logged operator views.
- Capabilities
- vision.review.read
- Visibility
- first-party
- Parameters
id(path, required)
- Response
- —
- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.review.read</strong> (first-party): Read OpenVibe.Vision's unsafe-image review queue and one review, including its operator report and the logged operator views. Staff use it through the review pages; a service token holding this capability can read the queue. POST /api/v1/review/:id/reveal opens one 60-second Media evidence view and logs it.</p>GET /api/v1/review/reports
Read OpenVibe.Vision's unsafe-image review queue and one review, including its operator report and the logged operator views.
- Capabilities
- vision.review.read
- Visibility
- first-party
- Response
- —
- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.review.read</strong> (first-party): Read OpenVibe.Vision's unsafe-image review queue and one review, including its operator report and the logged operator views. Staff use it through the review pages; a service token holding this capability can read the queue. POST /api/v1/review/:id/reveal opens one 60-second Media evidence view and logs it.</p>POST /api/v1/ui-check
Run OpenVibe.Vision's UI check: POST /api/v1/ui-check takes HTML, a public URL or a screenshot plus an optional viewport and returns overflow, cut-off text, low contrast, overlap and layering findings
- Capabilities
- vision.ui.check
- Visibility
- first-party
- Request body
application/jsonvision.ui-check-request@1- Response
application/jsonvision.ui-check-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.ui.check</strong> (first-party): Run OpenVibe.Vision's UI check: POST /api/v1/ui-check takes HTML, a public URL or a screenshot plus an optional viewport and returns overflow, cut-off text, low contrast, overlap and layering findings with counts and severity; GET /api/v1/ui-checks/:id reads a saved check. OpenVibe.Design's Arena is the caller today; a signed-in person may also use it. The check runs entirely on Vision's host (static HTML/CSS parsing, or OCR boxes and pixel sampling for a screenshot): it executes no JavaScript and fetches only a public URL through the SSRF guard.</p>GET /api/v1/ui-checks/{id}
Run OpenVibe.Vision's UI check: POST /api/v1/ui-check takes HTML, a public URL or a screenshot plus an optional viewport and returns overflow, cut-off text, low contrast, overlap and layering findings
- Capabilities
- vision.ui.check
- Visibility
- first-party
- Parameters
id(path, required)
- Input
- vision.ui-check-request@1
- Response
application/jsonvision.ui-check-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>vision.ui.check</strong> (first-party): Run OpenVibe.Vision's UI check: POST /api/v1/ui-check takes HTML, a public URL or a screenshot plus an optional viewport and returns overflow, cut-off text, low contrast, overlap and layering findings with counts and severity; GET /api/v1/ui-checks/:id reads a saved check. OpenVibe.Design's Arena is the caller today; a signed-in person may also use it. The check runs entirely on Vision's host (static HTML/CSS parsing, or OCR boxes and pixel sampling for a screenshot): it executes no JavaScript and fetches only a public URL through the SSRF guard.</p>POST /api/v1/watch
Watch a camera still on OpenVibe.Vision: POST /api/v1/watch finds the requested classes (DETR labels, snow, delivery, package through CLIP, or a histogram scene change against previous_image) and retu
- Capabilities
- vision.camera.watch
- Visibility
- first-party
- Request body
application/jsonvision.watch-request@1- Response
application/jsonvision.watch-result@1- Errors
- errors.problem@1 (application/problem+json)