New to VisionScaper?
Start here
Help Center › API keys & connections › API routes reference (api/v1 and zap)
API routes reference (api/v1 and zap)
Every public route, its method, the scope it needs, and the filters it accepts.
All routes live under /wp-json/dreamscaper/v1/. Paths below are relative to api/v1/ unless they start with zap/.
Routes
| Method | Path | Scope needed |
|---|---|---|
| GET | ping |
none |
| GET | customers |
read_customers |
| POST | customers |
write_customers |
| GET | customers/{id} |
read_customers |
| PATCH, PUT or POST | customers/{id} |
write_customers |
| POST | leads |
write_leads |
| GET | quotes |
read_quotes |
| GET | quotes/{id} |
read_quotes |
| GET | invoices |
read_invoices |
| GET | invoices/{id} |
read_invoices |
| GET | jobs |
read_jobs |
| GET | jobs/{id} |
read_jobs |
| GET | payments |
read_payments |
| GET | webhooks |
webhooks_manage |
| POST | webhooks |
webhooks_manage |
| DELETE | webhooks/{id} |
webhooks_manage |
| GET | zap/me |
none |
| POST | zap/subscribe |
webhooks_manage |
| POST or DELETE | zap/unsubscribe |
webhooks_manage |
| GET | zap/poll/{event} |
none (see note) |
For the Zapier sample route, an event name like lead.created is used. The code names a related scope per event, but the route itself is registered without one.
Lists and paging
Lists return newest first.
– limit: 1 to 100. The default is 25.
– cursor: pass the next_cursor from the previous answer.
– The answer has object: "list", data, has_more and next_cursor.
Filters
| Route | Filters |
|---|---|
| customers | stage (lead, prospect, customer, past, lost), email, phone, q (name contains), updated_since (date like 2026-01-31T00:00:00Z) |
| quotes | status, customer_id |
| invoices | status, customer_id |
| jobs | status (not_started or the job’s status), customer_id |
| payments | invoice_id, customer_id |
What counts as a job
A job is an accepted (signed) quote. Its progress is the quote’s job status. Sample quotes are never listed.
Tips
- Use
updated_sinceto pull only what changed. - Everything is scoped to your business. A key can never see another business.
- Webhooks can be made by API, but the secret is shown only once on creation.
If something goes wrong
- 404
not_found: no record with that id for your business. - 422
invalid_limitorinvalid_cursor: fix the parameter, or start again without a cursor. - 422
invalid_stageorinvalid_date: use the allowed values. - WordPress may answer 404 for a wrong path. Errors on these routes use the same JSON shape.