Retrieve a contact
Addresses are stored lowercased and the lookup matches that way, so case in the path does not matter. The single-contact response also carries `audiences`, every list the contact is in.
Runs the real call on your workspace.
GET /contacts/{email}
Addresses are stored lowercased and the lookup matches that way, so case in the path does not matter. The single-contact response also carries audiences, every list the contact is in.
Example
Needs contacts:read. URL-encode the @.
curl "$OE/contacts/ada%40example.com" -H "$AUTH"{ "object": "contact", "email": "[email protected]", "name": "Ada Lovelace", "source": "auto", "notes": null, "photoUrl": "https://cdn-prod.openemail.uk/contacts/photos/5b0e2c7a-91d4-4f3e-8a26-c4f1d9e07b3a.webp", "lastSeenAt": "2026-08-29T08:19:08.000Z", "createdAt": "2026-08-01T10:00:00.000Z", "updatedAt": "2026-08-29T08:19:08.000Z", "audiences": [ { "id": "aud_9f2c4b7e1a0d63d84c5f2e7b", "name": "All contacts", "builtin": "default" } ]}An unknown address is a 404, not an empty contact.
Writing is on the neighbouring pages: Create a contact, Update a contact, Set a contact's audiences and Delete a contact.
A caller that also holds forms:read gets signUps: the last 20 sign-ups of the address, newest first, each with its form, its status and its answers. The workspace owner sees every form, and anybody else the forms they created.