{"openapi":"3.1.0","info":{"title":"Good Faith Mark Partner API","version":"1.0.0","description":"The affiliate program registry as JSON: each program's published terms, every dated change to them, and the public aggregate of payout reports. Read-only, no key, cached for an hour. Every data response names when the record was exported and the license it is under.","license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"}},"servers":[{"url":"https://goodfaithmark.com"}],"paths":{"/api/v1":{"get":{"operationId":"getIndex","summary":"Counts, coverage and the other endpoints","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexResponse"}}}}}}},"/api/v1/programs":{"get":{"operationId":"listPrograms","summary":"Every program, with its latest terms","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProgramListResponse"}}}}}}},"/api/v1/programs/{slug}":{"get":{"operationId":"getProgram","summary":"One program","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"The program's slug, the same as in /programs/{slug} on the site."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProgramResponse"}}}},"404":{"description":"No program with that slug.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/changes":{"get":{"operationId":"listChanges","summary":"The newest 500 term changes, newest first","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeListResponse"}}}}}}},"/api/v1/listings":{"get":{"operationId":"listListings","summary":"Published listings, newest first","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListingListResponse"}}}}}}}},"components":{"schemas":{"Program":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"url":{"type":"string","format":"uri","description":"The program's profile on goodfaithmark.com."},"domain":{"type":"string"},"affiliatePageUrl":{"type":"string"},"platform":{"type":"string"},"category":{"type":"string"},"verificationTier":{"type":"string","enum":["unverified","reported","verified","connected"]},"firstIndexedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},"lastCrawledAt":{"anyOf":[{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},{"type":"null"}]},"snapshotCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"terms":{"anyOf":[{"type":"object","properties":{"capturedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},"commissionRate":{"description":"The rate the program's own page states, as a number. Null when the page states none.","type":["number","null"]},"commissionType":{"type":"string"},"commissionCurrency":{"type":["string","null"]},"cookieDays":{"type":["number","null"]},"payoutThreshold":{"type":["number","null"]},"payoutThresholdCurrency":{"type":["string","null"]},"payoutSchedule":{"type":"string"}},"required":["capturedAt","commissionRate","commissionType","commissionCurrency","cookieDays","payoutThreshold","payoutThresholdCurrency","payoutSchedule"],"additionalProperties":false},{"type":"null"}]},"claim":{"anyOf":[{"type":"object","properties":{"claimedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},"stated":{"type":"object","properties":{"commission_rate":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"commission_type":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"cookie_days":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"payout_threshold":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"payout_schedule":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"affiliate_page_url":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false}},"additionalProperties":false}},"required":["claimedAt","stated"],"additionalProperties":false},{"type":"null"}]},"mark":{"anyOf":[{"type":"object","properties":{"licensedUntil":{"type":"string","minLength":20,"description":"A right to display the mark. Not a tier."}},"required":["licensedUntil"],"additionalProperties":false},{"type":"null"}]},"reports":{"anyOf":[{"type":"object","properties":{"count":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Accepted payout reports."},"distinctReporters":{"type":"integer","minimum":0,"maximum":9007199254740991},"onTimeCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"unpaidCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"medianDelayDays":{"description":"Days late across paid reports; negative is early.","type":["number","null"]},"disputedCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"proofCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"lastReportedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"}},"required":["count","distinctReporters","onTimeCount","unpaidCount","medianDelayDays","disputedCount","proofCount","lastReportedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["slug","name","url","domain","affiliatePageUrl","platform","category","verificationTier","firstIndexedAt","lastCrawledAt","snapshotCount","terms","claim","mark","reports"],"additionalProperties":false},"Change":{"type":"object","properties":{"programSlug":{"type":"string"},"programName":{"type":"string"},"programUrl":{"type":"string","format":"uri"},"field":{"type":"string"},"oldValue":{"type":["string","null"]},"newValue":{"type":["string","null"]},"severity":{"type":"string","enum":["info","notable","material","breaking"]},"kind":{"type":"string","enum":["discovery","change","lost"],"description":"Only \"change\" means the program did something."},"detectedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"}},"required":["programSlug","programName","programUrl","field","oldValue","newValue","severity","kind","detectedAt"],"additionalProperties":false},"Listing":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"url":{"type":"string","format":"uri","description":"The listing on goodfaithmark.com."},"websiteUrl":{"type":"string"},"category":{"type":["string","null"]},"verificationTier":{"type":"string","enum":["unverified","reported","verified","connected"]},"badgeVerifiedAt":{"anyOf":[{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},{"type":"null"}]},"badgeLastChecked":{"anyOf":[{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},{"type":"null"}]},"badgeLastOutcome":{"anyOf":[{"type":"string","enum":["found","nofollow","missing","unreachable"]},{"type":"null"}]},"createdAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"}},"required":["slug","name","url","websiteUrl","category","verificationTier","badgeVerifiedAt","badgeLastChecked","badgeLastOutcome","createdAt"],"additionalProperties":false},"Index":{"type":"object","properties":{"exportedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},"counts":{"type":"object","properties":{"programs":{"type":"integer","minimum":0,"maximum":9007199254740991},"changes":{"type":"integer","minimum":0,"maximum":9007199254740991},"listings":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["programs","changes","listings"],"additionalProperties":false},"coverage":{"type":"object","properties":{"withTerms":{"type":"integer","minimum":0,"maximum":9007199254740991},"total":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["withTerms","total"],"additionalProperties":false},"changeCounts":{"type":"object","properties":{"change":{"type":"integer","minimum":0,"maximum":9007199254740991},"discovery":{"type":"integer","minimum":0,"maximum":9007199254740991},"lost":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["change","discovery","lost"],"additionalProperties":false},"endpoints":{"type":"object","properties":{"programs":{"type":"string","format":"uri"},"program":{"type":"string","description":"Contains the literal placeholder {slug}."},"changes":{"type":"string","format":"uri"},"listings":{"type":"string","format":"uri"},"openapi":{"type":"string","format":"uri"},"docs":{"type":"string","format":"uri"}},"required":["programs","program","changes","listings","openapi","docs"],"additionalProperties":false}},"required":["exportedAt","counts","coverage","changeCounts","endpoints"],"additionalProperties":false},"ApiError":{"type":"object","properties":{"error":{"type":"object","properties":{"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"message":{"type":"string"}},"required":["status","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false},"IndexResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"exportedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},"counts":{"type":"object","properties":{"programs":{"type":"integer","minimum":0,"maximum":9007199254740991},"changes":{"type":"integer","minimum":0,"maximum":9007199254740991},"listings":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["programs","changes","listings"],"additionalProperties":false},"coverage":{"type":"object","properties":{"withTerms":{"type":"integer","minimum":0,"maximum":9007199254740991},"total":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["withTerms","total"],"additionalProperties":false},"changeCounts":{"type":"object","properties":{"change":{"type":"integer","minimum":0,"maximum":9007199254740991},"discovery":{"type":"integer","minimum":0,"maximum":9007199254740991},"lost":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["change","discovery","lost"],"additionalProperties":false},"endpoints":{"type":"object","properties":{"programs":{"type":"string","format":"uri"},"program":{"type":"string","description":"Contains the literal placeholder {slug}."},"changes":{"type":"string","format":"uri"},"listings":{"type":"string","format":"uri"},"openapi":{"type":"string","format":"uri"},"docs":{"type":"string","format":"uri"}},"required":["programs","program","changes","listings","openapi","docs"],"additionalProperties":false}},"required":["exportedAt","counts","coverage","changeCounts","endpoints"],"additionalProperties":false},"meta":{"type":"object","properties":{"version":{"type":"number","const":1},"exportedAt":{"type":"string","minLength":20,"description":"When the registry was exported. Not when it was crawled."},"license":{"type":"object","properties":{"name":{"type":"string","const":"CC BY 4.0"},"url":{"type":"string","const":"https://creativecommons.org/licenses/by/4.0/"}},"required":["name","url"],"additionalProperties":false},"attribution":{"type":"string","const":"Good Faith Mark, goodfaithmark.com"}},"required":["version","exportedAt","license","attribution"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"ProgramResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"url":{"type":"string","format":"uri","description":"The program's profile on goodfaithmark.com."},"domain":{"type":"string"},"affiliatePageUrl":{"type":"string"},"platform":{"type":"string"},"category":{"type":"string"},"verificationTier":{"type":"string","enum":["unverified","reported","verified","connected"]},"firstIndexedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},"lastCrawledAt":{"anyOf":[{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},{"type":"null"}]},"snapshotCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"terms":{"anyOf":[{"type":"object","properties":{"capturedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},"commissionRate":{"description":"The rate the program's own page states, as a number. Null when the page states none.","type":["number","null"]},"commissionType":{"type":"string"},"commissionCurrency":{"type":["string","null"]},"cookieDays":{"type":["number","null"]},"payoutThreshold":{"type":["number","null"]},"payoutThresholdCurrency":{"type":["string","null"]},"payoutSchedule":{"type":"string"}},"required":["capturedAt","commissionRate","commissionType","commissionCurrency","cookieDays","payoutThreshold","payoutThresholdCurrency","payoutSchedule"],"additionalProperties":false},{"type":"null"}]},"claim":{"anyOf":[{"type":"object","properties":{"claimedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},"stated":{"type":"object","properties":{"commission_rate":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"commission_type":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"cookie_days":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"payout_threshold":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"payout_schedule":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"affiliate_page_url":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false}},"additionalProperties":false}},"required":["claimedAt","stated"],"additionalProperties":false},{"type":"null"}]},"mark":{"anyOf":[{"type":"object","properties":{"licensedUntil":{"type":"string","minLength":20,"description":"A right to display the mark. Not a tier."}},"required":["licensedUntil"],"additionalProperties":false},{"type":"null"}]},"reports":{"anyOf":[{"type":"object","properties":{"count":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Accepted payout reports."},"distinctReporters":{"type":"integer","minimum":0,"maximum":9007199254740991},"onTimeCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"unpaidCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"medianDelayDays":{"description":"Days late across paid reports; negative is early.","type":["number","null"]},"disputedCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"proofCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"lastReportedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"}},"required":["count","distinctReporters","onTimeCount","unpaidCount","medianDelayDays","disputedCount","proofCount","lastReportedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["slug","name","url","domain","affiliatePageUrl","platform","category","verificationTier","firstIndexedAt","lastCrawledAt","snapshotCount","terms","claim","mark","reports"],"additionalProperties":false},"meta":{"type":"object","properties":{"version":{"type":"number","const":1},"exportedAt":{"type":"string","minLength":20,"description":"When the registry was exported. Not when it was crawled."},"license":{"type":"object","properties":{"name":{"type":"string","const":"CC BY 4.0"},"url":{"type":"string","const":"https://creativecommons.org/licenses/by/4.0/"}},"required":["name","url"],"additionalProperties":false},"attribution":{"type":"string","const":"Good Faith Mark, goodfaithmark.com"}},"required":["version","exportedAt","license","attribution"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"ProgramListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"url":{"type":"string","format":"uri","description":"The program's profile on goodfaithmark.com."},"domain":{"type":"string"},"affiliatePageUrl":{"type":"string"},"platform":{"type":"string"},"category":{"type":"string"},"verificationTier":{"type":"string","enum":["unverified","reported","verified","connected"]},"firstIndexedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},"lastCrawledAt":{"anyOf":[{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},{"type":"null"}]},"snapshotCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"terms":{"anyOf":[{"type":"object","properties":{"capturedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},"commissionRate":{"description":"The rate the program's own page states, as a number. Null when the page states none.","type":["number","null"]},"commissionType":{"type":"string"},"commissionCurrency":{"type":["string","null"]},"cookieDays":{"type":["number","null"]},"payoutThreshold":{"type":["number","null"]},"payoutThresholdCurrency":{"type":["string","null"]},"payoutSchedule":{"type":"string"}},"required":["capturedAt","commissionRate","commissionType","commissionCurrency","cookieDays","payoutThreshold","payoutThresholdCurrency","payoutSchedule"],"additionalProperties":false},{"type":"null"}]},"claim":{"anyOf":[{"type":"object","properties":{"claimedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},"stated":{"type":"object","properties":{"commission_rate":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"commission_type":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"cookie_days":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"payout_threshold":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"payout_schedule":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false},"affiliate_page_url":{"type":"object","properties":{"value":{"type":"string"},"statedAt":{"type":"string","minLength":20,"description":"When the verified owner stated it."}},"required":["value","statedAt"],"additionalProperties":false}},"additionalProperties":false}},"required":["claimedAt","stated"],"additionalProperties":false},{"type":"null"}]},"mark":{"anyOf":[{"type":"object","properties":{"licensedUntil":{"type":"string","minLength":20,"description":"A right to display the mark. Not a tier."}},"required":["licensedUntil"],"additionalProperties":false},{"type":"null"}]},"reports":{"anyOf":[{"type":"object","properties":{"count":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Accepted payout reports."},"distinctReporters":{"type":"integer","minimum":0,"maximum":9007199254740991},"onTimeCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"unpaidCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"medianDelayDays":{"description":"Days late across paid reports; negative is early.","type":["number","null"]},"disputedCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"proofCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"lastReportedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"}},"required":["count","distinctReporters","onTimeCount","unpaidCount","medianDelayDays","disputedCount","proofCount","lastReportedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["slug","name","url","domain","affiliatePageUrl","platform","category","verificationTier","firstIndexedAt","lastCrawledAt","snapshotCount","terms","claim","mark","reports"],"additionalProperties":false}},"meta":{"type":"object","properties":{"version":{"type":"number","const":1},"exportedAt":{"type":"string","minLength":20,"description":"When the registry was exported. Not when it was crawled."},"license":{"type":"object","properties":{"name":{"type":"string","const":"CC BY 4.0"},"url":{"type":"string","const":"https://creativecommons.org/licenses/by/4.0/"}},"required":["name","url"],"additionalProperties":false},"attribution":{"type":"string","const":"Good Faith Mark, goodfaithmark.com"}},"required":["version","exportedAt","license","attribution"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"ChangeListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"programSlug":{"type":"string"},"programName":{"type":"string"},"programUrl":{"type":"string","format":"uri"},"field":{"type":"string"},"oldValue":{"type":["string","null"]},"newValue":{"type":["string","null"]},"severity":{"type":"string","enum":["info","notable","material","breaking"]},"kind":{"type":"string","enum":["discovery","change","lost"],"description":"Only \"change\" means the program did something."},"detectedAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"}},"required":["programSlug","programName","programUrl","field","oldValue","newValue","severity","kind","detectedAt"],"additionalProperties":false}},"meta":{"type":"object","properties":{"version":{"type":"number","const":1},"exportedAt":{"type":"string","minLength":20,"description":"When the registry was exported. Not when it was crawled."},"license":{"type":"object","properties":{"name":{"type":"string","const":"CC BY 4.0"},"url":{"type":"string","const":"https://creativecommons.org/licenses/by/4.0/"}},"required":["name","url"],"additionalProperties":false},"attribution":{"type":"string","const":"Good Faith Mark, goodfaithmark.com"}},"required":["version","exportedAt","license","attribution"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"ListingListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"url":{"type":"string","format":"uri","description":"The listing on goodfaithmark.com."},"websiteUrl":{"type":"string"},"category":{"type":["string","null"]},"verificationTier":{"type":"string","enum":["unverified","reported","verified","connected"]},"badgeVerifiedAt":{"anyOf":[{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},{"type":"null"}]},"badgeLastChecked":{"anyOf":[{"type":"string","minLength":20,"description":"ISO 8601 timestamp"},{"type":"null"}]},"badgeLastOutcome":{"anyOf":[{"type":"string","enum":["found","nofollow","missing","unreachable"]},{"type":"null"}]},"createdAt":{"type":"string","minLength":20,"description":"ISO 8601 timestamp"}},"required":["slug","name","url","websiteUrl","category","verificationTier","badgeVerifiedAt","badgeLastChecked","badgeLastOutcome","createdAt"],"additionalProperties":false}},"meta":{"type":"object","properties":{"version":{"type":"number","const":1},"exportedAt":{"type":"string","minLength":20,"description":"When the registry was exported. Not when it was crawled."},"license":{"type":"object","properties":{"name":{"type":"string","const":"CC BY 4.0"},"url":{"type":"string","const":"https://creativecommons.org/licenses/by/4.0/"}},"required":["name","url"],"additionalProperties":false},"attribution":{"type":"string","const":"Good Faith Mark, goodfaithmark.com"}},"required":["version","exportedAt","license","attribution"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}}}}