What it is
A read-only HTTP API for pulling your own data into a warehouse, a BI tool or your own application. It is available on the Enterprise plan.
It is read-only by design. Anything that writes to a customer-facing platform goes through the app, where the safeguards live.
Creating a key
- Go to Settings, then API keys.
- Give the key a name describing where it will be used, such as "Data warehouse sync".
- Copy the key immediately. It is shown once and never again, because only a hash of it is stored.
Copy your API key now. You will not see it again.
dpx_live_7f3a91c4e08b42d6ae5c1b9f2d740e63
A key is scoped to one business. If you run several, create a key per business. Revoking is instant and cannot be undone, so create the replacement first, swap it in, then revoke the old one.
Authenticating
Send the key as a bearer token:
Authorization: Bearer dpx_live_your_key_here
A missing, malformed or revoked key returns 401.
Resources
GET /reviewsreturns platform, rating, author name, text, sentiment, whether it has been replied to, and the published date.GET /contactsreturns name, email, phone, company, tags and created date.GET /companiesreturns name, domain, phone, address and created date.GET /ordersreturns contact, kind, number, status, total, currency, and the ordered and delivered dates.kindtells a purchase apart from an enquiry.GET /npsreturns contact, score, comment and created date.
An unknown resource returns 404 with the list of valid ones in the body.
Paging
Every resource takes limit and offset. The default limit is 50 and the maximum is 200. Responses echo both back alongside data, so you can page until you get fewer rows than you asked for.
GET /reviews?limit=200&offset=400
Notes worth knowing
- Reviews are scoped to the listings belonging to the key's business. A business with no listings returns an empty array, not an error.
- Ordering is newest first for reviews, orders and NPS, and alphabetical for companies.
- Fields are added over time, never silently removed. Parse defensively and ignore fields you do not recognise.
- Each call stamps the key's last-used time, which is how you spot a key nothing is using any more.
Polling or webhooks?
Use the API for bulk reads and backfills. For "tell me when something happens", use webhooks instead of polling every minute.