Quickstart
This guide walks you through the three things you need to do to submit
your first verification: get an account, generate an API key, and call
POST /v1/verify with an image. The whole loop takes about five minutes.
A photo to upload (JPEG, PNG, or WebP, under 10 MB) and a terminal with
curl. Anything that can speak HTTP works — we'll use curl for the
examples but a Node, Python, Flutter, or React Native client works the
same way.
Try your workflow in the browser first
You can evaluate a photo before writing an integration. After signing up, open Choose a workflow and select Check a damage photo or Verify parking. Open the test, upload a photo and run it. Review the verdict, failed criteria and feedback, then try a second photo with a different expected outcome.
For an API integration, use the policy ID shown in your sandbox. The example below
uses scooter_parking; replace it with your authorized damage policy when testing
vehicle photos. The public demo's policy names are not your account's policy IDs.
For a complete vehicle, start with vehicle inspection software and the vehicle assessment API. For customer-led capture at delivery or pickup, use the inspection links guide. Workspace access is arranged for your account before those workflows can be tested.
1. Create an account
Sign up at verify.switchlabs.dev/signup. You'll land on the dashboard with a sandbox API key, a sample policy, and $5 of test credit ready to use. No credit card is required.
2. Generate an API key
From the dashboard, open Settings → API keys and click Create
key. VerifyAI API keys start with the vai_ prefix:
vai_live_8x9k2m4n7p3q5w8r1t6y2u4i9o0a3sTreat API keys like passwords. If you must use a key inside a mobile app, rotate it regularly and monitor request volume from the dashboard. Never commit keys to a public repository.
3. Submit your first verification
Send a photo to POST /v1/verify. The request needs two things: an
image and a policy ID. Use the built-in scooter_parking policy to
start.
curl -X POST https://verify.switchlabs.dev/api/v1/verify \
-H "X-API-Key: vai_your_api_key" \
-F "image=@scooter.jpg" \
-F "policy=scooter_parking"You'll get back a JSON object describing whether the image was compliant and why:
{
"id": "ver_8x92m4k9",
"created_at": "2026-05-12T14:30:00Z",
"status": "success",
"is_compliant": false,
"confidence": 0.94,
"policy": "scooter_parking",
"category": "unsafe",
"violation_reasons": ["blocking_sidewalk", "kickstand_up"],
"feedback": "Please deploy the kickstand and move away from the walkway.",
"metadata": {},
"image_url": "https://...signed-url..."
}That's the loop. Every verification:
- Runs through the configured policy (
scooter_parking,bike_parking,forest_designated_bay, or any custom policy you've authored). - Returns a structured
categoryand human-readablefeedbackstring you can show to the end user. - Persists in the dashboard so you can audit decisions later.
Plan a small evaluation
Use a set of photos with outcomes your team has already labeled: an acceptable photo, a photo that should fail your policy, and a photo that needs a retake. For each result, record the expected outcome, returned category and feedback, and what your application should do next. Keep error responses separate from completed verification decisions. See Your first verification for the response fields and error handling.
Compare single-photo and vehicle appraisal pricing before choosing which workflow to integrate. The damage detection API guide explains the two integration paths.
What's next
- Authentication — header format, key rotation, rate-limit headers.
- Verify endpoint — full request and response schema, including JSON-with-base64 mode.
- Concepts: Policies — how categories, criteria, and severities combine into a verification decision.
- SDKs — drop in a scanner instead of writing your own camera UI.