openapi: 3.1.0
info:
title: Reddit Ads Account Ad Groups API
description: The Reddit Ads API allows advertisers and their partners to programmatically create, edit, and manage advertising campaigns and audiences on the Reddit platform. It provides endpoints for managing ad accounts, campaigns, ad groups, ads, creatives, targeting, custom audiences, conversion pixels, and reporting. Authentication is handled via OAuth 2.0, and rate limits are set at one request per second.
version: '3'
contact:
name: Reddit Ads Support
url: https://business.reddithelp.com/s/article/Reddit-Ads-API
termsOfService: https://business.reddithelp.com/s/article/Reddit-Ads-API-Terms
servers:
- url: https://ads-api.reddit.com/api/v3
description: Reddit Ads API v3 Production Server
security:
- oauth2: []
tags:
- name: Ad Groups
description: Endpoints for managing ad groups within campaigns, including targeting, bidding, and scheduling configuration.
paths:
/accounts/{account_id}/ad_groups:
get:
operationId: listAdGroups
summary: List Ad Groups
description: Lists ad groups in a Reddit Ads account or campaign, with ad groups containing targeting settings and grouping related ads.
tags:
- Ad Groups
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/cursor'
- name: campaign_id
in: query
description: Filter ad groups by campaign ID.
schema:
type: string
responses:
'200':
description: List of ad groups
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/AdGroup'
cursor:
type: string
description: Pagination cursor for the next page.
'401':
description: Authentication required
post:
operationId: createAdGroup
summary: Create an Ad Group
description: Creates a new ad group within a campaign with targeting and bidding configuration.
tags:
- Ad Groups
parameters:
- $ref: '#/components/parameters/accountId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupInput'
responses:
'201':
description: Ad group created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroup'
'400':
description: Invalid ad group data
/accounts/{account_id}/ad_groups/{ad_group_id}:
get:
operationId: getAdGroup
summary: Get an Ad Group
description: Fetches detailed information about a specific ad group including targeting settings, bid configuration, and schedule.
tags:
- Ad Groups
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/adGroupId'
responses:
'200':
description: Ad group details
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroup'
'404':
description: Ad group not found
put:
operationId: updateAdGroup
summary: Update an Ad Group
description: Updates an existing ad group's configuration, including targeting, bidding, and scheduling.
tags:
- Ad Groups
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/adGroupId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupInput'
responses:
'200':
description: Ad group updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroup'
'400':
description: Invalid ad group data
delete:
operationId: deleteAdGroup
summary: Delete an Ad Group
description: Deletes an ad group from a campaign.
tags:
- Ad Groups
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/adGroupId'
responses:
'204':
description: Ad group deleted successfully
'404':
description: Ad group not found
components:
parameters:
adGroupId:
name: ad_group_id
in: path
required: true
description: The unique identifier of the ad group.
schema:
type: string
accountId:
name: account_id
in: path
required: true
description: The unique identifier of the Reddit Ads account.
schema:
type: string
pageSize:
name: page_size
in: query
description: The maximum number of items to return per page (default 25, max 100).
schema:
type: integer
default: 25
minimum: 1
maximum: 100
cursor:
name: cursor
in: query
description: A pagination cursor for retrieving the next page of results.
schema:
type: string
schemas:
AdGroupInput:
type: object
description: Input for creating or updating an ad group.
required:
- campaign_id
- name
properties:
campaign_id:
type: string
description: The campaign to create the ad group in.
name:
type: string
description: The name of the ad group.
bid_strategy:
type: string
description: The bidding strategy.
enum:
- AUTOMATIC
- MANUAL_CPC
- MANUAL_CPM
- MANUAL_CPV
bid_micro:
type: integer
format: int64
description: The bid amount in microcurrency units.
start_time:
type: string
format: date-time
description: The ad group start time.
end_time:
type: string
format: date-time
description: The ad group end time.
targeting:
$ref: '#/components/schemas/Targeting'
status:
type: string
description: The desired status.
enum:
- ACTIVE
- PAUSED
- DRAFT
AdGroup:
type: object
description: An ad group within a campaign that contains ads and targeting configuration.
properties:
id:
type: string
description: The unique identifier of the ad group.
campaign_id:
type: string
description: The campaign this ad group belongs to.
name:
type: string
description: The name of the ad group.
status:
type: string
description: The current status of the ad group.
enum:
- ACTIVE
- PAUSED
- DRAFT
bid_strategy:
type: string
description: The bidding strategy for the ad group.
enum:
- AUTOMATIC
- MANUAL_CPC
- MANUAL_CPM
- MANUAL_CPV
bid_micro:
type: integer
format: int64
description: The bid amount in microcurrency units.
start_time:
type: string
format: date-time
description: The ad group start time.
end_time:
type: string
format: date-time
description: The ad group end time.
targeting:
$ref: '#/components/schemas/Targeting'
created_at:
type: string
format: date-time
description: The timestamp when the ad group was created.
updated_at:
type: string
format: date-time
description: The timestamp when the ad group was last updated.
Targeting:
type: object
description: Targeting configuration for an ad group specifying the audience to reach.
properties:
locations:
type: array
description: Geographic locations to target.
items:
type: string
interests:
type: array
description: Interest categories to target.
items:
type: string
communities:
type: array
description: Subreddit communities to target.
items:
type: string
devices:
type: array
description: Device types to target.
items:
type: string
enum:
- DESKTOP
- MOBILE
- TABLET
os:
type: array
description: Operating systems to target.
items:
type: string
enum:
- IOS
- ANDROID
- WINDOWS
- MACOS
custom_audience_ids:
type: array
description: Custom audience IDs to include in targeting.
items:
type: string
excluded_custom_audience_ids:
type: array
description: Custom audience IDs to exclude from targeting.
items:
type: string
age_ranges:
type: array
description: Age ranges to target.
items:
type: string
genders:
type: array
description: Gender targeting.
items:
type: string
enum:
- MALE
- FEMALE
- ALL
securitySchemes:
oauth2:
type: oauth2
description: Reddit Ads API uses OAuth 2.0 for authentication. Access tokens are obtained via the authorization code flow.
flows:
authorizationCode:
authorizationUrl: https://www.reddit.com/api/v1/authorize
tokenUrl: https://www.reddit.com/api/v1/access_token
scopes:
ads: Access to ads management endpoints
externalDocs:
description: Reddit Ads API Documentation
url: https://ads-api.reddit.com/docs/