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.signalslists the checks that tripped. Empty means every check that ran came back clean.screen_detectedis a photo of a screen,ai_detectedan AI-generated image,found_onlinean image already published. One check tripping never stops the others, so two can appear together.objectMatchsays whether the photo shows yourexpectedObject.conditionscores each aspect 0 to 10 with a one-line reason.
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
Passchecks 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.