REST API for integrating with Zapier, Make, or your own tools. All endpoints are under /api/v1/.
Generate API keys in Settings → API Keys. Pass them as a Bearer token in every request:
Authorization: Bearer op_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
All endpoints return 401 if the key is missing or revoked, and 429 if rate-limited (60 req/min per key).
/api/v1/contactsList contacts (id, email, domain, listId, contactName, company, role, phone, linkedinUrl, industry, status, emailVerified, createdAt). Query params: listId, limit (default 100, max 1000), offset. A key limited to one list only ever sees that list.
Response
{ contacts: Contact[], total: number, limit: number, offset: number }/api/v1/contactsImport up to 500 contacts per request. Emails are validated; a key limited to one list always writes into that list.
Request body
[{ email: string, listId?: number }]Response
{ imported: number }/api/v1/leadsSearch leads via your Apollo key (uses your Apollo credits). Query params: keyword (required), location, limit (max 100).
Response
{ leads: Lead[], total: number }/api/v1/statsAccount overview stats and usage for the current month.
Response
{ stats, usage }Configure outbound webhooks in Settings → Integrations. Each event POST a JSON payload to your URL with an X-Webhook-Signature HMAC-SHA256 header for verification.
contact.sentFired after a contact email is sent successfully.
contact.repliedFired when a reply is detected during inbox sync.
contact.bouncedFired when Brevo reports a hard bounce.
contact.unsubscribedFired when a contact unsubscribes or marks as spam.
Example payload
{
"event": "contact.replied",
"payload": {
"email": "[email protected]",
"contactId": 42,
"repliedAt": "2024-01-15T10:23:00.000Z",
"classification": "interested"
},
"firedAt": "2024-01-15T10:23:01.000Z"
}GetOutpulse · All API requests are logged and counted against your monthly usage quota.