Run a cloud audit
A cloud audit drives a real screen reader against your saved journeys on a dedicated virtual machine. It is asynchronous: you start it, poll it, and read the report when it finishes.
You need an organization id, a project id, and at least one saved journey.
Check what journeys exist
Section titled “Check what journeys exist”list_journeys(project_id)If the project has none, create one — a journey is a named user flow, described in ordered steps:
create_journey( project_id, name: "Checkout", description: "Buy one item as a guest", steps: ["Open the product page", "Add to cart", "Complete checkout as a guest"])Start the audit
Section titled “Start the audit”start_agentic_audit(organization_id, project_id, journey_ids: ["jrn_…"])Omit journey_ids to run every journey in the project. The call returns a cloud run request id,
not a run id:
Cloud audit requested. Request ID: crr_…A dedicated VM is booting to run the audit — this takes ~4–5 minutes before the run appears.Poll until the run appears
Section titled “Poll until the run appears”get_audit_progress(organization_id, cloud_run_request_id)While the VM boots, this reports that there is no run yet. That is the normal state, not an error — keep polling. If nothing appears after about six minutes, the VM failed to start.
Once the audit starts, the response is the run itself, with a status and violation counts. Its
id is the run id — a different value from the request id, and the one the next two tools take.
Keep both: the request id is what you poll with, the run id is what you fetch the report with.
Keep polling while the status is queued or running. The run is finished on any of
completed, completed_with_errors, failed, or interrupted — note that
completed_with_errors means partial coverage with a readable report, so do not wait for
completed alone.
Read the report
Section titled “Read the report”Once the run has finished (completed or completed_with_errors):
get_agentic_audit_report(organization_id, audit_id: "<run id>")The report contains the violations found, each with the element it sits on, the criterion it maps
to, its impact, and — where one was captured — a screenshotKey.
Pull a violation screenshot
Section titled “Pull a violation screenshot”get_violation_screenshot(organization_id, screenshot_key: "<the violation's screenshotKey>")The field in the report is screenshotKey; the argument here is screenshot_key. Pass the one
into the other.
This returns an image, not text, so an agent that supports images can look at the failure directly.
Stop a run
Section titled “Stop a run”cancel_audit(organization_id, run_id)The stop is a request, not an immediate kill. Poll get_audit_progress until the status reads
interrupted to confirm it actually stopped.
Look at past runs
Section titled “Look at past runs”list_project_run_history(organization_id, project_id, first, after)This merges two kinds of entry: the cloud audits Binclusive drove (AgenticRun) and the static
scans your own CI reported through b8e ci (CliScan). Each entry names its kind in __typename.
The list is paginated because CI history grows a row per push — see
Page through large results.
For the exact arguments of every tool here, see the audit tool reference.