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. Rial runs three checks on every audited file, always: 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. You don’t pick the checks. 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 all three ran and nothing tripped. screen_detected is a photo of a screen, ai_detected an AI-generated image, found_online an image already published. Every check runs; one 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.

Input

Audits are billed like verifications. They go through the Node SDK today; for another language, write to developers@rial.io.