Skip to main content
A verification certifies a photo taken live, right now, through a link. An audit checks a file that already exists: a photo someone emailed you, one sitting in your system, one you downloaded. No link, no camera, no person on the other end. By default Rial runs three checks on every audited file: is it a photo of a screen, does it look AI-generated, and is it already online. Describe the photo (expectedObject, context) and it also checks that it shows that; send conditionAspects and it scores the condition. Because no device stood behind the photo, there is no rial: true/false; you get the checks that tripped and decide.

One call

audits.run uploads the file, starts the analysis and waits for the result. It takes a few seconds.

What you get back

  • verdict.signals lists the checks that tripped. Empty means every check that ran came back clean. screen_detected is a photo of a screen, ai_detected an AI-generated image, found_online an image already published. One check tripping never stops the others, so two can appear together.
  • objectMatch says whether the photo shows your expectedObject.
  • condition scores each aspect 0 to 10 with a one-line reason.
Every field is explained in Verdicts.

Don’t wait

audits.create uploads and starts the analysis, then returns at once. Read the result later with verifications.get(id), or pass webhookUrl and Rial POSTs verification.completed to you.

Only AI detection

Pass checks to run only the checks you name. checks: ['ai'] will check for AI generation, skipping screen detection and found online.
checks takes any of 'screen', 'ai' and 'reverse' (found online). Leave it out and all three run. Available today in the sandbox, and in production with the next release. Needs @rial/sdk 0.4.0 or later.

AI only, in one call

Send the photo and get the verdict back in the same response. Available today in the sandbox, and in production with the next release.
Other checks, expectedObject, conditionAspects and context go through the regular flow above.

Input

Audits are billed like verifications. They go through the Node SDK today, or POST /v1/audits/sync for AI only; for another language, write to developers@rial.io.