Simple JSON POST endpoints for creating jobs, listing jobs, and retrieving job details.
API URL
https://api.work.photos
Content Type
application/json
Authentication
authKey
CORS
POST, OPTIONS - any origin
1) Create a Job POST/job/create
Create a new job and optionally post an initial text message.
- authKey - required
- workspaceId - required
- name - required job title
- message - optional initial message
Request body
json
{
"authKey": "YOUR_AUTH_KEY",
"workspaceId": "YOUR_WORKSPACE_ID",
"name": "Job title",
"message": "Optional initial message"
}
Response 200
json
{
"jobId": "{jobId}",
"webAppDeeplink": "https://app.workphotos.com/{workspaceId}/jobs/{jobId}",
"jobReportDeeplink": "https://reports.workphotos.com/{jobId}"
}
Example cURL
bash
curl -X POST "https://api.work.photos/job/create" \
-H "content-type: application/json" \
-d '{
"authKey": "YOUR_AUTH_KEY",
"workspaceId": "YOUR_WORKSPACE_ID",
"name": "Boiler service",
"message": "Customer reports low pressure"
}'
2) List Jobs POST/job/list
List jobs for a workspace. Returns 30 jobs per page.
- page - optional integer, defaults to
0
- Use
page=1
,page=2
, etc. to paginate forward
Request body
json
{
"authKey": "YOUR_AUTH_KEY",
"workspaceId": "YOUR_WORKSPACE_ID"
/* page is optional and defaults to 0 */
}
Response 200
json
{
"jobs": [
{
"jobId": "68d0ed784f25458a9e878d15",
"name": "Boiler service",
"createdAt": "2025-09-22T12:34:56.000Z",
"webAppDeeplink": "https://app.workphotos.com/{workspaceId}/jobs/{jobId}",
"jobReportDeeplink": "https://reports.workphotos.com/{jobId}"
},
{
"jobId": "e2f4c8aa29be4b9a9a0c77e2",
"name": "Leak investigation",
"createdAt": "2025-09-22T13:10:03.000Z",
"webAppDeeplink": "https://app.workphotos.com/{workspaceId}/jobs/{jobId}",
"jobReportDeeplink": "https://reports.workphotos.com/{jobId}"
},
"..."
],
"page": 0,
"pageSize": 30,
"totalJobs": 123,
"totalPages": 5,
"pagesRemaining": 4
}
Example cURL
bash
curl -X POST "https://api.work.photos/job/list" \
-H "content-type: application/json" \
-d '{
"authKey": "YOUR_AUTH_KEY",
"workspaceId": "YOUR_WORKSPACE_ID"
/* "page": 2 - optional */
}'
3) Get Job Details POST/job/details
Return a normalized view of a job and its message history.
- jobId - required
- Messages include chat and images with timestamps and uploader info
Request body
json
{
"authKey": "YOUR_AUTH_KEY",
"workspaceId": "YOUR_WORKSPACE_ID",
"jobId": "YOUR_JOB_ID"
}
Response 200
json
{
"jobId": "68d0ed784f25458a9e878d15",
"jobName": "test",
"creatorId": "6477bc38c48b77d89ad1fcce",
"creatorName": "Craig Parker",
"creationDate": "2025-10-22T10:12:24.620Z",
"lastUpdateDate": "2025-10-30T09:03:19.566Z",
"mainThumbnail": "https://cdn.workphotos.com/....jpg",
"messages": [
{
"messageType": "chat",
"timestampUploaded": "2025-10-22T10:12:31.460Z",
"uploaderId": "6477bc38c48b77d89ad1fcce",
"uploaderName": "Craig Parker",
"textMessage": "test"
},
{
"messageType": "image",
"timestampUploaded": "2025-10-22T10:13:16.994Z",
"uploaderId": "6477bc38c48b77d89ad1fcce",
"uploaderName": "Craig Parker",
"urlToImage": "https://cdn.workphotos.com/....jpeg",
"thumbnailForImage": "https://cdn.workphotos.com/....jpeg"
}
]
}
Example cURL
bash
curl -X POST "https://api.work.photos/job/details" \
-H "content-type: application/json" \
-d '{
"authKey": "YOUR_AUTH_KEY",
"workspaceId": "YOUR_WORKSPACE_ID",
"jobId": "YOUR_JOB_ID"
}'