{"ok":true,"data":{"name":"Propaganda Factory Data API","version":"v1","base_url":"https://pf-api.mtcstw.workers.dev/v1","auth":"X-API-Key header (or ?api_key=). Free keys: POST /v1/keys/signup","packs":[{"pack":"free","label":"Free","price":"$0","quota":"1,000 calls/mo across all packs"},{"pack":"politics","label":"Politics Pack","monthly":"$69/mo","annual":"$703/yr (15% off)","quota":"50,000 calls/mo"},{"pack":"corporate","label":"Corporate Pack","monthly":"$69/mo","annual":"$703/yr (15% off)","quota":"50,000 calls/mo"},{"pack":"pe","label":"Private Equity Pack","monthly":"$99/mo","annual":"$1,010/yr (15% off)","quota":"50,000 calls/mo"},{"pack":"health","label":"Health Pack","monthly":"$69/mo","annual":"$703/yr (15% off)","quota":"50,000 calls/mo"},{"pack":"patent","label":"Patent Pack","monthly":"$69/mo","annual":"$703/yr (15% off)","quota":"50,000 calls/mo"},{"pack":"all_access","label":"All Access","monthly":"$349/mo","annual":"$3,560/yr (15% off)","quota":"500,000 calls/mo + webhooks"},{"pack":"enterprise","label":"Enterprise","monthly":"$1,499/mo","annual":"$15,290/yr (15% off)","quota":"unlimited + SLA + webhooks"}],"bundles":[{"bundle":"pick2","label":"Pick 2 Bundle","size":2,"monthly":"$123/mo","monthly_with_pe":"$153/mo","annual":"$1,255/yr","annual_with_pe":"$1,561/yr","note":"Any 2 packs. $15 off individual pricing. Price depends on whether Private Equity Pack is included."},{"bundle":"pick3","label":"Pick 3 Bundle","size":3,"monthly":"$192/mo","monthly_with_pe":"$222/mo","annual":"$1,958/yr","annual_with_pe":"$2,264/yr","note":"Any 3 packs. $15 off individual pricing. Price depends on whether Private Equity Pack is included."}],"billing":"POST /v1/billing/checkout with {pack} or {bundle, packs[]} and billing=monthly|annual (default monthly).","legal":"Aggregated public data only. Individual donor identities withheld per 52 U.S.C. 30111(a)(4). See Terms of Service.","littlesis_attribution":"Relationship data via LittleSis (Public Accountability Initiative), CC BY-SA 4.0 — https://littlesis.org. License: https://creativecommons.org/licenses/by-sa/4.0/","endpoints":[{"method":"GET","path":"/v1/donations/summary","pack":"politics","needWebhooks":false,"cost":1,"desc":"Aggregate donation stats for a candidate or committee. Aggregates only — never individual donors.","params":["candidate_id","cycle"]},{"method":"GET","path":"/v1/donations/by-employer","pack":"politics","needWebhooks":false,"cost":1,"desc":"Donation totals grouped by employer (organization-level aggregates).","params":["employer","cycle","limit"]},{"method":"GET","path":"/v1/donations/by-zip","pack":"politics","needWebhooks":false,"cost":1,"desc":"Donation totals by ZIP code (geographic aggregates).","params":["zip","state","cycle"]},{"method":"GET","path":"/v1/lobbying","pack":"politics","needWebhooks":false,"cost":1,"desc":"Lobbying disclosures by client or registrant.","params":["entity","year","limit"]},{"method":"GET","path":"/v1/politics/relationships","pack":"politics","needWebhooks":false,"cost":1,"desc":"LittleSis power-network relationships: board seats, positions, donations, lobbying, ownership. Search either side by entity name; filter by category.","params":["entity","category","entity1","entity2","limit"]},{"method":"GET","path":"/v1/politician/:id/funding","pack":"politics","needWebhooks":false,"cost":2,"desc":"Funding overview for a candidate: totals + top employer/industry aggregates.","params":["id","cycle"]},{"method":"GET","path":"/v1/bills/:id/money","pack":"politics","needWebhooks":false,"cost":2,"desc":"Money behind a bill: sponsor funding + lobbying on related issues.","params":["id"]},{"method":"GET","path":"/v1/entity/:id/profile","pack":"corporate","needWebhooks":false,"cost":2,"desc":"Full Ghoul Index profile: violations, fines, contracts, jets, donations.","params":[]},{"method":"GET","path":"/v1/entity/:id/connections","pack":"ai","needWebhooks":false,"cost":3,"desc":"Lux-detected connections for an entity (AI-generated, source-cited).","params":["id","limit"]},{"method":"GET","path":"/v1/pe/firm","pack":"pe","needWebhooks":false,"cost":2,"desc":"Private equity firm profile: AUM, portfolio count, documented impact.","params":["name"]},{"method":"GET","path":"/v1/brand/:name/owner","pack":"corporate","needWebhooks":false,"cost":1,"desc":"Brand to controlling entity resolution.","params":[]},{"method":"GET","path":"/v1/patents/evergreening","pack":"patent","needWebhooks":false,"cost":2,"desc":"Pharma patent evergreening: drugs with patent thickets blocking generics.","params":["drug"]},{"method":"GET","path":"/v1/health/nursing-homes","pack":"health","needWebhooks":false,"cost":2,"desc":"Nursing home lookup: ratings, ownership, PE flag, fines.","params":["state","name","pe_owned","limit"]},{"method":"GET","path":"/v1/health/drugs/safety","pack":"health","needWebhooks":false,"cost":2,"desc":"FDA adverse event summary for a drug (FAERS/AEMS).","params":["drug"]},{"method":"GET","path":"/v1/health/fda-recalls","pack":"health","needWebhooks":false,"cost":2,"desc":"FDA enforcement recalls: is a drug, device, or food recalled? Firm, product, reason, classification, dates.","params":["search","firm","product","classification","category","limit"]},{"method":"GET","path":"/v1/health/drug-shortages","pack":"health","needWebhooks":false,"cost":1,"desc":"FDA drug shortages: is a drug currently in shortage? Status, therapeutic category, manufacturer.","params":["drug","status","limit"]},{"method":"GET","path":"/v1/corporate/fda-enforcement","pack":"corporate","needWebhooks":false,"cost":2,"desc":"FDA enforcement reports for a firm: drug/device/food recalls, reasons, classification, dates.","params":["search","firm","product","classification","category","limit"]},{"method":"GET","path":"/v1/health/fda-recalls","pack":"health","needWebhooks":false,"cost":2,"desc":"FDA enforcement recalls: is a drug, device, or food recalled? Firm, product, reason, classification, dates.","params":["search","firm","product","classification","category","limit"]},{"method":"GET","path":"/v1/health/drug-shortages","pack":"health","needWebhooks":false,"cost":1,"desc":"FDA drug shortages: is a drug currently in shortage? Status, therapeutic category, manufacturer.","params":["drug","status","limit"]},{"method":"GET","path":"/v1/health/fda-recalls","pack":"health","needWebhooks":false,"cost":2,"desc":"FDA enforcement recalls: is a drug, device, or food recalled? Firm, product, reason, classification, dates.","params":["search","firm","product","classification","category","limit"]},{"method":"GET","path":"/v1/health/drug-shortages","pack":"health","needWebhooks":false,"cost":1,"desc":"FDA drug shortages: is a drug currently in shortage? Status, therapeutic category, manufacturer.","params":["drug","status","limit"]},{"method":"GET","path":"/v1/health/fda-recalls","pack":"health","needWebhooks":false,"cost":2,"desc":"FDA enforcement recalls: is a drug, device, or food recalled? Firm, product, reason, classification, dates.","params":["search","firm","product","classification","category","limit"]},{"method":"GET","path":"/v1/health/drug-shortages","pack":"health","needWebhooks":false,"cost":1,"desc":"FDA drug shortages: is a drug currently in shortage? Status, therapeutic category, manufacturer.","params":["drug","status","limit"]},{"method":"GET","path":"/v1/health/trials","pack":"health","needWebhooks":false,"cost":2,"desc":"Clinical trial search by condition or sponsor.","params":["condition","sponsor","limit"]},{"method":"GET","path":"/v1/health/stats","pack":"health","needWebhooks":false,"cost":2,"desc":"County/state health measures: life expectancy, diabetes, smoking, etc.","params":["geography","measure","state"]},{"method":"GET","path":"/v1/health/drug-prices","pack":"health","needWebhooks":false,"cost":1,"desc":"National Average Drug Acquisition Cost (NADAC): actual pharmacy acquisition cost per unit by NDC. Search by drug name.","params":["drug","limit"]},{"method":"GET","path":"/v1/corporate/osha","pack":"corporate","needWebhooks":false,"cost":2,"desc":"OSHA violation summary for an employer.","params":["employer","limit"]},{"method":"GET","path":"/v1/corporate/wage-theft","pack":"corporate","needWebhooks":false,"cost":2,"desc":"Wage theft / back wages summary for an employer.","params":["employer","limit"]},{"method":"GET","path":"/v1/corporate/layoffs","pack":"corporate","needWebhooks":false,"cost":1,"desc":"WARN Act layoff/closure notices by company, state, or minimum workers affected.","params":["company","state","min_workers","limit"]},{"method":"GET","path":"/v1/corporate/recalls","pack":"corporate","needWebhooks":false,"cost":2,"desc":"CPSC product recalls: has a company or brand been recalled? Product, hazard, units, injuries, dates.","params":["company","product","hazard","limit"]},{"method":"GET","path":"/v1/corporate/fda-enforcement","pack":"corporate","needWebhooks":false,"cost":2,"desc":"FDA enforcement reports for a firm: drug/device/food recalls, reasons, classification, dates.","params":["search","firm","product","classification","category","limit"]},{"method":"GET","path":"/v1/pe/portfolio","pack":"pe","needWebhooks":false,"cost":2,"desc":"Portfolio companies for a private equity firm.","params":["firm","industry","limit"]},{"method":"GET","path":"/v1/patents/hoarders","pack":"patent","needWebhooks":false,"cost":2,"desc":"Top patent holders by year (IFI CLAIMS rankings).","params":["year","limit"]},{"method":"GET","path":"/v1/patents/trolls","pack":"patent","needWebhooks":false,"cost":2,"desc":"Patent troll (NPE) profiles: portfolios, litigation volume.","params":["limit"]},{"method":"POST","path":"/v1/keys/signup","pack":null,"needWebhooks":false,"cost":0,"desc":"Self-serve signup: issue a free API key. No auth required.","params":[]},{"method":"GET","path":"/v1/keys/usage","pack":null,"needWebhooks":false,"cost":0,"desc":"Usage dashboard: calls used vs quota this month. Auth: your API key.","params":[]},{"method":"POST","path":"/v1/keys/rotate","pack":null,"needWebhooks":false,"cost":0,"desc":"Rotate your API key. Old key stops working immediately.","params":[]},{"method":"POST","path":"/v1/billing/checkout","pack":null,"needWebhooks":false,"cost":0,"desc":"Start a paid subscription: returns a Stripe Checkout URL. Params: pack (or bundle + packs[]), billing=monthly|annual.","params":[]},{"method":"GET","path":"/v1/webhooks","pack":null,"needWebhooks":true,"cost":0,"desc":"List your webhook subscriptions. All Access / Enterprise.","params":[]},{"method":"POST","path":"/v1/webhooks","pack":null,"needWebhooks":true,"cost":0,"desc":"Register a webhook URL for platform events. All Access / Enterprise.","params":[]},{"method":"DELETE","path":"/v1/webhooks/:id","pack":null,"needWebhooks":true,"cost":0,"desc":"Delete a webhook subscription.","params":[]},{"method":"GET","path":"/v1/admin/security-events","pack":null,"needWebhooks":false,"cost":0,"desc":"Admin: security event log (401/403/429). Requires X-Admin-Secret.","params":[]},{"method":"GET","path":"/v1/docs","pack":null,"needWebhooks":false,"cost":0,"desc":"Auto-generated API documentation.","params":[]}]},"meta":{"version":"v1"}}