# Sight by Raku > Sight is visual AI for real work. It trains object-detection models on your own labelled photos and checks work from photos: send each photo of a job, and get a verdict (pass, fail, needs_review, incomplete), every check's outcome with its evidence, and what the user still has to do. API: https://sightapi.raku.so. TypeScript SDK: npm @raku-technologies/sight (MIT). Rules for agents: keep the API key on a server (X-Api-Key header), never in a prompt, log, phone app or web page. Always pass your own jobId and photoId, which make every call safe to repeat. Send a presigned https link to the photo, not the photo. Outcome "pending" means wait for the final answer; it never means a person must review. Show the "ask" and "still_missing" text to the user as written. Verify every webhook with verifyWebhook on the raw body before acting on it, ignore repeats by event.id, and keep the latest checked_at. Do not set or change the webhook unless the account's owner asked; it needs a key allowed to manage it. Call classes() before using detect. ## Photo checks - [Photo checks overview](https://docs.raku.so/checks/): templates, jobs, slots, verdicts, outcomes - [Quick start](https://docs.raku.so/checks/quickstart/): install the SDK, send a photo, read the result - [Sending photos](https://docs.raku.so/checks/sending-photos/): fields, wait modes (async, fast, sync), readings made on the device, detect (find just named things), removing photos, completing a job - [Results back to your app](https://docs.raku.so/checks/results/): webhooks, signature (t=,v1= HMAC-SHA256 over "."), retries, the photo with its boxes drawn on - [HTTP API](https://docs.raku.so/checks/api/): every route, the job's fields, errors - [For AI agents](https://docs.raku.so/agents/): rules, a context block, a tool definition ## Prediction API - [API overview](https://docs.raku.so/api/): base URL, authentication, data types - [Batch prediction](https://docs.raku.so/api/predict-batch/): send images, get detections and an LLM answer - [Streaming prediction](https://docs.raku.so/api/predict-stream/): results as each image is processed - [Signed URL](https://docs.raku.so/api/signed-url/): temporary links to result assets ## Optional - [Getting started](https://docs.raku.so/): create a project, train a model, copy an API key - [Labelling](https://docs.raku.so/labelling/): label photos in the browser - [SDK on npm](https://www.npmjs.com/package/@raku-technologies/sight)