API reference
Customers
The person behind the leads — one record, however many times they ask.
GET/customers
scopecustomers:readCustomer records in the account.
Parameters
email
string
Exact match. The usual way to check whether somebody already exists.
updated_since
ISO 8601
Only records changed at or after this instant.
limit
integer, 1–100
Defaults to 25.
cursor
string
From
meta.next_cursor.Request
curl "https://api.zinevu.com/api/public/v1/[email protected]" \ -H "Authorization: Bearer $ZINEVU_API_KEY"Response
{ "data": [ { "id": 9931, "customer_no": "K-2026-0412", "name": "J. de Vries", "email": "[email protected]", "language": "nl", "address": { "street": "Dorpsstraat", "house_number": "12", "postcode": "3811 AB", "city": "Amersfoort", "country": "NL", "phone": "+31 6 1234 5678" }, "invoice_address": null, "created_at": "2026-04-02T11:20:44+00:00", "updated_at": "2026-09-21T09:14:03+00:00" } ], "meta": { "message": "OK", "has_more": false, "next_cursor": null, "limit": 25 }}GET/customers/{id}
scopecustomers:readOne customer.
Addresses#
address is an object rather than a string, and the phone number lives inside it — that is where the portal reads it from, so it is where you will find it. invoice_address is null unless the customer has a different one for invoicing.
A key reads contact details in full
The portal can hide customer contact details from members who do not need them; that is a per-member permission and it does not apply to an API key, which belongs to the account rather than to a person. Treat a key with customers:read as a key that can read every name, address and phone number in the account, and scope it accordingly.