HTTP Endpoint

Use GrowthLoop audiences for add and remove calls to your own HTTP APIs.

Connect this destination to export audience membership as add and remove requests to your own HTTP APIs, for use in the workflows those APIs run.

If you need GrowthLoop to design a custom destination for an internal API that is not a webhook you configure yourself, see Custom Destinations.

This destination writes to your HTTP endpoint and is a good fit when you want to:

  • Have add (and optionally remove) endpoint URLs
  • Shape the JSON body with Handlebars
  • Set it up yourself without a destination architect

This maps to GrowthLoop Audiences:

Use it forAudiences
Calling your HTTP API when audience members are added or removed✓

This destination is in the Custom category. It does not appear on a journey Destination Node.

Prerequisites

Make sure you have:

  • Endpoint URL(s) for the API GrowthLoop should call when adding or removing members.
  • Authentication details if your API requires them. You can send custom headers and optionally link a Custom M2M OAuth destination.
  • Request body templates if your API expects JSON.

Set up HTTP Endpoint as a destination

  1. In GrowthLoop, click the Destinations tab on the left sidebar.
  2. Click New Destination on the top right.
  3. Search for HTTP Endpoint and click Add HTTP Endpoint.
📘

Note

Don't see HTTP Endpoint when you try to add a destination? Reach out to [email protected] and we'll enable it.

  1. Configure the sections below, then click Create.
HTTP Endpoint destination setup form
FieldDescription
Destination NameName this destination in GrowthLoop. Use a name so your team recognizes its purpose, like "Internal Audience API".
Sync FrequencySet the default export frequency (for example, daily or weekly). You can override this setting for individual exports.

Authentication

HTTP Endpoint authentication fields for OAuth destination and headers
FieldDescription
OAuth Destination (optional)ID of a Custom M2M OAuth destination. When linked, GrowthLoop fetches tokens and includes them on requests. Set up that destination first if your API uses machine-to-machine OAuth
Headers (JSON) (optional)Custom headers sent on every request, including get/create audience, add, and remove. Example: {"Authorization": "Bearer token", "X-API-Key": "your-key"}

You can use OAuth, custom headers, or both.

Error handling

HTTP Endpoint error handling with retry and requests per hour
FieldDescription
Retry on ErrorsWhen enabled, GrowthLoop retries 429 and 500–504 responses with increasing delays
Requests Per HourMaximum requests per hour. GrowthLoop staggers batches to stay under this limit. Examples: 3600 is about one request per second, 360 is about one every 10 seconds, 60 is about one per minute. Leave blank for no limit

Output schema

HTTP Endpoint output schema builder

Use Output Fields to choose which exported fields are sent and how they are typed before GrowthLoop builds the payload. GrowthLoop coerces values to the types you define. For example, the string "99" can be sent as the number 99.

If you leave Output Schema blank, GrowthLoop sends the fields mapped during export.

Get or create audience

HTTP Endpoint get and create audience configuration

Use this section when your API has an audience, list, or segment that must exist before members can be added or removed.

FieldDescription
Get Audience EnabledWhen on, GrowthLoop checks whether the audience already exists
Get Audience URLLookup URL. Supports Handlebars with {{audience_name}}, {{audience_id}}, and {{organization_name}}
Get Audience HTTP MethodGET or POST
Get Audience Filter Path (JMESPath)Filter a collection response, for example tables[?name=='{{audience_name}}']. An empty result means the audience is missing
Create Audience EnabledWhen on, GrowthLoop creates the audience if the get step does not find one. Requires Get Audience Enabled
Create Audience URLCreate URL. Supports the same Handlebars variables
Create Audience HTTP MethodPOST or PUT
Create Audience Body TemplateHandlebars body for the create request

If you do not enable get/create audience, GrowthLoop skips these steps and sends add and remove requests only.

Add configuration

HTTP Endpoint add configuration with URL, method, and body template

Add URL is required.

FieldDescription
EnabledTurn off to ignore add actions. Enabled by default
URLEndpoint GrowthLoop calls when members are added
HTTP MethodGET, POST, PUT, PATCH, or DELETE
Body Template (Handlebars)Individual mode uses {USER.FIELD}. Batched mode uses {{#each users}}
Batch ModeIndividual sends one request per record. Batched sends multiple records in one request
Batch SizeRecords per request when batch mode is Batched. Defaults to 100
Response Success Path (JMESPath) (optional)How many records succeeded. Examples: records, created, success, num_records_imported. If blank, HTTP 2xx means all records succeeded

Individual example:

{"id": "{USER.ID}", "email": "{USER.EMAIL}"}

Batched example:

{"users": [{{#each users}}{"id": "{{id}}"}{{#unless @last}},{{/unless}}{{/each}}]}

Remove configuration

HTTP Endpoint remove configuration

Remove is disabled by default.

FieldDescription
EnabledTurn on to process removals
URLEndpoint GrowthLoop calls when members are removed
HTTP MethodGET, POST, PUT, PATCH, or DELETE
Body Template (Handlebars)Same patterns as add configuration
Batch ModeIndividual or Batched
Batch SizeDefaults to 100 when batched
Response Success Path (JMESPath) (optional)Examples include records, deleted, and success

Export to HTTP Endpoint

From within GrowthLoop, export from an audience. See Export an audience if you need more information on these steps.

After building or selecting an audience, click Export, then search for your HTTP Endpoint destination.

Map identifiers

Map at least one identifier your API expects.

Match fieldDescription
EmailEmail address
Unique IdentifierUnique ID
Client Customer IDClient customer ID

Map personalization or additional fields you reference in Handlebars templates or the output schema, including custom attributes from the audience.

Configure the export

  • Export Name: GrowthLoop populates this with your audience name.
  • Campaign Type: Choose a one-time export or an ongoing export.
  • Export Schedule: Set the frequency, start date, and end date.

Export behavior

This is what GrowthLoop writes when you export an audience.

BehaviorWhat happens
What GrowthLoop writesHTTP requests to the add, remove, and optional get/create audience URLs you configured. Direction is GrowthLoop → your API.
When it runsGrowthLoop sends the export as a batch on the next successful run. An export that starts Now runs within about 15 minutes.
OrderGrowthLoop runs optional get/create audience, then add and remove requests.
AddsGrowthLoop calls the add URL for new members.
RemovalsGrowthLoop calls the remove URL only when remove is enabled.
Success countsIf Response Success Path is blank, HTTP 2xx counts every record in the request as successful.
One-time exportsGrowthLoop sends current membership once. It does not call remove later.
Ongoing exportsGrowthLoop sends adds on each run, and removals only when remove is enabled.

Confirm the export was successful

When the run finishes, confirm you can use the data in your API.

  • Audience export: Confirm your API received the add or remove requests.

In GrowthLoop, review counts on the audience Exports tab. See Export an audience for more information.

Congrats on successfully exporting to HTTP Endpoint!

Troubleshooting

These are the issues we see most often. You can always email us at [email protected] for help.

ProblemCauseResolution
Add requests failAdd URL is not a full URLEnter a full http or https URL
Authentication failsHeaders or OAuth are wrongCheck Headers and the linked Custom M2M OAuth destination
Create never runsGet audience is offEnable Get Audience first. Create requires get
Success counts look wrongResponse Success Path does not match the API responseSet Response Success Path to the field your API returns

What’s Next

Export an audience after you connect a destination

Did this page help you?