reddit-ads
Reddit Ads API - campaigns, targeting, conversions, agentic optimization
Skill by alinaqi
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/alinaqi-reddit-ads
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, marketing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/reddit-ads
What's inside
- Skill name
reddit-ads- Description
- Reddit Ads API - campaigns, targeting, conversions, agentic optimization
- License
- MIT
- Instructions
- 1,976 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Agent Skills spec issues
- body: 1976 lines (spec recommends under 500)
Files (1)
- SKILL.md
SKILL.md (first lines)
# Reddit Ads API Skill
**Purpose:** Automate Reddit advertising campaigns using the Reddit Ads API. Create, manage, and optimize campaigns, ad groups, and ads programmatically.
---
## API Overview
```
┌─────────────────────────────────────────────────────────────────┐
│ REDDIT ADS API HIERARCHY │
│ ───────────────────────────────────────────────────────────── │
│ │
│ Account │
│ └── Campaign (objective, budget, schedule) │
│ └── Ad Group (targeting, bidding, placement) │
│ └── Ad (creative, headline, CTA) │
│ │
│ + Custom Audiences (customer lists, lookalikes) │
│ + Conversions API (track events server-side) │
├─────────────────────────────────────────────────────────────────┤
│ BASE URL: https://ads-api.reddit.com/api/v2.0 │
│ DOCS: https://ads-api.reddit.com/docs/ │
│ RATE LIMIT: 1 request per second │
│ AUTH: OAuth 2.0 with Bearer token │
└─────────────────────────────────────────────────────────────────┘
```
---
## Authentication
### Step 1: Create Reddit Developer App
1. Go to https://www.reddit.com/prefs/apps/
2. Click "Create App" or "Create Another App"
3. Fill in:
- **Name:** Your app name
- **Type:** Select `script` for server-side automation
- **Redirect URI:** Your callback URL (e.g., `https://yourapp.com/callback`)
4. Note your **Client ID** (under app name) and **Client Secret**
### Step 2: Authorization Flow
```javascript
// Node.js OAuth2 flow
const REDDIT_CLIENT_ID = process.env.REDDIT_ADS_CLIENT_ID;
const REDDIT_CLIENT_SECRET = process.env.REDDIT_ADS_CLIENT_SECRET;
const REDIRECT_URI = 'https://yourapp.com/callback';
// Step 1: Generate authorization URL
function getAuthorizationUrl(state) {
const scopes = 'adsread,adsedit,history';
return `https://www.reddit.com/api/v1/authorize?` +
`client_id=${REDDIT_CLIENT_ID}` +
`&response_type=code` +
`&state=${state}` +
`&redirect_uri=${encodeURIComponent(REDIRECT_URI)}` +
`&duration=permanent` +
`&scope=${scopes}`;
}
// Step 2: Exchange code for tokens
async function getAccessToken(authorizationCode) {
const credentials = Buffer.from(
`${REDDIT_CLIENT_ID}:${REDDIT_CLIENT_SECRET}`
).toString('base64');
const response = await fetch('https://www.reddit.com/api/v1/access_token', {
method: 'POST',
headers: {
'Authorization': `Basic ${credentials}`,
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'YourApp/1.0.0'
},
body: new URLSearchParams({
grant_type: 'authorization_code',
code: authorizationCode,
redirect_uri: REDIRECT_URI
})
});
return response.json();
// Returns: { access_token, refresh_token, expires_in, scope }
}
// Step 3: Refresh token when expired
async function refreshAccessToken(refreshToken) {
const credentials = Buffer.from(
`${REDDIT_CLIENT_ID}:${REDDIT_CLIENT_SECRET}`
).toString('base64');
const response = await fetch('https://www.reddit.com/api/v1/access_token', {
method: 'POST',
headers: {
'Authorization': `Basic ${credentials}`,
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'YourApp/1.0.0'
},
body: new URLSearchParams({
grant_type: 'refresh_token',
refresh_token: refreshToken
})
});
return response.json();
}
```
### Python OAuth2 Flow
```python
import requests
import base64
import os
REDDIT_CLIENT_ID = os.environ['REDDIT_ADS_CLIENT_ID']
REDDIT_CLIENT_SECRET = os.environ['REDDIT_ADS_CLIENT_SECRET']From alinaqi/maggy, MIT.
More from alinaqi/maggy
- 0.761score
model-routing
alinaqi
9-tier model routing system with cascading classifier fallback and result auto-evaluation
SkillAFreshness: A★ 711Claude Code +9 - 0.721score
dataforseo
alinaqi
Keyword & SERP research via the DataForSEO API — search volume, competition, CPC, keyword ideas for naming/SEO decisions
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
build-in-public
alinaqi
Best practices for sharing engineering work publicly — what to post, what to withhold, and channel-specific guidance
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
visual-validation
alinaqi
Autonomous screenshot verification — captures, compares, and AI-evaluates UI changes for visual regressions
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
autonomous-testing
alinaqi
AI-driven testing agent that auto-discovers, generates, executes, evaluates, and fixes tests for any project type
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
external-model-delegation
alinaqi
UserPromptSubmit hook pattern that classifies prompts into six cost tiers and delegates to external model CLIs
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
llm-patterns
alinaqi
AI-first application patterns, LLM testing, prompt management
SkillBFreshness: B★ 711Claude Code +9 - 0.716score
security-audit
alinaqi
Structured, adversarial, multi-phase security audit of a codebase — recon → coverage-led hunting → finder≠validator validation → machine-readable findings →…
SkillBFreshness: B★ 711Claude Code +9 - 0.716score
verify-cascade
alinaqi
Verification-gated model escalation — run a cheap model, verify its output with decomposed per-field checks, and escalate to a strong model only when a flag…
SkillBFreshness: B★ 711Claude Code +9 - 0.713score
context-shunt
alinaqi
Offload large / multi-file reads to a cheap worker model so raw files never enter Claude's context (token savings)
SkillBFreshness: B★ 711Claude Code +9 - 0.708score
ms-teams-apps
alinaqi
Microsoft Teams bots and AI agents - Claude/OpenAI, Adaptive Cards, Graph API
SkillBFreshness: B★ 711Claude Code +9 - 0.708score
agentic-development
alinaqi
Build AI agents with Pydantic AI (Python) and Claude SDK (Node.js)
SkillBFreshness: B★ 711Claude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 711
- Forks
- 61
- Open issues
- 0
- Last commit (this folder)
- Sep 8, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/alinaqi/maggy
- Website
- www.srooter.ai/maggy
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from alinaqi
- 0.761score
model-routing
alinaqi
9-tier model routing system with cascading classifier fallback and result auto-evaluation
SkillAFreshness: A★ 711Claude Code +9 - 0.721score
dataforseo
alinaqi
Keyword & SERP research via the DataForSEO API — search volume, competition, CPC, keyword ideas for naming/SEO decisions
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
llm-patterns
alinaqi
AI-first application patterns, LLM testing, prompt management
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
autonomous-testing
alinaqi
AI-driven testing agent that auto-discovers, generates, executes, evaluates, and fixes tests for any project type
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
build-in-public
alinaqi
Best practices for sharing engineering work publicly — what to post, what to withhold, and channel-specific guidance
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
external-model-delegation
alinaqi
UserPromptSubmit hook pattern that classifies prompts into six cost tiers and delegates to external model CLIs
SkillBFreshness: B★ 711Claude Code +9
Cite this page
reddit-ads skill. Agent Mart. https://agentmart.dev/skills/alinaqi-reddit-ads (last updated 2026-10-24)