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

HeaderRequiredDescription
AuthorizationYesBearer + Base64-encoded API key
Content-TypeYesapplication/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
    }
  }
]
FieldRequiredDescription
messageIdNoOptional deduplication key. Duplicate IDs within 24 hours are accepted but not processed twice.
Event fieldsYesFields that identify the event type, per your agreed schema.
Identity fieldsYesFields mapped to your customer dataset primary key (for example user_id).

Response

Success — 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

StatusMeaning
401Missing or invalid API key
400Malformed JSON or no events in the body
413Request 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.


Did this page help you?