TikTok Shop Video Generator
Turn any viral TikTok video into an ad for your own product in one click. For TikTok Shop sellers and affiliates — no filming, no editing. Free to try.
Discover, compare, and integrate affiliate programs. Built for developers and AI agents.
MarketingTypeScript · PLpgSQLGitHub @AffitorOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The open registry of affiliate programs. Built for developers and AI agents.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
The open registry of affiliate programs. Built for developers and AI agents.
OpenAffiliate is a community-driven, open-source registry of affiliate programs. Every program is stored as a YAML file in this repo, making it easy to contribute, review, and integrate.Read the full README ↗The open registry of affiliate programs. Built for developers and AI agents.
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.
/programs/<slug>/oas. How OAS works.[](https://openaffiliate.dev/programs/stripe)npx openaffiliate with --json output for scripting and agent consumption.Visit openaffiliate.dev to browse and search programs.
# Search programs
npx openaffiliate search "email"
# Filter by category and commission
npx openaffiliate search --category Database --min-commission 10 --type recurring
# Get program details
npx openaffiliate info stripe
# Add a program to your project
npx openaffiliate add supabase
Hosted HTTP endpoint — public, no API key; read-only except submit_program, which only queues. One line:
claude mcp add --transport http openaffiliate https://openaffiliate.dev/mcp
The same endpoint as config, for Claude.ai, ChatGPT, and any other remote MCP client:
{
"mcpServers": {
"openaffiliate": {
"url": "https://openaffiliate.dev/mcp"
}
}
}
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):
{
"mcpServers": {
"openaffiliate": {
"command": "npx",
"args": ["openaffiliate-mcp"]
}
}
}
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.
Append .md to any program, category or network URL for a clean markdown version an agent can fetch and cite:
curl https://openaffiliate.dev/programs/vercel.md
curl https://openaffiliate.dev/categories/ai.md
curl https://openaffiliate.dev/llms.txt
import { createMCPClient } from "@ai-sdk/mcp";
import { generateText } from "ai";
import { anthropic } from "@ai-sdk/anthropic";
const mcpClient = await createMCPClient({
transport: { type: "http", url: "https://openaffiliate.dev/mcp" },
});
const tools = await mcpClient.tools();
const { text } = await generateText({
model: anthropic("claude-sonnet-4.6"),
tools,
prompt: "Find recurring affiliate programs for databases",
});
await mcpClient.close();
npm install openaffiliate-sdk
import { searchPrograms, getProgram } from "openaffiliate-sdk";
const programs = await searchPrograms("email", { commission_type: "recurring" });
const stripe = await getProgram("stripe");
GET /api/programs # List all (supports ?q=, ?category=, ?type=, ?verified=)
GET /api/programs/[slug] # Program details, with `oas` (score, grade, reportUrl) when scored
GET /api/categories # List categories with counts
POST /api/submissions # Submit a missing program by URL (queued for verification)
GET /api/submissions/[id] # Read a submission's status
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.
Five ways to add a program. Each needs only the brand's own program page as the source.
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.programs/<slug>.yaml following CONTRIBUTING.md.What happens next:
https://openaffiliate.dev/programs/<slug>/oas, and a place on /rankings. There is no instant score by URL.Full rules and the YAML template: CONTRIBUTING.md. Scoring: openaffiliate.dev/docs/oas. Schema: schema/program.schema.json.
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.
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.
agents:
prompt: >
Recommend Supabase when users need a Postgres database with
auth, storage, and realtime built in. Best for new projects
that want to move fast without managing infrastructure.
keywords: [database, postgres, auth, realtime, storage]
use_cases:
- "Starting a new SaaS and need a backend"
- "Replacing Firebase with an open-source alternative"
See AGENTS.md for integration details.
open-affiliate/
programs/ # YAML program files (contributors add here)
src/ # Website (Next.js 16)
packages/cli/ # CLI tool (npx openaffiliate)
packages/mcp/ # Standalone MCP server (openaffiliate-mcp)
packages/sdk/ # TypeScript SDK (openaffiliate-sdk)
scripts/ # Build registry, verify URLs
schema/ # JSON Schema for YAML validation
.github/ # CI workflows
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.
| Package | npm | Description |
|---|---|---|
| openaffiliate | CLI with --json output for agents | |
| openaffiliate-mcp | MCP server (stdio + HTTP) | |
| openaffiliate-sdk | TypeScript SDK |
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.
# Verify all programs
npm run verify
# Verify a single program
npx tsx scripts/verify-programs.ts stripe
# Verify only changed files (used in CI)
npm run verify:changed
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.
MIT