Reddit Ads

Reddit Ads

Reddit Ads uses OAuth 2.0 with a refresh token. Once you have the token, adduck handles refreshing it automatically. Setup takes about 2 minutes if you already have API access.

Required credentials

FieldDescription
clientIdYour Reddit app's client ID from the Reddit Developer Portal.
clientSecretYour app's client secret, same location.
refreshTokenAn OAuth refresh token with ads:read and ads:write scopes.
accountIdYour Reddit Ads account ID. Starts with t2_.

Step 1: Create a Reddit app

Go to reddit.com/prefs/apps and click "Create app" at the bottom.

Fill in:

After creating, you'll see the client ID (under the app name) and client secret.

Step 2: Get a refresh token

Run the login wizard -- it handles the OAuth flow:

adduck auth login reddit

The wizard opens a browser window for you to authorize the app. After you approve, it captures the refresh token and stores it.

If you want to do this manually, you need to complete the OAuth 2.0 authorization code flow with scopes ads:read ads:write and trade the authorization code for a refresh token using Reddit's token endpoint.

Step 3: Find your account ID

Your account ID is your Reddit user ID, formatted as t2_XXXXXXXX. The login wizard finds it automatically after authorization. To check it manually:

adduck auth list

Manual config

{
  "accounts": {
    "reddit": {
      "clientId": "xxxxxxxxxxx",
      "clientSecret": "yyyyyyyyyyyyyyyyyyy",
      "refreshToken": "zzzzzzzzzzzzzzzzzzzzzzzzzz",
      "accountId": "t2_abc12345"
    }
  }
}

Scopes

adduck needs two scopes from the Reddit Ads API:

If you only want reporting, you can connect with ads:read only and set allowMutations: false in guardrails.

Token expiry

Reddit refresh tokens don't expire if used at least once every 90 days. adduck refreshes the access token automatically on each request. If a refresh fails (token revoked, password changed), you'll get an auth error and need to run adduck auth login reddit again.