Skip to main content
The Reddit Connector API lets an unattended integration deliver hashed identifiers into Custom Audiences in your Reddit Ads account. You sign in to Narrative once to create an API key, and you connect your Reddit Ads account once. The integration works from the API key after that. To deliver to a Reddit Ads account that someone else owns, such as a client’s, send that person a partner invite. They connect their account, and you deliver to it the same way. Complete the prerequisites and set up API access on this page before you follow either guide.

Choose a guide

Custom Audience delivery

Upload hashed emails and deliver them into a new or existing Reddit Custom Audience.

Invite a partner

Send an invite link to someone who manages another Reddit Ads account, so you can deliver audiences to it.

Prerequisites

What you need depends on the guide you follow:

API key

Create the key under Settings → API Keys with these permissions:
  • Read and write on datasets and connections
  • Write on uploads
  • Read on installations
Add read and write on webhooks if you want delivery notifications. See API Keys for the procedure and the Permissions Reference for what each resource covers. Create it from a shared team account rather than a personal login, so the integration keeps working when someone changes roles.

Reddit Connector installed

The Reddit Connector is app 23. Find your installation of it:
Record the installation ID. If no record has "app_id": 23, install the Reddit Connector from the Narrative Marketplace.

A connected Reddit profile

A connector profile holds the Reddit authorization that every delivery uses. One profile reaches every ad account that the approving Reddit user can manage. To deliver to your own Reddit Ads account, create a profile and approve Narrative on Reddit once, as described in Connect your Reddit Ads account. To deliver to an account someone else owns, invite a partner instead. The partner’s approval creates the profile.

Set up API access

The guides talk to two hosts, and each takes its own credential:

Get an installation token

The Reddit connector authenticates requests with an installation token, which you get by exchanging your API key. Use the installation ID from Reddit Connector installed:
Store access_token as $INSTALLATION_TOKEN. It lasts about three hours, so request a new one at the start of each run of your integration. Confirm that both hosts answer:
Send the API key to api.narrative.io and the installation token to reddit.narrativeconnectors.com.
API keys contain characters that shells mangle. Read the key from a file or an environment variable rather than pasting it inline.

Connect your Reddit Ads account

Connect your Reddit Ads account once. Every delivery after that runs from your API key.
1

Create a profile

In Narrative, go to Installed Apps → Reddit Connector. In the Profiles tab, click Add profile, enter a profile name, and click Create profile.
2

Approve Narrative on Reddit

Click Connect to Reddit, sign in to the Reddit account that manages your ad accounts, and click Allow. The profile shows Connected once Reddit confirms.
Reddit Connector covers these steps in more detail. To approve Narrative from your integration instead of clicking Connect to Reddit, request an authorization link for the profile. Find your profile shows how to get its ID:
Open the url in a browser before expires_at, sign in to Reddit, and approve Narrative. The profile then uses your Reddit authorization.

Find your profile

GET /profiles lists every Reddit profile in your company. To read one:
Use a profile whose status is enabled. Record its id.

List your ad accounts

Audiences are created under a Reddit ad account. List the ad accounts the profile can deliver to:
Reddit ad account IDs start with a2_. To read one ad account:
When the Reddit user gains access to another ad account after connecting the profile, reload the profile’s ad accounts from Reddit:
The response lists every ad account on the profile after the reload.

What the connection does

A connection’s quick_settings pick the interface and set how the connection delivers. The fields depend on the interface.

New Custom Audience (audience_new)

The connector creates the Custom Audience in Reddit when you create the connection.

Existing Custom Audience (audience_existing)

The write mode and member TTL belong to the audience. The first connection to an audience that uses overwrite or ttl_days sets them, and every later connection to that audience must use the same values.

Existing and new rows

A connection delivers every snapshot written to the dataset after the connection is created. The historical_data_enabled quick setting decides whether the connection also delivers data that was already in the dataset when you created it:
  • With historical_data_enabled set to true, the connection first delivers data already in the dataset, then keeps delivering new snapshots as they land.
  • With historical_data_enabled set to false, the connection delivers only snapshots written after it was created.
How far back the first delivery reaches depends on the connector, and each connector’s guide states it. For Reddit, historical_data_enabled delivers the dataset’s snapshots from the 30 days before the connection was created, as one delivery. After that, each new snapshot is delivered as it lands. What a delivery does depends on the write mode:
  • append without ttl_days adds the delivery’s members to the audience. Members stay until you remove them in Reddit.
  • append with ttl_days adds new members and restarts the clock for members the delivery includes again. A daily run removes each member whose last delivery is more than ttl_days days old, so a member can stay up to one day past the TTL.
  • overwrite makes the audience match the delivery. Members missing from the delivered snapshot are removed, and new ones are added.
An overwrite connection replaces the audience with each snapshot, so pair it with a dataset whose own write_mode is overwrite. Each snapshot of that dataset holds the full audience.

Delivery notifications

The Reddit Connector reports each delivery as an app webhook event. Subscribe a webhook to app 23 to receive them:
Keep the secret to verify each delivery. The connector sends these events: Read a subscription with GET /webhooks/{webhook_id}. To stop the notifications, delete the subscription with DELETE /webhooks/{webhook_id}. See App subscription for the subscription fields and Verifying deliveries for checking the secret.

Reddit Connector

Supported identifiers, profiles, and invites

Connector Interfaces

Why a dataset connects to an interface rather than a connector

Webhook Event Reference

Subscription fields, delivery payloads, and verification

API Keys

Create and rotate keys for programmatic access