Public API reference
The public HTTP API for server-side and SDK integrations — authentication headers and endpoints.
The public ingest API is served from https://api.engageapp.xyz. It is not the dashboard API and not the Actions Gateway. There are three authentication schemes depending on the endpoint.
Authentication
- Secret key — ingest endpoints only (contacts, events, enroll). Send
X-API-Key: df_…. These keys do not grant campaign or dashboard access. - Publishable key — client SDK (in-app) endpoints. Send
X-Publishable-Key: pk_…. - Action key — Actions Gateway for bots. Send
X-API-Key: act_…. Catalog:/api/v1/actions/openapi.yaml.
Server-side endpoints (secret key)
POST /api/v1/public/contacts— batch upsert contacts and register devices.POST /api/v1/public/events— batch ingest behavioral events.POST /api/v1/public/enroll— enroll a contact into a campaign.
In-app SDK endpoints (publishable key)
These are called by the client SDKs; you normally don't call them directly.
POST /api/v1/public/inapp/identify— resolve/create the contact for anexternal_id.GET /api/v1/public/inapp/messages?external_id=…— fetch the next pending takeover.POST /api/v1/public/inapp/messages/:id/events— reportshown/clicked/dismissed.POST /api/v1/public/inapp/messages/:id/survey?external_id=…— send the answers to the survey in a takeover. Body:{ "answers": [{ "question_id": "q1", "value": 9 }], "complete": true }.
Survey page endpoints (link token)
The hosted survey page uses these. The t query value is the personal token from the survey link; no API key is needed. See Surveys.
GET /api/v1/public/surveys/:id?t=…— load the questions and any earlier answers. It never records an answer.POST /api/v1/public/surveys/:id/responses?t=…— save answers. Body as above; send"complete": trueon the final submit. Returns409when the survey is not active.
When identity verification is enabled for your workspace, the in-app endpoints additionally require a valid X-Identity-Hash header. See the In-App Takeover setup guide.
Related
Server-side integration guide
Connect EngageApp to your backend with a secret API key — sync contacts, track events, and enroll contacts into campaigns.
API keys
Create and manage secret, publishable, and scoped Action API keys. Secret df_ keys do not grant dashboard or campaign access.
Events
Send behavioral events about your contacts to trigger campaigns, gate waits, and power segments.
Contacts
How EngageApp models your end-users as contacts, the fields they carry, and the ways to add them.
Web SDK reference
API reference for @engageapp/inapp-web: init, identify, onAppForeground, setHandlers, and dismiss.