changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "additionalProperties": false,
+ "properties": {
+ "programs": {
+ "description": "Matching active programs; empty when no listings match",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "category": {
+ "description": "Exact registry category name, as returned by list_categories",
+ "type": "string"
+ },
+ "commission": {
+ "additionalProperties": false,
+ "description": "Commission structure and figures; unverified terms are unconfirmed, not guaranteed earnings",
+ "properties": {
+ "currency": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Currency code for monetary amounts; null when unspecified"
+ },
+ "mode": {
+ "description": "Figure format: percentage uses percent units, flat uses currency units, tiered and hybrid require rate/conditions to interpret; unknown means no published figure",
+ "enum": [
+ "percentage",
+ "flat",
+ "tiered",
+ "hybrid",
+ "unknown"
+ ],
+ "type": "string"
+ },
+ "rate": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ],
+ "description": "Raw source wording; prefer mode and value"
+ },
+ "type": {
+ "description": "Payment structure: recurring pays on renewals within the commission duration; one-time pays once per qualifying referral; tiered varies by performance level; hybrid combines payment structures",
+ "enum": [
+ "recurring",
+ "one-time",
+ "tiered",
+ "hybrid"
+ ],
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Commission in percent units for percentage mode (30 means 30%), or currency units for flat mode; null when no single numeric figure is available"
+ }
+ },
+ "required": [
+ "type",
+ "mode",
+ "value",
+ "rate",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "cookieDays": {
+ "description": "Attribution window in days; omitted until terms are verified",
+ "type": "number"
+ },
+ "markdownUrl": {
+ "description": "Citable program page in Markdown on openaffiliate.dev",
+ "type": "string"
+ },
+ "name": {
+ "description": "Display name of the program or brand",
+ "type": "string"
+ },
+ "shortDescription": {
+ "description": "Brief product summary; unverified cookie, payout and approval claims are withheld",
+ "type": "string"
+ },
+ "signupUrl": {
+ "description": "Affiliate signup or program URL; falls back to the brand website when no signup URL is stored",
+ "type": "string"
+ },
+ "slug": {
+ "description": "Canonical slug to pass to get_program",
+ "type": "string"
+ },
+ "verified": {
+ "description": "True when the terms have been checked on the brand's own program page; false means unconfirmed",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "slug",
+ "name",
+ "category",
+ "shortDescription",
+ "commission",
+ "verified",
+ "signupUrl",
+ "markdownUrl"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "programs"
+ ],
+ "type": "object"
+}