# Reddit Ads Scraper (`lexis-solutions/reddit-ads-scraper`) Actor

Find and scrape top ads on Reddit. Get ad copy, ad shown date, ad type, industry, budget, and more. Download and track data from the Reddit Ads for competitive analysis.

- **URL**: https://apify.com/lexis-solutions/reddit-ads-scraper.md
- **Developed by:** [Lexis Solutions](https://apify.com/lexis-solutions) (community)
- **Categories:** Social media
- **Stats:** 78 total users, 11 monthly users, 99.8% runs succeeded, 17 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $6.40 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![Reddit Ads Scraper](https://lexis-solutions-apify.fra1.cdn.digitaloceanspaces.com/banners/reddit-ads.png)

### 🛒 What does Reddit Ads Scraper do?

Reddit Ads Scraper allows you to extract hosted ad content and stats as displayed on Reddit.

Reddit Ads Scraper transforms hosted Reddit data into a structured dataset.

Its results include:

<table>
<tr>
<td>✅ Headline</td>
<td>✅ Ad text</td>
</tr>
<tr>
<td>✅ Budget category</td>
<td>✅ Industry</td>
</tr>
<tr>
<td>✅ Created at</td>
<td>✅ Post URL</td>
</tr>
</table>

### 🌊 How do I use Reddit Ads Scraper to extract data?

Reddit Ads Scraper is designed to be user-friendly, even for those who have never extracted data from the web before. Here’s how you can scrape data from Reddit with this tool:

1. [Create](https://console.apify.com/sign-up) a free Apify account using your email.
2. Open [Reddit Ads Scraper](https://console.apify.com/actors/lexis-solutions/reddit-ads-scraper).
3. Enter your search query and optional filters.
4. Click the “Start” button and wait for the data to be extracted.
5. Download your data in JSON, XML, CSV, Excel, or HTML.

### ⬇️ Input

The input for Reddit Ads Scraper is a search query, and optional filters for budget category, industry, and objective type.

Example input:

```json
{
  "query": "crypto",
  "budgetCategory": "MEDIUM",
  "industry": "TECH_B2C",
  "objectiveType": "AWARENESS",
  "cookies": [{ "name": "<cookie-name>", "value": "<your-session-value>" }]
}
```

### What are the input filter options?

- **query**: Keywords to search for specific ads.
- **budgetCategory**: Filter ads by budget category (LOW, MEDIUM, HIGH).
- **industry**: Filter ads by industry (TECH_B2C, TECH_B2B, EDUCATION, ENTERTAINMENT, etc.).
- **postType**: Filter ads by post type (IMAGE, VIDEO, CAROUSEL, FREE_FORM).
- **placements**: Filter ads by placement (FEED, CONVERSATION).
- **objectiveType**: Filter ads by objective type (AWARENESS, CONVERSIONS, APP_INSTALLS, TRAFFIC, VIDEO_VIEWABLE_IMPRESSIONS).
- **maxItems**: Maximum number of ads to return (default: 5). Without session cookies the API returns up to ~30 ads; with cookies the scraper paginates the full inventory.
- **cookies**: Optional Reddit session cookies to unlock full pagination (see below).

> ⚠️ **Session cookies (optional but recommended):** Without an authenticated session, Reddit returns only ~30 items (empty query) or ~10 items (keyword query) with no pagination. To scrape beyond that limit, provide your Reddit session cookies. Cookies expire periodically — when a run reports an invalid or expired session, re-export and update them.
>
> **How to obtain your cookies:**
>
> 1. Install the [**Cookie-Editor** Chrome extension](https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm).
> 2. Log in at [Reddit](https://www.reddit.com/).
> 3. Open the **Cookie-Editor** extension and **export your cookies** in **JSON format**.
> 4. Copy the exported cookie data and **paste it into the "Session Cookies" input** field.

### ⬆️ Output sample

The scraped data will be shown as a dataset which you can find in the **Storage** tab. Here’s an excerpt from the dataset you can get when applying the input parameters above:

And here is the same data but in JSON. You can choose in which format to download your Reddit data: JSON, JSONL, Excel, HTML table, CSV, or XML.

```json
{
  "id": "aef36f01740c13b03b1d19476eb5a8c0",
  "budget_category": "LOW",
  "industry": "OTHER",
  "placements": ["FEED"],
  "objective": "CONVERSIONS",
  "created_at": "2023-12-30T18:34:14+00:00",
  "headline": "We've been working for 3 years on this sci-fi adventure where your only companion in the arctic is a court-mandated therapy bot!",
  "body": null,
  "post_url": "https://www.reddit.com/r/u_GoldFire33/comments/18um8lt/weve_been_working_for_3_years_on_this_scifi/",
  "type": "VIDEO",
  "thumbnail_url": "https://external-preview.redd.it/example.jpg",
  "profile_id": "t2_example",
  "profile_name": "u_GoldFire33",
  "profile_image_url": "https://styles.redditmedia.com/example.jpeg",
  "content": [
    {
      "media_url": "https://v.redd.it/ya50e0bmm3rc1/DASH_1080.mp4?source=fallback",
      "destination_url": "https://example.com/landing",
      "display_url": "example.com",
      "call_to_action": "Learn More"
    }
  ]
}
```

### Limitations

Without an authenticated session, the Reddit Ads Scraper returns up to **~30 ads** per query (about 10 for keyword searches) — the top ads shown on the platform — with no pagination.

To scrape beyond this limit, provide your Reddit session cookies in the **"cookies"** input field. With an authenticated session, the scraper paginates through all available results automatically. Session cookies are short-lived (they expire after a few hours), so for scheduled runs you will need to refresh them periodically — when a run reports an expired session, re-export and update the cookies.

Still, you can scrape multiple queries and combine the results in a dataset. Furthermore, you can track ads over time to see how they evolve.

Scheduling the Reddit Ads Scraper is easy using the Apify platform.

### ❓FAQ

#### Can I use this tool for free?

With the Apify Free plan, you get $5 worth of credits every month. You can use the Reddit Ads Scraper with the free trial option, after which you can upgrade to a paid plan.

#### **How much does it cost?**

The cost for using the Reddit Ads Scraper is shown on the top of this page. You can also check the Apify Store page for more information.

### Need to scrape ads from other platforms?

👉 Scrape Google ads with [Google Ads Scraper](https://apify.com/lexis-solutions/google-ads-scraper)

👉 Scrape Bing ads with [Bing Ads Scraper](https://apify.com/lexis-solutions/bing-ads-scraper)

👉 Scrape TikTok ads with [TikTok Ads Scraper](https://apify.com/lexis-solutions/tiktok-ads-scraper)

***

👀 p.s.

Got feedback or need an extension?

Lexis Solutions is a [certified Apify Partner](https://apify.com/partners/find). We can help you with custom solutions or data extraction projects.

Contact us over [Email](mailto:scraping@lexis.solutions) or [LinkedIn](https://www.linkedin.com/company/lexis-solutions)

### Support Our Work 💝

If you're happy with our work and scrapers, you're welcome to leave us a company review [here](https://apify.com/partners/find/lexis-solutions/review) and leave a review for the scrapers you're subscribed to. It will take you less than a minute but it will mean a lot to us!

### Image Credit

Image credit: [ads.reddit.com](https://ads.reddit.com/)

# Actor input Schema

## `query` (type: `string`):

Enter keywords to search for specific ads. Leave empty to scrape all ads.

## `industry` (type: `string`):

Filter ads by industry (e.g., TECH_B2C, FINANCE, etc.). Leave empty for all industries.

## `budgetCategory` (type: `string`):

Filter ads by budget category (e.g., LOW, MEDIUM, HIGH). Leave empty for all categories.

## `postType` (type: `string`):

Filter ads by post type (e.g., IMAGE, VIDEO, TEXT). Leave empty for all types.

## `placements` (type: `string`):

Filter ads by placement (e.g., FEED, CONVERSATION). Leave empty for all placements.

## `objectiveType` (type: `string`):

Filter ads by objective type (e.g., AWARENESS, CONVERSIONS). Leave empty for all types.

## `maxItems` (type: `integer`):

Maximum number of ads to return. Without session cookies the API returns up to ~30 ads; with cookies it paginates the full inventory.

## `cookies` (type: `array`):

Optional. Paste your logged-in ads.reddit.com session cookies (cookie-editor JSON export, must include token_v2) to paginate the full ad inventory. When omitted, the scraper runs anonymously and returns up to ~30 ads. Note: the session token is short-lived (hours) and must be refreshed.

## `proxyConfiguration` (type: `object`):

Your proxy configuration from Apify.

## Actor input object example

```json
{
  "query": "crypto",
  "maxItems": 5,
  "cookies": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "crypto",
    "cookies": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("lexis-solutions/reddit-ads-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": "crypto",
    "cookies": [],
}

# Run the Actor and wait for it to finish
run = client.actor("lexis-solutions/reddit-ads-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "crypto",
  "cookies": []
}' |
apify call lexis-solutions/reddit-ads-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lexis-solutions/reddit-ads-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hIHt2e63CUiKjs2mw/builds/ADDR9EY0PeD7Nv27C/openapi.json
