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
| Field | Description |
|---|---|
| clientId | Your Reddit app's client ID from the Reddit Developer Portal. |
| clientSecret | Your app's client secret, same location. |
| refreshToken | An OAuth refresh token with ads:read and ads:write scopes. |
| accountId | Your 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:
- Name: anything (e.g., "adduck")
- Type: script
- Redirect URI:
http://localhost:8080/callback
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:
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:
Manual config
{
"accounts": {
"reddit": {
"clientId": "xxxxxxxxxxx",
"clientSecret": "yyyyyyyyyyyyyyyyyyy",
"refreshToken": "zzzzzzzzzzzzzzzzzzzzzzzzzz",
"accountId": "t2_abc12345"
}
}
} Scopes
adduck needs two scopes from the Reddit Ads API:
ads:read: required for spend reports, campaign listingsads:write: required for pause, resume, and budget changes
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.