GrowthLoop Event Ingestion API
Send real-time events to GrowthLoop over HTTPS when you do not host your own Kafka, SQS, or Pub/Sub queue.
Use the GrowthLoop Event Ingestion API when you want real-time journeys but do not want to provision and operate your own event queue. GrowthLoop hosts the queue infrastructure; you send events with a standard HTTPS POST and an API key.
This is an alternative to bringing your own Kafka, AWS SQS, or Google Pub/Sub source connection.
Prerequisites
GrowthLoop enables event ingestion for your organization during onboarding. GrowthLoop will configure the real-time source connection and share the API key, ingest URL, and event schema with you.
Endpoint
URL: POST https://segments.prod.growthloop.com/v1/ingest/events
Authentication
Send your API key in the Authorization header as a Base64-encoded Bearer token:
Authorization: Bearer <base64(api_key)>The API key is tied to your organization. Keep it secret. This API key grants full access to your event ingestion API.
Request
Headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer + Base64-encoded API key |
Content-Type | Yes | application/json |
Body
Send one or more JSON objects as either:
- a JSON array —
[{...}, {...}](recommended for batches), or - a single JSON object —
{...}
Each object is one event. Maximum request body size is 5 MiB.
Use the event schema GrowthLoop shares with you — field names, event identifiers, and customer ID mapping are defined during setup.
Example shape (your schema may differ):
[
{
"messageId": "evt-12345",
"event_path": "event_type",
"event_value": "purchase",
"user_id": "customer-abc",
"payload": {
"order_id": "ord-99",
"amount": 42.50
}
}
]| Field | Required | Description |
|---|---|---|
messageId | No | Optional deduplication key. Duplicate IDs within 24 hours are accepted but not processed twice. |
| Event fields | Yes | Fields that identify the event type, per your agreed schema. |
| Identity fields | Yes | Fields mapped to your customer dataset primary key (for example user_id). |
Response
Success — 202 Accepted
202 Accepted{
"message": "events accepted",
"status": "queued",
"accepted_count": 1,
"rejected_count": 0,
"job_id": "550e8400-e29b-41d4-a716-446655440000"
}202 means GrowthLoop accepted the request for asynchronous processing. It does not guarantee a journey has run yet.
Common errors
| Status | Meaning |
|---|---|
401 | Missing or invalid API key |
400 | Malformed JSON or no events in the body |
413 | Request body exceeds 5 MiB |
What happens after ingest
GrowthLoop authenticates your API key, queues the events, and routes them into your real-time journey infrastructure. You do not need GCP, AWS, or Kafka credentials to send events.
Need access?
Contact [email protected] to enable the Event Ingestion API for your organization.
Updated about 13 hours ago