---
title: "Verify a delivery photo via LLM"
method: POST
path: "/v1/ai/verify-photo"
tags: ["AI Functions"]
---

# Verify a delivery photo via LLM

`POST /v1/ai/verify-photo`

## Request

- Base URL: `https://api.sandbox.usenash.com`
- URL: `https://api.sandbox.usenash.com/v1/ai/verify-photo`
- Auth: none declared

Runs the proof-of-delivery / pickup / signature photo verification agent against the latest matching photo attached to the job, or against the job photo named by image_url.

## Request body

- VerifyPhotoInputSerializer
  - `jobId` string, required: The job to verify a photo for.
  - `photoType` 'pod' | 'pickup' | 'signature', required
  - `userQuestion` string, nullable: Optional extra guidance for the LLM (e.g. 'Is the package on the doorstep?').
  - `imageUrl` string, nullable: Verify this photo instead of the latest photo of photo_type. It must be one of the job's own proof-of-delivery photos (any type, any delivery attempt) on Nash's photo bucket; photo_type still picks the verifier.

## Other responses

- `422`: Unprocessable Content

---

[API](https://skmtc.dev/nash/apis/nash-api.md) - [All operations](https://skmtc.dev/nash/apis/nash-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nash/apis/nash-api/revisions/e3713837c5c9?raw)
