Photography
Video
Digital
Not sure what you need? We’ll help you choose.- Live Demo
- Photographers
- How it works
- Use Cases
The request fields and response shapes for reading orders and delivered media.
Use HTTPS. The documented requests send application/x-www-form-urlencoded bodies with a required key field. Both handlers also accept a key in the URL, but body fields keep credentials out of copied URLs and URL logs. Keep keys and response data out of your own application logs as well.
Access follows the QwikVid user associated with the key. An API key does not grant access to another customer's orders. An unauthorized request must be treated as a failure.
POST /api/v2/utilities/order/list/| Field | Location | Meaning |
|---|---|---|
key | Form · required | Your approved QwikVid API key. |
action | Form · required | Use getOrders. |
view_range | Query · optional | Appointment-date range: 30days, 60days, 6months, 12months or 24months. Omit for no date-range filter. |
curl --request POST \
'https://www.qwikvid.com/api/v2/utilities/order/list/?view_range=30days' \
--data-urlencode "key=$QWIKVID_API_KEY" \
--data-urlencode 'action=getOrders'Success contains error: null and a data array. An empty array is a valid result. This example is illustrative and shows selected fields only.
{
"error": null,
"data": [
{
"order_no": 12345,
"ticket_id": "EXAMPLE_TICKET_ID",
"status": "open",
"project_title": "Example property",
"event_date": "2026-10-26T10:00:00.000-07:00",
"approximate_eta": null
}
]
}order_no is the numeric display order number. ticket_id is the identifier used by the detail endpoint. Appointment and ETA values can be null; retain the supplied timezone offset when parsing dates. Some strings in this older response are HTML-encoded. Treat all customer text as text, not executable HTML.
There is no page-number or cursor parameter in this documented contract. Date-range filtering can help reduce response size, but is not an incremental change feed. Coordinate large-account synchronization with support.
POST /api/v2/utilities/order/detail/| Field | Location | Meaning |
|---|---|---|
key | Form · required | Your approved QwikVid API key. |
ticket_id | Form · required | The ticket ID from the list response, not order_no. |
include_photos | Form · optional | Use false or 0 to omit the individual photo list. Photos are included by default. |
curl --request POST \
'https://www.qwikvid.com/api/v2/utilities/order/detail/' \
--data-urlencode "key=$QWIKVID_API_KEY" \
--data-urlencode "ticket_id=$QWIKVID_TICKET_ID" \
--data-urlencode 'include_photos=false'Success is a root JSON object. The example below shows selected fields with fictional identifiers and a nonfunctional example URL.
{
"order_no": 12345,
"ticket_id": "EXAMPLE_TICKET_ID",
"status": "open",
"can_download_deliverables": true,
"download_deliverables_available": true,
"photo_package_progress": {
"standard": {
"ready": true,
"job_status": "complete"
},
"high_resolution": {
"entitled": false,
"ready": false,
"job_status": ""
}
},
"standard_photos_url": "https://media.example.invalid/example-standard.zip",
"hi_res_photos_url": "",
"video_url": "",
"mls_video_url": "",
"matterport_url": ""
}| Field | How to use it |
|---|---|
can_download_deliverables | Whether this user can download deliverables. Check before exposing any download; an outstanding balance can prevent customer downloads. |
download_deliverables_available | Whether at least one download deliverable exists. This does not establish that every requested service is complete. |
photo_package_progress.standard.ready | Readiness of the standard photo package. Use with a nonempty standard_photos_url. |
photo_package_progress.high_resolution | Separate entitled, ready and job_status values. Do not assume a high-resolution package is included. |
standard_photos_url / hi_res_photos_url | Photo-package links. Empty values can mean not available or not accessible to this user. |
video_url / mls_video_url | Distinct listing and MLS video variants. Check your publishing destination requirements; do not substitute one for the other automatically. |
matterport_url / schematic_floor_plan_url | Available tour and floor-plan links; may be empty. |
status | Order status. It is not a substitute for checking the specific media you intend to publish. |
Keep returned URLs intact. Do not construct filenames, assume a fixed storage hostname or promise links never change. Refresh order details before use, and handle an unavailable file gracefully. Your application must enforce customer access even if a media URL is present.
The list and detail endpoints have different historical response shapes. Inspect both HTTP status and JSON. In particular, the detail handler can return an error envelope with HTTP 200.
{
"error": {
"message": "Access denied",
"exception": null
},
"data": null
}| Response | Recommended handling |
|---|---|
| List: HTTP 401 | Check credentials and account access. Stop automatic retries. |
| List: HTTP 400 | Check the required action and request parameters. |
Detail: JSON error with HTTP 200 | Treat it as failure. Check ticket ID, credentials and order access; do not interpret 200 alone as success. |
| Network error / HTTP 5xx | For these read requests, retry a limited number of times with increasing delays. Preserve the previous result and show that it may be stale. |
A detail response without an error still needs its expected ticket_id and media fields checked. Do not automatically retry order-creation or payment operations using this read-request guidance.