References

REST API

Query the registry with simple HTTP requests. No auth required.

Endpoints

GET
/api/programs

List all programs (?q=, ?category=, ?type=, ?verified=)

GET
/api/programs/{slug}

Get program details by slug

GET
/api/categories

List all categories with program counts

Example

cookieDays and the payout fields are left out when a program does not publish them. For a program with verified false, cookieDays, approval, approvalTime and payoutMethods are left out and payout is an empty object until its terms are checked against the program's own page, and sentences of its free text that state them are dropped; its commission is returned but unconfirmed. Programs with status paused, discontinued or no_program are returned by slug but not in search results or category counts.

curl
curl "https://openaffiliate.dev/api/programs?q=database&type=recurring&verified=true"

# Response
[
  {
    "slug": "supabase",
    "name": "Supabase",
    "commission": { "type": "recurring", "rate": "10%" },
    "cookieDays": 60,
    "category": "Database",
    "verified": true,
    ...
  }
]

Brands with no affiliate program

status no_program means no public affiliate program could be found on the brand's own site; discontinued means the brand closed it. GET /api/programs/{slug} still answers for these, with the same shape as any program so existing clients keep working, but with no terms in it:

  • commission is a placeholder: type "none", rate "No affiliate program", mode "unknown", value null. payout is an empty object. Cookie, signup, approval and restriction fields are left out.
  • answer is the page's answer: "No (checked <date>).", then the source and quote from statusNote.
  • alternatives lists verified programs in the same category that pay cash, each with slug, name, commission and url. It can be empty.
curl
curl "https://openaffiliate.dev/api/programs/openrouter"

# Response
{
  "slug": "openrouter",
  "name": "OpenRouter",
  "status": "no_program",
  "commission": { "type": "none", "rate": "No affiliate program", "mode": "unknown", "value": null, "currency": "USD" },
  "payout": {},
  "answer": "No (checked 2026-10-12). OpenRouter has no public affiliate program. ...",
  "alternatives": [
    { "slug": "kyma-api", "name": "Kyma API", "commission": "12% recurring/18mo", "url": "https://openaffiliate.dev/programs/kyma-api" }
  ],
  ...
}