Jobs

Attaches a photo to a job; it appears on the job's timeline as a `Photo` entry.

Send multipart/form-data with the image in a part named file and an optional caption part, e.g. curl -X POST https://app.flexonthejob.com/api/v1/jobs/42/photos -H "Authorization: Bearer flx_live_…" -H "Idempotency-Key: 5f0c…" -F "file=@roof.jpg" -F "caption=Rust on the bottom panel". JPEG and PNG only (detected from the file's bytes), up to 10 MB. The entry is attributed to the key's creator and is the same kind of entry the Flex field app creates from the phone camera: it shows as a thumbnail on the job's page in the web app, syncs to every device, and its image is included in the organization data export. Needs ManageJobs — the same permission as adding a job update in the app — and an Idempotency-Key header (a retry with the same key and the same file replays the first response instead of adding a second photo).

post/api/v1/jobs/{id}/photos

Request

  • Base URL: https://app.flexonthejob.com
  • URL: https://app.flexonthejob.com/api/v1/jobs/{id}/photos
  • Auth: HTTP bearer

Path parameters

idinteger required

Job id from a list response, e.g. 42.

Response

The created timeline entry (type = Photo, attachmentName set). Location points at the job.

idinteger

Entry id.

syncIdstring uuid

Stable cross-device identifier of the entry.

typestring

Kind of entry — JobUpdateType name such as GeneralNote, ProgressUpdate, Issue, CustomerRequest, StatusChange, Photo or Signature.

descriptionstring

The note text.

isInternalboolean

True when the note is staff-only and must not be shown to the customer.

createdAtstring date-time

When the entry was written, ISO-8601 UTC.

createdByNamestring nullable

Display name of the author, when recorded.

oldStatusstring nullable

For status-change entries: the previous status name; otherwise null.

newStatusstring nullable

For status-change entries: the new status name; otherwise null.

attachmentNamestring nullable

For Photo / Signature entries: the attached image's file name (e.g. J-1042-20260929-143015.jpg); null for entries without an attachment. The image itself is viewable on the job's page in the web app and is included in the organization data export.

Changes

No recorded changes to this operation across all 1 revision of this API.