{"service":"FairPrint","version":"1.0","description":"FairPrint publishes independent, evidence-backed directories for consequential services and evaluates Terms & Conditions and usage policies against 10 consumer-rights criteria. Certification is free.","url":"https://fairprint.app","llms_txt":"https://fairprint.app/llms.txt","service_directory":{"endpoint":"https://fairprint.app/industries","status":"launch categories open for provider nominations; provider assessments are being researched","methodology":{"stage":"research — published framework for the broader service assessments still in progress; not the certification scoring method","dimensions":[{"label":"Price","summary":"Total expected cost, required fees, renewals, financing, and common add-ons."},{"label":"Service","summary":"What is actually delivered, by whom, on what timeline, and with which limitations."},{"label":"Experience","summary":"Documented customer patterns, complaint handling, guarantees, and provider responses."},{"label":"Fine print","summary":"Cancellation, refunds, privacy, arbitration, liability, and unilateral policy changes."}],"perCategoryDetail":"Each category additionally publishes its own review_areas (for example, binding vs. non-binding estimates and post-loading fees for moving companies, or coverage exclusions and renewal price changes for home warranties).","note":"Domain-level directory transparency. Directory inclusion is not a recommendation and does not imply certification. Terms & Conditions certification is scored separately on the 10 criteria and 0-10 per-criterion scale documented under `scoring`."},"industries":[{"slug":"moving-companies","name":"Moving Companies","url":"https://fairprint.app/industries/moving-companies","description":"Compare movers on estimates, deposits, damage claims, cancellation terms, and the fees that can appear after loading day.","review_areas":["Binding vs. non-binding estimates","Deposits and cancellation","Damage and loss claims","Packing and accessorial fees","Insurance and valuation coverage","Complaint history and responses"],"service_examples":["Local movers","Long-distance movers","International relocation","Container moving","Packing services"],"relevant_fairprint_concerns":["No Hidden Fees","Clear Refunds","Easy Cancellation","Fair Dispute Process"],"providers":[{"name":"United Van Lines","website":"https://www.unitedvanlines.com/","service":"Full-service moving","policy_review_url":null,"full_service_assessment_status":"researching"},{"name":"Mayflower","website":"https://www.mayflower.com/","service":"Household moving services","policy_review_url":null,"full_service_assessment_status":"researching"},{"name":"Allied Van Lines","website":"https://www.allied.com/","service":"Residential moving services","policy_review_url":null,"full_service_assessment_status":"researching"}],"nomination_url":"https://fairprint.app/request?reason=Please+review+this+moving+companies+provider+for+pricing%2C+service+quality%2C+policies%2C+and+fine-print+risks.&concern=No+Hidden+Fees&concern=Clear+Refunds&concern=Easy+Cancellation&concern=Fair+Dispute+Process"},{"slug":"home-warranties-services","name":"Home Warranties & Services","url":"https://fairprint.app/industries/home-warranties-services","description":"Review coverage limits, exclusions, service-call charges, contractor access, renewals, and the practical path from claim to repair.","review_areas":["Coverage limits and exclusions","Service-call fees","Claim approval timelines","Contractor choice and availability","Renewal price changes","Cancellation and refunds"],"service_examples":["Home warranties","HVAC services","Plumbing","Electrical services","Appliance repair"],"relevant_fairprint_concerns":["Plain Language","No Hidden Fees","Auto-Renewal Notice","Easy Cancellation","Clear Refunds"],"providers":[{"name":"American Home Shield","website":"https://www.ahs.com/","service":"Home warranty plans","policy_review_url":null,"full_service_assessment_status":"researching"},{"name":"Choice Home Warranty","website":"https://www.choicehomewarranty.com/","service":"Home warranty plans","policy_review_url":null,"full_service_assessment_status":"researching"},{"name":"Cinch Home Services","website":"https://www.cinchhomeservices.com/","service":"Home warranty plans","policy_review_url":null,"full_service_assessment_status":"researching"}],"nomination_url":"https://fairprint.app/request?reason=Please+review+this+home+warranties+%26+services+provider+for+pricing%2C+service+quality%2C+policies%2C+and+fine-print+risks.&concern=Plain+Language&concern=No+Hidden+Fees&concern=Auto-Renewal+Notice&concern=Easy+Cancellation&concern=Clear+Refunds"},{"slug":"tax-bookkeeping","name":"Tax Preparation & Bookkeeping","url":"https://fairprint.app/industries/tax-bookkeeping","description":"Compare tax and bookkeeping services on transparent pricing, credentials, data handling, support, guarantees, and add-on fees.","review_areas":["Upfront and add-on pricing","Preparer credentials","Accuracy guarantees","Audit support","Financial-data privacy","Document retention and deletion"],"service_examples":["Tax filing","Small-business bookkeeping","Payroll services","Virtual CFO services","Tax resolution"],"relevant_fairprint_concerns":["Data Transparency","No Data Selling","No Hidden Fees","Right to Delete","Fair Dispute Process"],"providers":[{"name":"H&R Block","website":"https://www.hrblock.com/","service":"Tax preparation","policy_review_url":null,"full_service_assessment_status":"researching"},{"name":"QuickBooks","website":"https://quickbooks.intuit.com/","service":"Bookkeeping and accounting","policy_review_url":null,"full_service_assessment_status":"researching"},{"name":"TaxAct","website":"https://www.taxact.com/","service":"Tax preparation","policy_review_url":null,"full_service_assessment_status":"researching"}],"nomination_url":"https://fairprint.app/request?reason=Please+review+this+tax+preparation+%26+bookkeeping+provider+for+pricing%2C+service+quality%2C+policies%2C+and+fine-print+risks.&concern=Data+Transparency&concern=No+Data+Selling&concern=No+Hidden+Fees&concern=Right+to+Delete&concern=Fair+Dispute+Process"},{"slug":"legal-document-services","name":"Legal Document Services","url":"https://fairprint.app/industries/legal-document-services","description":"Understand what is included, what is not legal advice, who reviews the work, refund rules, recurring charges, and dispute terms.","review_areas":["Scope of service","Attorney involvement","Filing and government fees","Revision and refund policy","Subscription renewal","Disclaimers and dispute process"],"service_examples":["Business formation","Estate documents","Trademark filing","Divorce documents","Legal subscriptions"],"relevant_fairprint_concerns":["Plain Language","Clear Refunds","Auto-Renewal Notice","No Hidden Fees","Fair Dispute Process"],"providers":[{"name":"LegalZoom","website":"https://www.legalzoom.com/","service":"Legal document services","policy_review_url":null,"full_service_assessment_status":"researching"},{"name":"Rocket Lawyer","website":"https://www.rocketlawyer.com/","service":"Online legal documents","policy_review_url":null,"full_service_assessment_status":"researching"},{"name":"US Legal Forms","website":"https://www.uslegalforms.com/","service":"Legal form templates","policy_review_url":null,"full_service_assessment_status":"researching"}],"nomination_url":"https://fairprint.app/request?reason=Please+review+this+legal+document+services+provider+for+pricing%2C+service+quality%2C+policies%2C+and+fine-print+risks.&concern=Plain+Language&concern=Clear+Refunds&concern=Auto-Renewal+Notice&concern=No+Hidden+Fees&concern=Fair+Dispute+Process"},{"slug":"online-education-careers","name":"Online Education & Career Services","url":"https://fairprint.app/industries/online-education-careers","description":"Compare courses, bootcamps, coaching, and job services on outcomes evidence, total cost, refunds, financing, access duration, and data use.","review_areas":["Outcome and placement claims","Total tuition and financing","Refund windows","Course-access duration","Credential recognition","Student-data use"],"service_examples":["Online courses","Coding bootcamps","Career coaching","Résumé services","Job-placement services"],"relevant_fairprint_concerns":["Plain Language","Clear Refunds","No Hidden Fees","Data Transparency","Change Notification"],"providers":[{"name":"Coursera","website":"https://www.coursera.org/","service":"Online learning platform","policy_review_url":null,"full_service_assessment_status":"researching"},{"name":"Udemy","website":"https://www.udemy.com/","service":"Online course marketplace","policy_review_url":null,"full_service_assessment_status":"researching"},{"name":"LinkedIn Learning","website":"https://www.linkedin.com/learning/","service":"Career skills training","policy_review_url":"https://fairprint.app/blog/linkedin-terms-review","full_service_assessment_status":"researching"}],"nomination_url":"https://fairprint.app/request?reason=Please+review+this+online+education+%26+career+services+provider+for+pricing%2C+service+quality%2C+policies%2C+and+fine-print+risks.&concern=Plain+Language&concern=Clear+Refunds&concern=No+Hidden+Fees&concern=Data+Transparency&concern=Change+Notification"},{"slug":"subscription-health-fitness","name":"Subscription Health, Fitness & Telehealth","url":"https://fairprint.app/industries/subscription-health-fitness","description":"Review recurring care and fitness services on clinical scope, privacy, medication and membership costs, renewals, cancellation, and continuity of care.","review_areas":["Clinical scope and eligibility","Medication and membership pricing","Sensitive-data sharing","Recurring-charge consent","Cancellation process","Continuity and follow-up care"],"service_examples":["Telehealth subscriptions","Weight-care programs","Therapy platforms","Fitness memberships","Wellness coaching"],"relevant_fairprint_concerns":["Data Transparency","No Data Selling","Auto-Renewal Notice","Easy Cancellation","Right to Delete"],"providers":[{"name":"Noom","website":"https://www.noom.com/","service":"Digital health subscription","policy_review_url":"https://fairprint.app/blog/noom-terms-review","full_service_assessment_status":"researching"},{"name":"Peloton","website":"https://www.onepeloton.com/","service":"Connected fitness membership","policy_review_url":"https://fairprint.app/blog/peloton-terms-review","full_service_assessment_status":"researching"},{"name":"Teladoc Health","website":"https://www.teladochealth.com/","service":"Virtual healthcare services","policy_review_url":null,"full_service_assessment_status":"researching"}],"nomination_url":"https://fairprint.app/request?reason=Please+review+this+subscription+health%2C+fitness+%26+telehealth+provider+for+pricing%2C+service+quality%2C+policies%2C+and+fine-print+risks.&concern=Data+Transparency&concern=No+Data+Selling&concern=Auto-Renewal+Notice&concern=Easy+Cancellation&concern=Right+to+Delete"}],"nomination_guidance":"Use the category nomination_url to open /request with category context and FairPrint concern labels prefilled. Add the provider name and direct website or policy URL before submitting.","editorial_boundaries":"Category inclusion is not a recommendation. Existing T&C-only reviews are linked when available and remain distinct from the broader service assessments still being researched."},"trust_manifest":{"endpoint":"https://fairprint.app/.well-known/fairprint.json","cors_enabled":true,"public_api_methods":["GET","OPTIONS"],"description":"Well-known machine-readable trust manifest for browser agents, procurement tools, and badge verifiers. It summarizes the independent service directory, free certification program, scoring tiers, criteria, canonical certificate/badge proof handles, badge adoption guide, verifier/lookup APIs, provider and policy nomination actions, and public-record privacy boundaries.","response":"{ schema, version, generatedAt, issuer, serviceDirectory, certification, regulatoryContext, proof, actions, privacy }. Public metadata only; no submitter emails, admin state, or payment metadata."},"submission":{"method":"POST","endpoint":"https://fairprint.app/api/review","content_type":"application/json","auth_required":false,"cors_enabled":true,"public_api_methods":["POST","OPTIONS"],"terms_import_helper":{"endpoint":"https://fairprint.app/api/extract-terms","web_forms":["https://fairprint.app/apply","https://fairprint.app/apply/ai","https://fairprint.app/review"],"method":"POST","auth_required":false,"body":{"url":"string — public http(s) Terms URL; only public redirect destinations are followed"},"response":"{ url, text, characterCount, truncated }. Review extracted text before sending it as termsText/policyText; script-rendered pages, private-network redirects, and PDFs may still require manual paste."},"fields":{"companyName":{"type":"string","required":true,"description":"Company or AI model name"},"website":{"type":"string","required":true,"description":"Homepage URL; bare domains are accepted and normalized to https://"},"email":{"type":"string","required":true,"description":"Contact email for results"},"termsText":{"type":"string","required":true,"description":"Full text of Terms of Service or usage policy (not a URL)"},"submitterType":{"type":"'company' | 'ai_model'","required":false,"description":"Use 'ai_model' when submitting model cards, usage policies, or AI service terms"},"modelProvider":{"type":"string","required":false,"description":"Provider or lab name for AI model submissions"}},"example_request":{"companyName":"Acme AI","website":"https://acme.ai","email":"legal@acme.ai","termsText":"Paste the full text of your terms here...","submitterType":"ai_model","modelProvider":"Acme Labs"},"response_privacy":"The company object returns only public certification metadata: id, name, website, submittedAt, status, submitterType, and modelProvider. Contact email is retained for private administration and is never returned by this public CORS-enabled endpoint.","quick_review_preflight":{"endpoint":"https://fairprint.app/api/review-stream","method":"POST","auth_required":false,"cors_enabled":true,"public_api_methods":["POST","OPTIONS"],"body":{"termsText":"string — full or extracted Terms of Service / usage policy text"},"response":"Default response streams text/plain model output shaped as the quick-review JSON prompt. Send ?format=json or Accept: application/json to receive structured JSON: { criteria, red_flags, improvements, summary, overallScore, passCount, qualifies, storage: 'none', badgeUrl: null, certifiedPage: null, routing }. Use this for no-storage browser-agent preflight checks; it does not create a public certificate, badgeUrl, certifiedPage, directory record, or admin submission.","routing_guidance":"If the preflight looks strong, send the applicant to /apply or /apply/ai for an official stored review. If it exposes consumer-risk clauses, route the brand/domain into /request with relevant concern tags."},"ai_writing_analyzer":{"web":"https://fairprint.app/analyze","endpoint":"https://fairprint.app/api/analyze","method":"POST","auth_required":false,"cors_enabled":true,"public_api_methods":["POST","OPTIONS"],"storage":"none","body":{"text":"string — at least 120 and at most 50,000 characters of company-produced writing (policy, support doc, marketing, blog, research, or social text)"},"response":"{ type, overallScore, confidence, label, signals[], evidence[], summary, analyzedAt }. type is one of policy|support|marketing|blog|research|social|generic. confidence is low|moderate|high. signals[] are 0-10 scores under keys stylistic_fluency, repetition_templates, hedging_generality, specificity_evidence, voice_coherence, disclosure. Higher score = more consistent with AI-written output.","web_result_outputs":["copyable plain-text analysis brief","downloadable .txt analysis brief"],"usage_guidance":"Use for transparency/disclosure triage — e.g. spotting undisclosed AI-generated legal copy that FairPrint's AI-accuracy/disclosure mission cares about — not as proof of authorship. Malformed, non-object, or short (<120 char) bodies return a clean 400 JSON error; over-long (>50,000) bodies return 400 as well.","routing_guidance":"When type is policy or support and confidence is high (Likely AI-assisted), route the brand/domain into /request so undisclosed AI-generated legal copy can become a structured public nomination (the web results prefill /request with a disclosure reason, a Plain Language concern, the optional or inferred company/source name, and the imported source URL). The web analyzer also routes into /apply?prefill=analyze, which prefills the analyzed text, optional source/company name, and source URL into the official certification form for a company that wants to seek a FairPrint badge on its own terms."}},"scoring":{"scale":"0–100","method":"Sum of 10 criteria scored 0–10 each","tiers":[{"label":"FairPrint Gold","min":75,"max":100,"certified":true,"tier":"certified","description":"Exemplary consumer protections across all 10 criteria."},{"label":"FairPrint Approved","min":55,"max":74,"certified":true,"tier":"approved","description":"Good consumer protections. Meets the FairPrint standard."},{"label":"Needs Improvement","min":0,"max":54,"certified":false,"tier":"rejected","description":"Detailed per-criterion feedback provided for improvement."}]},"criteria":[{"id":1,"name":"Plain Language","weight":10,"description":"Written for real people, not just lawyers. Measures readability, sentence length, and legal jargon density."},{"id":2,"name":"Data Transparency","weight":10,"description":"Every category of data collected must be explicitly named with stated purposes and retention windows. Voice, audio, sensor, or other sensitive collection requires clear affirmative consent, and consequential uses such as personalized pricing must be disclosed."},{"id":3,"name":"No Data Selling","weight":10,"description":"Any sale or monetization of personal data must require affirmative opt-in consent."},{"id":4,"name":"Easy Cancellation","weight":10,"description":"Cancellation must be as accessible as signup — no phone-only, mail-in, support-only friction, retention mazes, cancellation fees, or hidden notice periods."},{"id":5,"name":"Clear Refunds","weight":10,"description":"Refund eligibility, timeframes, and process must be stated plainly before purchase; no-refund policies must be prominent before payment."},{"id":6,"name":"Auto-Renewal Notice","weight":10,"description":"Auto-renewals must be called out before signup with renewal date, charge frequency, cancellation deadline, trial-conversion timing, and continuing-charge consent visible."},{"id":7,"name":"No Hidden Fees","weight":10,"description":"Every material fee must appear before signup or checkout, including mandatory fees, renewal prices, promotional-price end dates, taxes, and optional add-ons."},{"id":8,"name":"Right to Delete","weight":10,"description":"Account and data deletion must be user-accessible directly, with deletion confirmation, retention timelines, backup retention, and exceptions disclosed."},{"id":9,"name":"Fair Dispute Process","weight":10,"description":"No mandatory binding arbitration with class-action waivers. Users must have small-claims court access."},{"id":10,"name":"Change Notification","weight":10,"description":"Material changes to terms must be sent by email with adequate advance notice."}],"regulatory_context":{"description":"Current public enforcement and policy signals that ground FairPrint's criteria. These signals support scoring emphasis; they do not change the 55/75 tier thresholds.","signals":[{"date":"2026-08-31","source":"FTC","title":"Amazon secret ad surcharge lawsuit","url":"https://www.ftc.gov/news-events/news/press-releases/2026/08/ftc-states-sue-amazon-over-secret-ad-surcharge-scheme","relevant_criteria":["Plain Language","No Hidden Fees","Change Notification"],"summary":"The FTC and 22 states sued Amazon, alleging it changed advertising-auction pricing without notice, imposed undisclosed surcharges, and misled advertising customers about how their prices were set."},{"date":"2026-08","source":"FTC","title":"Active Listening AI marketing final orders","url":"https://www.ftc.gov/news-events/news/press-releases/2026/08/ftc-finalizes-orders-cox-media-group-two-other-firms-settling-charges-they-deceived-customers-about","relevant_criteria":["Plain Language","Data Transparency","No Data Selling"],"summary":"The FTC finalized orders settling allegations that firms misrepresented an AI advertising service's use of voice data and consumer opt-in; the agency said collecting and using voice data without adequate consent would violate the FTC Act."},{"date":"2026-08","source":"FTC","title":"Personalized pricing proposed enforcement policy statement","url":"https://www.ftc.gov/news-events/news/press-releases/2026/09/ftc-extends-public-comment-proposed-policy-statement-regarding-personalized-pricing","relevant_criteria":["Data Transparency"],"summary":"The FTC sought comment on a proposed statement warning that businesses may violate the FTC Act when they fail to disclose use of personal data to personalize prices, then extended the comment period; the current deadline is Sept. 25, 2026. The statement does not ban personalized pricing."},{"date":"2026-08","source":"FTC","title":"Doxo bill-payment and add-on-fees settlement","url":"https://www.ftc.gov/news-events/news/press-releases/2026/08/bill-payment-firm-doxo-pay-21-million-settle-ftc-allegations-it-deceived-consumers-charged-them-add","relevant_criteria":["Plain Language","No Hidden Fees","Auto-Renewal Notice"],"summary":"Doxo agreed to pay $2.1 million to settle FTC allegations that it used misleading search ads, added delivery fees without clear disclosure, and deceptively enrolled consumers in a recurring subscription program."},{"date":"2026-09","source":"FTC","title":"Payment-processor deception enforcement (Nuvei, Humboldt)","url":"https://www.ftc.gov/news-events/news/press-releases/2026/09/payment-processor-nuvei-must-implement-robust-merchant-screening-practices-pay-485-million-settle","relevant_criteria":["Plain Language","No Hidden Fees","Auto-Renewal Notice"],"summary":"The FTC took action against two payment processors, alleging one knowingly opened and maintained processing accounts for merchants engaged in deception — including tech-support scams and a business opportunity with false earnings claims — and requiring robust merchant screening under the proposed order. Grounds review of misleading checkout, earnings-claim, and recurring-charge language in the vendors that enable it."},{"date":"2026-06","source":"FTC","title":"FTC subscription-scheme action","url":"https://www.ftc.gov/news-events/news/press-releases/2026/06/ftc-sues-stop-sprawling-enterprise-operating-unlawful-subscription-schemes","relevant_criteria":["Easy Cancellation","Auto-Renewal Notice","No Hidden Fees"],"summary":"Cancellation friction, renewal disclosures, upfront fees, and recurring-charge consent are active consumer-protection risks."},{"date":"2026-05","source":"FTC","title":"Shutterstock subscription-cancellation settlement","url":"https://www.ftc.gov/news-events/news/press-releases/2026/05/shutterstock-pay-35-million-settle-ftc-allegations-over-illegal-subscription-cancellation-practices","relevant_criteria":["Easy Cancellation","Auto-Renewal Notice"],"summary":"Shutterstock agreed to pay $35 million to settle FTC allegations that it charged consumers for subscriptions without their consent, failed to disclose automatic renewal terms, and made cancellation difficult."},{"date":"2026-07","source":"FTC","title":"Hopper hidden-fees settlement","url":"https://www.ftc.gov/news-events/news/press-releases/2026/07/travel-app-hopper-pay-35-million-settle-ftc-allegations-it-charged-fees-without-consent-deceived","relevant_criteria":["No Hidden Fees","Clear Refunds"],"summary":"Hopper agreed to pay $35 million to settle FTC allegations over hidden pre-selected fees and misrepresented services."},{"date":"2026-07","source":"FTC","title":"Hims & Hers privacy and subscription action","url":"https://www.ftc.gov/news-events/news/press-releases/2026/07/ftc-states-act-against-hims-hers-deceptive-unlawful-privacy-practices","relevant_criteria":["Data Transparency","No Data Selling","Easy Cancellation","Auto-Renewal Notice"],"summary":"The FTC and state partners sued Hims & Hers, alleging difficult cancellation, unclear recurring charges, and sharing of sensitive health information with advertising platforms despite privacy promises."},{"date":"2026-07","source":"FTC","title":"AI Accuracy proposed policy statement","url":"https://www.ftc.gov/news-events/news/press-releases/2026/07/ftc-seeks-public-comment-policy-statement-addressing-ai-accuracy","relevant_criteria":["Plain Language","Data Transparency"],"summary":"The FTC sought public comment on whether undisclosed manipulation of AI outputs may be deceptive under Section 5 of the FTC Act."}]},"response_shape":{"id":"string — unique review ID, used to build badge and certified page URLs","badgeUrl":"string | null — canonical badge SVG URL for FairPrint Approved/Gold submissions; null when the review needs improvement","certifiedPage":"string | null — canonical public certificate URL for FairPrint Approved/Gold submissions; null when the review needs improvement","badge_url":"string | null — snake_case alias for agent/tool consumers","certified_page":"string | null — snake_case alias for agent/tool consumers","remediation":"object | null — remediation roadmap for below-Gold results (null when the review is FairPrint Gold). Additive field for agent/tool consumers; older clients that read only id/badgeUrl/certifiedPage/review are unaffected.","review":{"overallScore":"number 0–100","tier":"'certified' | 'approved' | 'rejected'","summary":"string — plain-English summary of the review","criteria":"array of { name, passed, score, notes }","redFlags":"string[] — specific issues found","improvements":"string[] — recommended changes"}},"remediation_roadmap":"Every Needs Improvement or Approved-but-not-Gold submission result on /apply and /apply/ai renders a remediation roadmap: the criteria below the next achievable tier, weakest first, each paired with the published 'standard to meet' copy from /standards plus a copyable plain-text remediation brief (company, policy URL, target tier, per-criterion gaps, resubmit path). Approved targets Gold (75+) and lists every criterion below a perfect 10; Needs Improvement targets Approved (55+) and lists only criteria that are not yet passing. The same roadmap also renders on the /review quick review whenever the result does not qualify (fewer than 8/10 criteria passing, each criterion needing 6+/10): it lists every non-passing criterion weakest first, states how many more passing criteria are needed to reach 8/10, and produces a qualification-framed copyable brief that points back to /review for a re-check and to /apply for the official badge. The same roadmap is also machine-readable: POST /api/review returns a `remediation` object (null for FairPrint Gold), and the quick-review JSON form of POST /api/review-stream returns a qualification-shaped `remediation` object whenever `qualifies` is false. Both expose `target`, `gaps` (name, score, passed, band, targetState, currentState), the gap count, and a paste-ready `brief` string, so agents can act on a review instead of only reporting a score.","agent_trust_checklist":[{"question":"Can an agent verify policy readability without trusting marketing copy?","evidence":"Certified pages expose the overall score and per-criterion notes for Plain Language and all other criteria."},{"question":"Can an agent detect billing, renewal, refund, or cancellation risk before recommending a product?","evidence":"Easy Cancellation, Clear Refunds, Auto-Renewal Notice, and No Hidden Fees are scored as separate criteria."},{"question":"Can an agent cite a stable third-party trust source?","evidence":"Each passing review has a canonical certified page, badge URL, public directory entry, JSON feed record, and copyable certificate-page verification handles including lookup JSON, a prefilled badge-install-kit link, and a plain-text procurement/support brief."}],"blog":{"url":"https://fairprint.app/blog","feed":"https://fairprint.app/api/blog/feed","feed_type":"application/atom+xml","cors_enabled":true,"public_api_methods":["GET","OPTIONS"],"description":"Editorial blog posts and auto-generated T&C review posts covering consumer rights, dark patterns, regulatory updates, and fair terms guidance. New review posts are generated by a periodic job; the blog feed covers both editorial and review content."},"directory":{"endpoint":"https://fairprint.app/directory","verifier":"https://fairprint.app/verify","signal_report":"https://fairprint.app/report","feed":"https://fairprint.app/api/feed","lookup":"https://fairprint.app/api/certified-lookup?website=example.com","feed_cors_enabled":true,"lookup_cors_enabled":true,"public_api_methods":["GET","OPTIONS"],"lookup_parameters":["slug","name","website","q"],"verifier_parameters":["q","company","website","slug"],"verifier_canonical_prefill":"https://fairprint.app/verify?q={slug}","verifier_handle_on_registry_surfaces":"Every surface that asserts a verdict about a published record also offers the reader the canonical verifier handle for that exact record, so a claim can be checked without installing anything or reconstructing a URL. /recently-certified renders a 'Verify this seal' link on every row — stale or current — from the canonical slug. /directory rows carry a 'Verify' action alongside the vendor-facing handles (certificate, badge SVG, install kit). The certificate page's copyable handle list exposes a 'Verifier' entry and its procurement/support brief reads 'Check the claim yourself at https://fairprint.app/verify?q={slug}'. The T&C changelog (/changelog) states a tier and score on every row and now carries a 'Verify this record' handle on each one, built from the company's canonical slug — a changelog row that says 'Needs Improvement' resolves to the verifier's own no-match state, which states the absence honestly and bridges to a nomination, rather than being a dead end or a false green check. The service-industry catalog reconciles each listed provider against the live registry and its provider card renders the same verifier handle beside the certificate and badge handles. These are derived from buildVerifyHref({ slug })/buildVerifyUrl({ slug }) beside the verifier's own resolver, never hand-interpolated; a surface that states a verdict and lists badge SVG and lookup JSON but no human check page is the gap this closes. The canonical prefill is always the record's **slug**, never its display name, because a name containing punctuation, repeated whitespace, or non-ASCII characters has a slug that differs from its lowercased form.","verification_handle_inputs":["company name","website/domain","review ID","https://fairprint.app/certified/{slug}","https://fairprint.app/api/badge/{id}","/certified/{slug}","/api/badge/{id}"],"lookup_response":"{ company: public Approved/Gold record | null, suggestions: public possible matches[], message?: string }. A non-null company includes id, name, website, status, submitterType ('company' | 'ai_model'), modelProvider (string | null), submittedAt, badgeUrl, certifiedPage, and public review fields. Suggestions are discovery aids only; only a non-null company is verified proof.","description":"Public listing of all certified companies and AI models. /directory accepts q and tab filters; each visible registry row links to the canonical certificate, badge SVG, and a prefilled /badge-kit?q={badgeUrl} install kit so badge adoption can start from discovery, not only from certificate pages. Empty search results link into /request with company, domain-shaped website, reason, and repeated concern= criteria prefilled so failed certificate discovery can become a structured review nomination. /verify provides a human-facing way to check badge claims from names, domains, review IDs, pasted certificate URLs, or pasted badge SVG URLs, and links to canonical certificate, badge SVG, badge-install kit, and lookup JSON handles; no-match domain checks route into /request with company, website, reason, and repeated concern= criteria prefilled so failed badge claims can become tagged review nominations.","certification_recency":{"description":"Public certificate, verified-badge, directory, and signal-report surfaces display the review date and are honesty-aware that policies change. A verified /verify result states an explicit re-verification verdict — either 'Re-verification due — this review is N days old (window closed DATE)' when the review is past the 90-day window, or 'Re-checked within FairPrint's 90-day window ... next re-check due DATE' when it is current — derived from the same helpers the certificate page, /report, and /api/report use, so the verifier can never call a seal valid while its own certificate page calls it overdue. Each surface offers a 'report updated terms' path that routes into /request with company, domain-shaped website, an updated-policy reason, and repeated concern= tags for Change Notification, Auto-Renewal Notice, No Hidden Fees, and Right to Delete, so anyone who notices a policy has changed since review can flag it for re-verification rather than letting a stale seal stand. The signal report turns that into a standing queue: /api/report exposes reverificationQueue with every public record past the 90-day re-verification window, oldest first, each with a prefilled re-review request URL and a nominated flag.","surfaces":["https://fairprint.app/certified/{slug} (certificate recency note)","https://fairprint.app/verify (verified badge result re-verification verdict)","https://fairprint.app/directory (registry listing recency note)","https://fairprint.app/report (seals due for re-verification queue)","https://fairprint.app/report (newest certificate recency actions)"],"prefill_parameters":["company","website","reason","concern"]}},"industry_catalog":{"endpoint":"https://fairprint.app/industries","api_endpoint":"https://fairprint.app/api/industries","cors_enabled":true,"allowed_methods":["GET","OPTIONS"],"query_parameters":["industry"],"description":"The six catalogued service-industry frameworks (moving companies, home warranties and services, tax preparation and bookkeeping, legal document services, online education and career services, subscription health/fitness/telehealth) reconciled against the live public certification registry. /industries and each /industries/{slug} page render provider cards from the same reconciliation: a listed provider holding a public Approved/Gold record shows its tier, score, review date, re-verification state, and the canonical certificate, verifier, and badge handles; a provider with no public record reads 'Not yet reviewed' with its nomination path. Call /api/industries?industry={slug} to read that as JSON, so a listing can be checked without scraping the catalog page.","api_response":"{ generatedAt, source, public_records_only, listed_providers, public_records_matched, public_records_listed, catalog_coverage, industries[], providers[], public_records_not_in_catalog[], note }. Each providers[] entry is { industry, name, website, service, listed, association_method, certified, tier, score, grade, reviewed_at, days_since_review, reverification_due, reverification_due_at, slug, certified_page, verify_url, badge_url, disclosure }. `association_method` is 'website-host' (durable domain match, preferred) or 'slug', and is null when there is no record — a surprising match is worse than no match, so nothing is ever inferred from a similar-looking name. A provider with no public record returns certified: false with null handles: that is an absence of review, not a negative verdict, and unpublished or non-passing submissions are never named. `public_records_not_in_catalog` lists public records matching none of the catalogued providers so the catalog is not mistaken for the whole registry. Public records only; no submitter emails or admin state.","scope_note":"A public record for a catalogued provider certifies its Terms & Conditions against the 10 criteria. It says nothing about price, delivery, or customer service, and a catalog listing is not an endorsement; full service assessments are a separate track still in research for every listed provider."},"signal_report":{"endpoint":"https://fairprint.app/report","api_endpoint":"https://fairprint.app/api/report","cors_enabled":true,"public_api_methods":["GET","OPTIONS"],"description":"Live public report summarizing FairPrint registry coverage, FairPrint Gold/Approved mix, open review-request demand, community votes, criteria concerns tagged in nominations, lowest average criterion scores among public certificates, a seals-due-for-re-verification queue, and a canonical verification handle for every public record. Newest certificate rows expose badge proof, a prefilled badge install kit, a canonical verifier link, a 'report updated terms' path, and their own staleness state, and every re-verification row exposes the same prefilled re-review request path, so adoption and stale-policy observations can both flow from the report. Use it as a human-readable market and trust signal before browsing the directory or nominating a company.","api_response":"{ generatedAt, summary, certificationMix, criteriaPressurePoints, nominationConcernTags, newestCertificates, topOpenNominations, reverificationQueue, canonicalVerifyHrefs, relatedEndpoints }. newestCertificates[] includes daysSinceReview, reverificationDue, reverificationDueAt, badgeUrl, badgeKitUrl, certifiedPage, verifyUrl, and updatedTermsReportUrl. canonicalVerifyHrefs is { links[], urls[], count } — one canonical verifier handle per public record (newest first, same order as newestCertificates[] and the registry), where links[] are relative (/verify?q={slug}) and urls[] absolute; use these to hand a third party a proof handle that resolves without disambiguation rather than reconstructing one, because the canonical prefill is the company slug and not the display name (names containing punctuation, repeated whitespace, or non-ASCII characters have slugs that differ from their lowercased name). reverificationQueue is { window: { dueAfterDays, metric, rationale }, summary: { publicRecords, dueForReverification, oldestReviewDays, alreadyNominated }, entries[] }, where each entry is a public record whose policy has not been re-checked within the window (oldest first) and carries daysSinceReview, reverificationDueAt, reverificationDue, slug, certifiedPage, verifyUrl, updatedTermsReportUrl, renewUrl, and a nominated flag; the window default is 90 days. Each entry exposes both halves of the re-verification loop: updatedTermsReportUrl is the consumer nomination path into /request, and renewUrl (https://fairprint.app/renew?q={slug}) is the seal-holder remedy that refreshes the existing certificate under the identity it was certified under, so an agent can route a stale seal to whoever can actually resolve it. reverificationDue is the per-record staleness boolean and appears on both newestCertificates[] and reverificationQueue.entries[]; a record present in reverificationQueue.entries[] always has reverificationDue true, and a seal can be the newest certificate and still be overdue. Each public certificate page states the same status in visible text, and every queue row plus the certificate recall note links the seal holder into the self-serve https://fairprint.app/renew flow (see re_verification). relatedEndpoints includes badgeKit. Public records only; no submitter emails, admin state, or legacy payment fields are exposed.","source_data":["public Approved/Gold certification records","public review-request queue","FairPrint criteria labels"],"related_actions":["https://fairprint.app/directory","https://fairprint.app/verify","https://fairprint.app/badge-kit","https://fairprint.app/renew","https://fairprint.app/request","https://fairprint.app/apply"],"operator_surface":"The same reverificationQueue drives an admin panel at /admin (authenticated), which renders the identical derived fields — slug, certifiedPage, verifyUrl, updatedTermsReportUrl, renewUrl — plus a copyable re-check outreach note. The outreach tracker at /admin/outreach additionally offers a copyable proof-handle note for any target that already holds a public seal, carrying its verifyUrl, certifiedPage, badgeUrl, and a certified-lookup handle, so the operator's message and the public record cannot disagree about which URL proves the claim."},"badge_adoption":{"guide":"https://fairprint.app/badge-kit","canonical_badge_url":"https://fairprint.app/api/badge/{id}","canonical_certificate_url":"https://fairprint.app/certified/{company-slug}","verification_api":"https://fairprint.app/api/certified-lookup?q=https://fairprint.app/api/badge/{id}","human_verifier":"https://fairprint.app/verify","per_record_verifier":"https://fairprint.app/verify?q={company-slug}","verifier_vs_vendor_handles":"The badge kit separates the two handle sets it prints. Vendor handles — the certificate page, the badge SVG, and the lookup JSON — are what an embed or a procurement packet consumes. The reader's own handle is the per-record verifier link (https://fairprint.app/verify?q={company-slug}), the one click that lets a reviewer check the claim without reconstructing a URL. Every copyable verification brief leads with the verifier link and keeps the vendor handles after it, and GET /api/certified-lookup returns the same value as `verifyUrl` on each resolved company so a generator never has to derive it.","description":"Implementation guidance for FairPrint Approved and FairPrint Gold badge holders. The badge kit includes an interactive lookup/generator that accepts company names, domains, certificate URLs, or badge SVG URLs and returns exact copyable embed HTML, lookup JSON URLs, shareable prefilled install-kit URLs, structured proof JSON-LD, and verification briefs for active public records. Company records are labeled as Terms & Conditions reviews; AI model/service records use submitterType='ai_model', modelProvider when present, and usage-policy review language in briefs and structured proof. Shareable prefilled install-kit URLs accept q, badge, certificate, or company query parameters with the same company/proof-handle inputs and auto-run the lookup on page load. No-match domain lookups link into /request with company, website, and a certificate-miss reason prefilled so failed badge-install attempts can become review nominations. It also documents recommended trust-center/checkout placement and rules that every displayed seal should link back to the public certificate rather than relying on screenshots or vendor-only claims. Each resolved record renders its own verifier block with the per-record link (copyable and openable) alongside the three vendor handles, and the generated verification brief opens with that link.","generator":{"web":"https://fairprint.app/badge-kit","prefilled_url_pattern":"https://fairprint.app/badge-kit?q={company-or-proof-url}","prefill_parameters":["q","badge","certificate","company"],"lookup_source":"https://fairprint.app/api/certified-lookup?q={company-or-proof-url}","lookup_response_fields":["id","name","website","status","submitterType","modelProvider","submittedAt","badgeUrl","certifiedPage","verifyUrl","review"],"accepted_inputs":["company name","website/domain","https://fairprint.app/certified/{company-slug}","https://fairprint.app/api/badge/{id}","/certified/{company-slug}","/api/badge/{id}"],"outputs":["escaped HTML embed snippet","lookup JSON URL","shareable prefilled install-kit URL","per-record verifier link","structured proof JSON-LD snippet","plain-text verification brief"],"structured_proof":"JSON-LD Organization snippet with award, certificate URL, review ID, FairPrint standards URL, optional 0-100 reviewRating, and sameAs carrying the badge SVG, the lookup JSON, and the per-record verifier link. Pair it with the visible badge where custom scripts are allowed so crawlers and browser agents can connect the company's trust page to the FairPrint proof record.","eligibility_rule":"Only active FairPrint Approved or FairPrint Gold records produce generated badge snippets; no-match lookups route to /request for nomination, preserving domain-shaped inputs as the request website when possible and pre-tagging common certificate-miss criteria via repeated concern= parameters."},"eligible_tiers":["FairPrint Approved","FairPrint Gold"],"not_eligible":"Needs Improvement submissions should not display a FairPrint badge until they improve their policy and earn Approved or Gold on re-review."},"re_verification":{"endpoint":"https://fairprint.app/renew","accepted_parameters":["q","slug","company","website"],"accepted_inputs":["company name","website/domain","review ID","https://fairprint.app/certified/{company-slug}","https://fairprint.app/api/badge/{id}","/certified/{company-slug}","/api/badge/{id}"],"description":"Self-serve re-verification for an entity that already holds an Approved or Gold seal. Resolves the existing public record by name, domain, review ID, or pasted certificate/badge proof handle, shows the same review age, re-verification window, and staleness status that the certificate page, /report, and /api/report expose, then hands the certified company name and URL into /apply via ?prefill=renew so the seal holder re-reviews under the identity they were certified under instead of re-registering. The applicant supplies only their current policy text and a contact email. Re-verification is free. A no-match query returns the /apply path so an uncertified entity is not stranded; partial matches offer live-registry suggestions.","handoff":{"target":"https://fairprint.app/apply?prefill=renew","carried_fields":["companyName","website"],"applicant_supplies":["current Terms & Conditions or usage-policy text","contact email"]},"staleness_semantics":"The window is 90 days (REVERIFICATION_DUE_DAYS). A record past the window is flagged reverificationDue and appears in reverificationQueue on /report and /api/report, where each entry carries slug, certifiedPage, updatedTermsReportUrl (consumer nomination path) and renewUrl (seal-holder remedy at https://fairprint.app/renew?q={slug}). A successful re-verification replaces the score, review date, badge proof, and staleness flag on the same public certificate URL."},"request_queue":{"endpoint":"https://fairprint.app/request","api_endpoint":"https://fairprint.app/api/request","method":"GET public queue; POST /api/request for nominations and upvotes","cors_enabled":true,"allowed_methods":["GET","POST","OPTIONS"],"description":"Community nomination queue for companies whose terms deserve review. Strong nominations include direct T&C, privacy, pricing, renewal, cancellation-policy, or buried-policy URLs. The web form includes guided consumer-pressure presets for hard-to-cancel subscriptions, surprise renewals/trial charges, refund or hidden-fee concerns, data deletion/sharing concerns, voice/audio/sensor-data consent concerns, and undisclosed personalized pricing; each preset fills an editable reason and tags the matching FairPrint criteria before submission. Each public request includes share, copyable pressure-brief, and copyable complaint-letter actions for support tickets, complaint threads, policy contacts, or direct company outreach. Nominators can tag specific criteria they are concerned about; tagged concerns appear in the request list and are included in the copyable pressure brief and complaint letter so teams see which standards are at issue.","prefill_url_parameters":["company","website","reason","concern","concerns","q","url"],"share_pattern":"https://fairprint.app/request#request-{id}","get_response":"Array of { id, company, website?, reason?, concerns?, submittedAt, votes, status, reviewSlug? }, sorted by votes then newest date","post_fields":{"submit":{"action":"submit","company":"string required","website":"string optional","reason":"string optional","concerns":"string[] optional — array of criterion labels nominator is concerned about (e.g. ['Easy Cancellation', 'No Hidden Fees'])"},"upvote":{"action":"upvote","id":"string required"}},"post_responses":{"submit_created":{"created":true,"id":"string"},"submit_existing":{"existing":true,"id":"string","votes":"number","voteAccepted":"boolean"},"upvote":{"votes":"number"},"duplicate_vote":{"status":409,"error":"Already voted for this request","votes":"number"}}},"ai_models":{"welcome":true,"dedicated_flow":"https://fairprint.app/apply/ai","note":"AI models and AI services are explicitly invited to submit their usage policies for evaluation. FairPrint certification is a meaningful trust signal for AI adoption.","ftc_ai_accuracy_signal":{"title":"FTC AI Accuracy proposed policy statement (July 2026)","url":"https://www.ftc.gov/news-events/news/press-releases/2026/07/ftc-seeks-public-comment-policy-statement-addressing-ai-accuracy","summary":"The FTC opened a public comment period that closed July 31, 2026, on whether AI companies that distort their systems' outputs for undisclosed ideological objectives violate Section 5 of the FTC Act. This validates the Plain Language and Data Transparency criteria for AI model policies.","relevant_criteria":["Plain Language","Data Transparency"]}}}