Quick start
Every endpoint is a static .json file. You can fetch,
curl, or paste a URL into a browser. CORS is open
(Access-Control-Allow-Origin: *) so client-side JavaScript can call any
endpoint from any origin without a proxy.
# List the first religion summary
curl -s https://faithscore.org/api/v1/religions.json | jq '.religions[0]'
# Get the full record for Christianity
curl -s https://faithscore.org/api/v1/religions/christianity.json | jq
# List denominations under Islam
curl -s https://faithscore.org/api/v1/religions/islam/denominations.json | jq
JavaScript
const r = await fetch("https://faithscore.org/api/v1/religions/christianity.json");
const data = await r.json();
console.log(`${data.name}: Faithscore ${data.faithscore}`);
console.log(`Evidence score: ${data.parameters.evidence.score}`);
Python
import requests
r = requests.get("https://faithscore.org/api/v1/religions/christianity.json")
data = r.json()
print(f"{data['name']}: Faithscore {data['faithscore']}")
print(f"Evidence score: {data['parameters']['evidence']['score']}")
Endpoints
Full schema definitions live in openapi.json. Try every endpoint live in the interactive docs.
| Path | What it returns |
|---|---|
GET /api/v1/index.json | API discovery + table of contents |
GET /api/v1/methodology.json | The 6 weighted criteria with descriptions |
GET /api/v1/categories.json | All categories with member religions and counts |
GET /api/v1/religions.json | All 313 religions, summary fields only |
GET /api/v1/religions/{slug}.json | Full record: scores, summary, timeline, geography, sources |
GET /api/v1/religions/{slug}/denominations.json | Denominations under one religion |
GET /api/v1/denominations.json | Flat list of all 321 denominations |
GET /api/v1/denominations/{religion}/{id}.json | Full record for one denomination |
GET /api/v1/scores/top.json | Pre-computed leaderboards (overall + per-category) |
GET /api/v1/search-index.json | Flat index for client-side fuzzy search |
GET /api/v1/openapi.json | OpenAPI 3.1 specification |
Use cases
AI tool calls
Wire Faithscore into a ChatGPT GPT, Claude tool, or LangChain agent so it cites real scores when answering religion questions. Point the tool at /api/v1/openapi.json.
Embeds & widgets
Display a live "Faithscore badge" on any blog or news site. Open CORS means a single fetch call is all you need.
Research dashboards
Build comparison dashboards, research notebooks, or academic visualizations against the full dataset. Bulk-download religions.json and denominations.json.
Mobile apps
Ship a native iOS/Android app that talks to the API directly. No backend to maintain — every endpoint is a CDN-cached static file.
Conventions
- All paths are versioned under
/api/v1/so future incompatible changes can ship as/api/v2/without breaking existing clients. - Every response includes a top-level
_metablock with the API version, generation date, and license. - All scores are integers from 0 to 100, where 100 is perfect evidentiary support.
- Slugs are the same kebab-case slugs used in site URLs (e.g.
christianity,islam,jehovahs-witnesses). - Every record links back to its human-readable canonical page via the
urlfield. - Missing resources return real HTTP 404 (not soft-404 HTML).
- Cache: 1 hour public cache. Bust by appending
?v=YYYY-MM-DD.
License & attribution
All Faithscore data is published under Creative Commons Attribution 4.0 (CC BY 4.0). You are free to share, adapt, embed, and build commercial products on top of this data, provided you give appropriate credit.
Suggested attribution
Data: faithscore.org (CC BY 4.0)
Rate limits & SLA
None. Every endpoint is a static file served by the same CDN that ships the website, so calls scale to whatever your hosting tier allows. There is no SLA — but the API is regenerated on every deploy from the same source of truth as the SPA, so it can never disagree with what users see on the site.
Discoverability
The API is registered with public OpenAPI directories (APIs.guru,
ProgrammableWeb) and indexed via
llms.txt, sitemap.xml, and the
<link rel="alternate" type="application/json"> tag in every
prerendered page's <head>.
Questions or feedback?
See the methodology page for how scores are computed, or open the interactive Swagger UI to try every endpoint without writing code.