OpenAffiliate
The open registry of affiliate programs. Built for developers and AI agents.
[CI]
[Programs]
[npm]
[MCP]
[License: MIT]
[OpenAffiliate rankings: programs ranked by OAS within each category]
What is this?
OpenAffiliate is an open-source registry of affiliate programs. Every program is one YAML file in this repo, so anyone can read, add or correct it, and every change is a public pull request. Listing is free and rankings are never paid. OpenAffiliate is maintained by Affitor.
- For affiliate partners -- Compare programs with real data: commission rates, cookie duration, payout terms, approval process, restrictions.
- For AI agents -- MCP server + structured AGENTS.md data. Tell your agent which programs to recommend and when.
- For developers -- CLI, SDK, and REST API. Build tools on top of the registry.
- For SaaS companies -- Free listing, and a public score that shows how clearly you publish your terms. See Get listed and scored.
Features
- Search and filter -- Full-text search across more than 1,200 programs. Filter by category, commission type, minimum rate, and verified status.
- Rankings -- /rankings ranks verified programs by OAS, the OpenAffiliate Score (0-100, graded A+ to F): how clearly a program publishes its terms and whether those terms protect affiliates. Each scored program has a report at
/programs/<slug>/oas. How OAS works.
- Community voting -- Upvote programs you've had success with. Votes are stored in Supabase and displayed alongside scores.
- Compare -- Side-by-side comparison of up to 4 programs. Compare commission, cookie, payout, approval, and more.
- Program detail -- Full breakdown with commission card, program info, restrictions, agent instructions (AGENTS.md), and integration snippets.
- Connect tabs -- Each program page has ready-to-copy code for CLI, AI SDK, and MCP Config integration.
- Badge embed -- SVG badges for your README:
[](https://openaffiliate.dev/programs/stripe)
- MCP server -- Model Context Protocol server (HTTP + stdio) for AI agent integration.
- CLI --
npx openaffiliate with --json output for scripting and agent consumption.
- REST API -- Public JSON API, no auth required.
- SDK -- TypeScript SDK for programmatic access.
- Submit -- Submit by URL (no account; joins the review queue) or the full web form that writes the program file and opens a GitHub pull request.
- Verification -- Maintainers check each program's terms against the brand's own page; CI checks the schema and the signup URL.
- Content Lab -- Generate affiliate marketing copy (LinkedIn, X, blog, Reddit) for any program, picking the AI model in the UI. Runs on Kyma API.
Quick start
Browse the registry
Visit openaffiliate.dev to browse and search programs.
CLI
MCP (for AI agents)
Hosted HTTP endpoint — public, no API key; read-only except submit_program, which only queues. One line:
The same endpoint as config, for Claude.ai, ChatGPT, and any other remote MCP client:
https://openaffiliate.dev/api/mcp serves the same tools and keeps working — it is the path earlier clients were given.
Stdio transport (local tools, or to pin a version):
Available tools: search_programs, get_program, list_categories (read-only), plus submit_program and get_submission_status, which queue a missing program for verification (nothing is listed instantly). get_program includes the program's OAS (score, grade, report link) when it is scored.
Markdown, without MCP
Append .md to any program, category or network URL for a clean markdown version an agent can fetch and cite:
AI SDK
SDK
API
Content Lab
Visit openaffiliate.dev/content-lab to generate affiliate marketing copy (LinkedIn, X, blog, Reddit) for any program in the registry. Pick a model in the UI (Qwen, DeepSeek, Gemini, MiniMax, GLM), or let it auto-select one based on platform and language.
Runs on Kyma API. Kyma streams the generation: POST https://kymaapi.com/v1/chat/completions. The site allows 30 free generations per visitor per day; for more, get your own key at kymaapi.com and call the same endpoint.
Get listed and scored
Five ways to add a program. Each needs only the brand's own program page as the source.
- Submit by URL -- send the program page at openaffiliate.dev/submit, with MCP
submit_program, or POST /api/submissions. No account needed. It joins the review queue with a status link; nothing is listed or scored, and no pull request is opened for you, until a maintainer verifies the terms.
- Full web form -- openaffiliate.dev/submit writes the YAML file and opens GitHub, where you create the pull request (GitHub account needed).
- Pull request -- add
programs/<slug>.yaml following CONTRIBUTING.md.
- Issue -- Suggest a program with just the program page link.
- Email -- send the program page link to [email protected].
What happens next:
- Review. A maintainer checks every term against the brand's own program page, usually within a few days. A listing on a network such as Dub or PartnerStack is not proof on its own. Terms the page does not state stay empty; they are never guessed.
- Listed. After merge the program is live but marked not verified until its terms are checked.
- Scored. Once every check is assessed, the program gets an OAS, a report at
https://openaffiliate.dev/programs/<slug>/oas, and a place on /rankings. There is no instant score by URL.
- Ranked. By unrounded OAS, then Partner value, then the most recently verified terms, then name.
- Improve. Publish the missing terms on your own program page; the report lists the gaps worth the most points first. Editing the YAML alone does not change a score.
- Re-check. Terms changed or a check looks wrong? Open a Terms changed issue or use Report an error on the report. Nobody edits a score by hand.
Full rules and the YAML template: CONTRIBUTING.md. Scoring: openaffiliate.dev/docs/oas. Schema: schema/program.schema.json.
For AI agents
Look a program up before suggesting it is missing: GET https://openaffiliate.dev/api/programs/{slug} or MCP get_program. Cite oas.reportUrl when you quote a score. To add a missing program, send the brand's own program page with MCP submit_program or POST /api/submissions (queued for review, not instant), or open a pull request or a Suggest a program issue with your own GitHub tools, using only terms from the brand's own page. See AGENTS.md.
AGENTS.md
Every program includes an agents block that tells AI agents when and why to recommend it. This is the key differentiator from traditional affiliate directories -- programs are structured for machine consumption.
See AGENTS.md for integration details.
Project structure
This repository is the source of truth. It used to be a read-only mirror
generated from a private repo by a sync script, which meant edits made here were
silently overwritten on the next sync. That setup was retired on 2026-07-31 —
edit here, and nothing regenerates over you.
Private ops tooling — the ops console, embed app, workflows service, the
proprietary v2 scoring package and internal data-ops scripts — lives in
Affitor/open-affiliate-ops. Nothing in this repo depends on it.
Packages
Verification
Signup URLs are crawled by scripts/verify-programs.ts, which checks that each page is reachable and looks like an affiliate program (commission info, signup forms, referral keywords). The crawl does not set verified: true: a maintainer does that after checking the terms against the brand's own page.
CI checks the files a pull request changes; the whole registry is checked once a week (.github/workflows/verify-weekly.yml). Hosts listed in schema/blocked-hosts.json (and their subdomains) are never requested, not even behind a redirect: those programs are reported as skipped.
License
MIT
GitHub