Check that your ads really played.
The Vojo API tells you what was shown on each screen, and how sure Vojo is, from independent evidence. Register screens, wrap creatives and get each play's verification by REST and signed webhook.
Make your first request
Every call uses a secret key as a bearer token. This one returns the organisation your key belongs to, and needs no scope, so it's a good way to check that your key works.
curl https://api.vojo-media.com/v1/organisation \
-H "Authorization: Bearer $VOJO_KEY"import { createVojoClient } from "@vojo/api-client";
const api = createVojoClient({
baseUrl: "https://api.vojo-media.com",
getToken: () => process.env.VOJO_KEY,
});
const { data, error } = await api.GET("/v1/organisation");How an integration fits together
Register your screens
Create a site for each venue and a screen for each display, then keep Vojo's ids against your own records.
Register screensWrap each creative
Send a creative's URL and get back a Vojo Passport to schedule in its place. It reports its own play as soon as it's shown.
Wrap a creativeRead the verification
Each play gets a trust score and a band from the evidence Vojo received. A Harvester on the screen can corroborate what Passport reports.
Read verification and playsReceive it as it happens
Vojo sends signed webhooks when a play completes and when its score is final, so you don't have to poll.
Receive webhooks
Webhook events: 8 events and their payloads.
Core concepts: organisations, screens, Harvesters, Passport, plays and scores in plain English.
Error codes: what each one means and what to do next.
Changelog: how the API changes, and how to pin a version.