openapi: 3.2.0 info: title: Emotive Open Custom Events API version: v1 description: 'The public Emotive Open API for eCommerce integrations: order tracking, manual opt-outs, and custom events. Emotive documents these endpoints in prose on its knowledge base and Lists developer reference but publishes no machine-readable specification for them. This document was GENERATED by API Evangelist strictly from the request/response examples, header rules, body-parameter tables and HTTP status-code tables Emotive publishes on the pages listed in x-origin. No field, endpoint, or status code appears here that Emotive does not publish. Fields that Emotive documents only inside screenshots (the full Orders request/response parameter tables) are represented from the published cURL/Python payload example rather than from the images.' contact: name: Emotive Support email: support@emotive.io url: https://help.emotive.io/ x-origin: - url: https://help.emotive.io/docs/integrations/open-api-integration-orders format: documentation method: generated retrieved: '2026-08-13' note: Orders endpoint, Authorization scheme, required body parameters, full payload example, HTTP status-code tables. - url: https://help.emotive.io/docs/integrations/custom-site-api format: documentation method: generated retrieved: '2026-08-13' note: Authentication, content types, HTTP response-code conventions and the Orders API base URL. - url: https://emotive.gitbook.io/emotive-lists/reference/api-reference/unsubscribe format: documentation method: generated retrieved: '2026-08-13' note: Manual opt-out endpoint, headers, body and 200/400 response bodies. - url: https://emotive.gitbook.io/emotive-lists/reference/api-reference/custom-events format: documentation method: generated retrieved: '2026-08-13' note: Custom events endpoint, body parameter table and 200/401 response bodies. servers: - url: https://api.emotiveapp.co description: Emotive Open API (all three documented paths answer here; the apex host emotiveapp.co answers identically) - url: https://emotiveapp.co description: Apex host named by the Lists developer reference for the opt-out and custom-event paths security: - TokenAuth: [] tags: - name: Custom Events description: Push arbitrary customer events that can trigger an Emotive Flow. paths: /campaign_engine/api/v1/custom_events/: post: tags: - Custom Events operationId: createCustomEvent summary: Push a custom event description: Push a custom event for a subscriber. At least one of phone_number or email must be supplied to identify the subscriber. Custom events are consumed by a Flow (Experience) with a "Custom Event" trigger filtered on event_name. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CustomEvent' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/Message' example: message: success '400': description: Field validation error. Field-level errors are keyed by field name. content: application/json: schema: $ref: '#/components/schemas/FieldErrors' example: event_name: - This field is required. event_datetime: - This field is required. '401': description: Invalid token. content: application/json: schema: $ref: '#/components/schemas/Detail' example: detail: Invalid token. components: schemas: CustomEvent: type: object required: - event_name - event_datetime properties: phone_number: type: string description: E164 formatted subscriber phone number. example: '+14132737194' email: type: string event_name: type: string description: 'Descriptive name for the custom event, eg: user-clicked' example: user-clicked event_datetime: type: string description: ISO-8601 formatted timestamp. properties: type: object description: key/value pairs of event properties additionalProperties: true FieldErrors: type: object additionalProperties: type: array items: type: string description: Field-name keyed list of validation messages. Message: type: object properties: message: type: string Detail: type: object properties: detail: type: string securitySchemes: TokenAuth: type: apiKey in: header name: Authorization description: 'Encoded token authorization over HTTPS. The header value is the word "Token", a space, then the API key Emotive provides. Example: `Authorization: Token `. Tokens are unique to an Emotive brand user; contact support@emotive.io or create a List Growth API signup flow to obtain one.'