How to Get Your Reddit Ads API Key
May 29, 2026
There is no single Reddit Ads API key. Access requires three things together: an OAuth 2.0 app registered through Reddit's standard developer settings, Ads-specific OAuth scopes that must be requested at authorization time, and — for full campaign management — allow-list approval from Reddit's ads or partner team.
If you've followed Reddit's API history since 2023, the first thing worth knowing is this: Reddit has two APIs that have diverged in opposite directions. The general Data API (for posts, comments, subreddit content) got significantly more restricted, monetized, and gatekept after the 2023 pricing controversy. The Ads API moved the opposite way — Reddit launched v3 GA, expanded the documentation, opened an API partner program, and is actively investing in ad integrations as a growth surface. They share Reddit's identity infrastructure, but they sit in completely different policy buckets. If you're building a campaign management or measurement integration, you're working with a surface Reddit wants you to use.
This guide covers the 2026 process: registering your Reddit app, requesting Ads-specific OAuth scopes, getting allow-listed for full Ads API access, and the difference between the Conversions API (available to most advertisers) and full campaign management API access (gated by spend and partner status).
Key takeaways
- The current version is Reddit Ads API v3, with the base URL
https://ads-api.reddit.com/api/v3/.... It's separate from the Reddit Data API (oauth.reddit.com) used for posts and comments. - App registration uses Reddit's standard developer page at
reddit.com/prefs/apps— same portal as the general API. The differentiation is in which OAuth scopes you request and whether your account is allow-listed for Ads API use. - The Ads-specific OAuth scopes are
adsread,adsconversions,adsedit,history, andread. For full Ads API access, request all five. - No public Trial → Standard tier model like Pinterest. Reddit's Ads API access is allow-listed by sales / partner teams based on advertiser status, spend, or partnership approval.
- The Conversions API has different access rules. It's available to most advertisers — even those without full Ads API allow-listing or high spend. Campaign management API access is more restricted.
- Coming July 13, 2026: all ad groups and CBO campaigns require a
conversion_pixel_idto be set. Plan for this schema change if your integration creates ad groups or budget-optimized campaigns.
Before you start
You'll need:
- A Reddit account with admin access to a Reddit Ads account, or a relationship with a Reddit ads or partner team contact
- A Reddit Ads account with at least one ad account created at
ads.reddit.com - An understanding of which use case you're building for — Reddit's allow-listing decisions depend on whether you're a managed advertiser, API partner, or third-party tool provider
- For Conversions API only: admin access to the ad account is sufficient; allow-listing isn't required
If you're not sure whether you'll qualify for full Ads API access, start with the Conversions API. It's open to most advertisers and lets you build server-side conversion event tracking without going through the approval process for campaign management endpoints.
Step-by-step: getting Reddit Ads API access in 2026
1. Register your OAuth app
Log in to Reddit and go to https://www.reddit.com/prefs/apps. Click Create App (or Create another app). Fill in:
- Name — descriptive, includes your integration purpose (e.g., "Acme Ads Integration")
- Type — usually web app for production OAuth flows with redirect URIs, or script for backend-only single-user automation
- Redirect URI — your OAuth callback URL
- Description and About URL — these help when applying for Ads API access later
After saving, Reddit displays your client ID (shown below the app name) and client secret (labeled "secret"). These are your OAuth credentials — required for all API access regardless of which scopes you eventually use.
2. Build the OAuth authorization flow
Direct users to Reddit's authorization endpoint with Ads-specific scopes:
https://www.reddit.com/api/v1/authorize
?client_id={YOUR_CLIENT_ID}
&response_type=code
&state={CSRF_TOKEN}
&redirect_uri={YOUR_REDIRECT_URI}
&duration=permanent
&scope=adsread,adsconversions,adsedit,history,read
The duration=permanent parameter is what produces a refresh token alongside the access token. Without it, you only get a short-lived access token with no refresh capability.
The user signs in to Reddit, sees the consent screen describing what your app is requesting, and clicks Allow. Reddit redirects to your redirect_uri with ?code={AUTH_CODE}&state={CSRF_TOKEN}.
3. Exchange the authorization code for tokens
POST to Reddit's token endpoint with HTTP Basic Auth using your client ID and client secret:
POST https://www.reddit.com/api/v1/access_token
Authorization: Basic {base64(client_id:client_secret)}
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&code={AUTH_CODE}
&redirect_uri={YOUR_REDIRECT_URI}
The response contains a short-lived access token (typically one hour) and a long-lived refresh token. Store both per-tenant.
4. Request Ads API allow-listing
Having a valid OAuth token with the right scopes is necessary but not sufficient. To call most Ads API endpoints — particularly campaign management writes — your account needs to be allow-listed by Reddit's ads or partner team.
The path depends on your situation:
- Managed advertisers: request Ads API access through your Reddit Ads account representative
- API partners and third-party tools: contact
adsapi-partner-support@reddit.comdirectly and describe your integration, use case, and expected volume - Self-serve advertisers: typically need to demonstrate sustained ad spend or a strategic use case to be considered for full Ads API access
Approval is informal and case-by-case. There's no documented timeline or self-serve upgrade path. Plan for this step in advance — it isn't something you can resolve in a sprint.
5. Make authenticated API calls
Once allow-listed, every request to the Ads API includes the OAuth access token in the Authorization header:
Authorization: Bearer {access_token}
Endpoints follow the v3 path structure:
GET https://ads-api.reddit.com/api/v3/accounts/{account_id}/campaigns
POST https://ads-api.reddit.com/api/v3/accounts/{account_id}/campaigns
GET https://ads-api.reddit.com/api/v3/accounts/{account_id}/reports
The hierarchy is Business / Organization → Ad Account → Campaign → Ad Group → Ad. The account_id is the primary identifier you'll need for most endpoint paths.
When access tokens expire, refresh with the standard OAuth flow — POST to the same token endpoint with grant_type=refresh_token and your refresh token. Save the new access token; the refresh token may rotate, so persist whatever comes back.
The gotcha: Reddit's auth model has its own quirks
Allow-list approval is the real gate. Unlike Pinterest's documented Trial → Standard tier model, Reddit's gating is informal and based on advertiser status. You can have a perfectly configured OAuth flow with all the right scopes and still be unable to call campaign management endpoints because your account hasn't been approved. Plan for this gate before you architect — it isn't something that resolves at request time.
The Conversions API is the easier path if you can scope to it. Reddit explicitly grants Conversions API access to most advertisers without high-spend requirements. If your integration is only sending server-side conversion events for attribution, you can often skip the full Ads API allow-listing process. Full campaign management is the restricted surface; conversion tracking generally isn't.
Don't confuse the Ads API with the Data API. The general Reddit Data API (oauth.reddit.com, used for posts and comments) has been heavily restricted and monetized since 2023, with formal commercial tiers, approval gates, and pricing that runs into five figures per month for production volume. The Ads API is governed separately and isn't priced this way. If you've been hesitant to build on Reddit because of the Data API controversy, that hesitation doesn't apply to the Ads API in the same way.
The July 13, 2026 conversion_pixel_id requirement. A 2026 schema change requires all ad groups and CBO (Campaign Budget Optimization) campaigns to specify a conversion_pixel_id from July 13, 2026 onward. If your integration creates ad groups or CBO campaigns, this field becomes mandatory. Plan for the migration before the deadline.
Token expiration without duration=permanent****. If you forget to include duration=permanent in the authorize call, you only get a short-lived access token with no refresh capability. The user will have to re-authorize when it expires. Always set duration=permanent for production integrations.
Spend thresholds for full access. Some advertisers report being told they need higher Reddit Ads spend before being approved for full Ads API access. This isn't documented as a formal threshold but does show up in practice. If you're applying as an end advertiser (rather than a tool provider or partner), expect some discussion of your account's spend history during the approval process.
Security and credential handling
Store OAuth client secrets and refresh tokens in a proper secret manager. AWS Secrets Manager, Azure Key Vault, GCP Secret Manager. Never commit them.
Refresh proactively. Access tokens expire after roughly one hour. Refresh ahead of expiry with retry logic and exponential backoff on failures.
Handle refresh-token rotation. Reddit may issue a new refresh token in the response when you exchange one for a new access token. Always persist the latest refresh token from each response.
Rate limit defensively. Reddit's published rate limits hover around 100 requests per minute per OAuth client for the broader API, with similar ballparks for Ads endpoints. Partner-level integrations typically have negotiated higher limits. Use the X-Ratelimit-Used, X-Ratelimit-Remaining, and X-Ratelimit-Reset response headers to track usage. Don't tight-loop on 429 errors.
Audit ad account access regularly. OAuth tokens tied to individual Reddit users can become stale when those users leave or change roles. Periodically validate that your stored tokens still resolve to the ad accounts the integration was configured against.
Is there an API-key alternative?
No. Reddit Ads requires OAuth 2.0. There are no static API keys or basic-auth flows. The closest concept to a "static key" is the OAuth client ID and secret pair — but those alone don't grant access; you still need a user-authorized access token with Ads scopes, plus account allow-listing for most endpoints.
Frequently asked questions
How does this compare to Pinterest Ads? Both are paid-social platforms with distinctive targeting models — Reddit's community/subreddit targeting and Pinterest's commerce-intent visual discovery don't have equivalents on Meta or LinkedIn. Both use OAuth 2.0 authorization-code flow. The key difference is the access model: Pinterest has a documented Trial → Standard tier system with a demo-video approval process; Reddit gates access informally through sales and partner relationships, with no public sandbox or trial tier. Pinterest is more self-serve to start; Reddit requires more upfront relationship building.
Was the Reddit Ads API affected by the 2023 API pricing controversy? No, not in the way the Data API was. The 2023 changes targeted Reddit's general Data API (used for content access by third-party apps and data resellers), introducing tiered pricing that runs into five figures per month for commercial use. The Ads API is governed separately, was launched as v3 GA after the controversy, and is being actively invested in as part of Reddit's monetization growth strategy. The two APIs share infrastructure but sit in opposite policy buckets.
Can I use the Conversions API without full Ads API access? Yes. Reddit explicitly grants Conversions API access to most advertisers, even those without full Ads API allow-listing or high spend. If your integration is purely sending server-side conversion events for attribution, you can build against the Conversions API endpoints without going through the campaign-management approval process.
Why am I getting 403 errors with what looks like a valid token? Three common causes: (1) your token doesn't include the right Ads scopes (verify adsread, adsedit, etc. are in the scope string), (2) the authorizing user doesn't have the right role on the target account_id (admin-level access is usually required for writes), or (3) your account isn't allow-listed for the specific Ads API capabilities you're calling (e.g., approved for reporting but not full campaign management).
Can the same OAuth client manage multiple customers' ad accounts? Yes — that's the standard pattern for SaaS integrations. The same OAuth client (client ID/secret) can authorize many users, each with their own access to their own ad accounts. Each customer goes through the OAuth flow independently, and your backend stores per-customer access tokens and refresh tokens. Allow-list approval, however, generally needs to be in place at the integration / partner level before any customer's allow-listed advertiser data can be accessed.
Where Unified fits
Unified.to provides a single API across Reddit Ads, Meta Ads, LinkedIn Ads, TikTok Ads, Pinterest Ads, Google Ads, Microsoft Advertising, Amazon Advertising, Google Campaign Manager 360, Google Display & Video 360, and 5 other advertising integrations — 15 in total — covering campaigns, ad groups, ads, creatives, targeting, and reporting through a normalized data model.
For Reddit Ads specifically, Unified handles OAuth credentials and refresh, scope routing, ad account access scoping, and the v3 endpoint structure behind a single authorization step. Real Reddit Ads objects map to Unified's normalized models: ads_organization (list/get), ads_campaign, ads_group, ads_ad, and ads_creative with full CRUD, plus ads_report and ads_target for reporting and targeting access. The paid-social workflow — campaign creation, ad group management, creative uploads, performance reporting — is supported through normalized endpoints. Vendor-specific endpoints including the Conversions API, the Reddit Pixel configuration, and the more advanced subreddit/community targeting options are available through pass-through access.
Customers like Humi build on Unified to ship integrations in days rather than months — the credential setup, scope routing, refresh-token management, and operational details of the OAuth flow are handled by Unified's infrastructure rather than maintained inside the customer's codebase. The Reddit-specific allow-list approval process for full Ads API access is still something the end advertiser navigates with Reddit directly — that's not something a unified API can shortcut — but the integration plumbing on the other side of approval is abstracted away.
If you're evaluating whether to build Reddit Ads integration directly or use a unified API, the question is whether the ongoing maintenance — OAuth refresh cycles, the July 2026 conversion_pixel_id schema migration, rate-limit handling, and managing both Ads API and Conversions API credentials — is something your team should own, or something to abstract behind a single connection.