media_requestUpload
Get a signed upload URL for a job photo or video. Before you call this, look at the file and say what it shows in summary: plain words, findings, any text you can read (model and serial plates), measurements, and for video a transcript, key moments and the length. If what you see does not match what the worker said, tell the worker before you upload. If you cannot look at it, send summary.unable_to_analyze with a reason and the media is listed by media.needsSummary. Summaries stay inside the shop and are searchable with media.list q and search.global. Photos: JPEG, PNG, WebP, HEIC or TIFF (HEIC and TIFF are kept as sent, with a JPEG copy for viewing). Video: MP4, MOV or WebM, kept as sent, at most 100 MB and 10 minutes, never shared outside the shop. Declare the sha256 of the bytes you will send; the upload is rejected if they differ. Taken time, GPS location, heading and camera details are read from photos and kept for your shop. Copies shared outside the shop (share links, quote pages, PDFs) have that metadata removed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Default photo | |
| stage | Yes | ||
| job_id | Yes | ||
| sha256 | Yes | ||
| summary | Yes | What you saw in the file. Look at the photo or watch the video before you upload it. Send either summary (with generated_by) or unable_to_analyze, never both. | |
| shows_interior | No |