.char file it came in can check it. This endpoint needs no API key, so a publisher, platform or agency can confirm a license before using the work. A key on its own is not enough: the check also takes the signature from the license block inside the file, so a key copied from somewhere else proves nothing.
GET /v1/licenses/{key}/verify?signature=...
Read the signature from the file’s manifest, then ask:
signature is required. Without it the request is refused.
status is one of:
A sandbox license (
lic_test_...) always answers with "env": "sandbox" and "test": true. Treat it as a test, never as permission.
char names the character by the subject_id the provider gave it and the version the license covers, so you can match the answer to a file’s manifest without learning who the person is.
The licensee is given as a team id only, never by name. While a license waits for its licensee to sign up, licensee_team_id is null.
Checking scope
Add any ofuse, media and territory as query parameters to get in_scope. It is true only when the license is valid and every parameter you sent matches the scope, ignoring case. A license whose territories include worldwide matches every territory.
Checking offline
Thesignature and kid let you confirm the license was issued by Omnichar without calling us again. See Verify a license signature offline.
Without code
To check a license, open cloud.omnichar.org/verify. No sign-in is needed. Paste the license key and add the.char it came with; the page checks only when it has both, and says so if the file carries a different license. The page reads the file in your browser and never uploads it.
An image or video made with Omnichar names the license it was made under, but carries no signature, so it cannot be verified on its own. Drop it on the page to see which license it names, then add that license’s .char.
Verify is limited to 60 requests a minute per client address.