Aquinas APIaquinas.cc ↗
Access bilingual Latin/English texts from Thomas Aquinas's works via 4 endpoints. Search across the full library, retrieve articles by reference, and extract statements.
What is the Aquinas API?
The aquinas.cc API provides 4 endpoints for retrieving and searching the bilingual Latin/English corpus of Thomas Aquinas's philosophical and theological works. The get_article endpoint returns paragraph-level cell objects — each with latin and english fields — for any article identified by its canonical reference (e.g. ST.I.Q2.A2). The search endpoint spans the entire library, returning per-work hit counts for any query term.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/5e7a1012-085b-4971-a63a-3ac66e69f9e5/list_works' \ -H 'X-API-Key: $PARSE_API_KEY'
List all available works in the Aquinas library with their internal work IDs and work codes. Returns a list of works with code and numeric ID that can be used with other endpoints.
No input parameters required.
{
"type": "object",
"fields": {
"works": "array of objects with code (string work code) and wid (integer work ID)"
},
"sample": {
"data": {
"works": [
{
"wid": 15,
"code": "ST.I"
},
{
"wid": 21,
"code": "ST.III"
},
{
"wid": 11,
"code": "SCG1"
}
]
},
"status": "success"
}
}About the Aquinas API
What the API Covers
The API exposes the full Aquinas library available on aquinas.cc, covering major works including the Summa Theologiae, Summa Contra Gentiles, and others accessible via work codes returned by list_works. Every work is identified by a string code and an integer wid, both of which are reused as parameters across other endpoints.
Article and Statement Retrieval
get_article accepts two required parameters — work (e.g. ST.I, SCG1) and ref (e.g. ST.I.Q2.A2) — and returns an array of cells. Each cell carries a cell_id (integer), a latin string, and an english string, representing one paragraph-level segment of the article. This makes it straightforward to render parallel text views or align Latin passages with their translations programmatically.
get_statements focuses on term-level extraction: given a Latin query string, it searches the library and returns up to 20 matching passages drawn from the top 5 works by hit count. Each result includes work_id, cell_id, latin, and english, letting you pull thematic clusters of passages without knowing the article reference in advance.
Search Behavior
search accepts a required query parameter and an optional mode parameter that controls matching strategy — exact match, any word, all words, or regex. Results are aggregated at the work level, returning each matching wid alongside its hit_count. This is useful for prioritizing which works to inspect further before fetching full article content.
The Aquinas API is a managed, monitored endpoint for aquinas.cc — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when aquinas.cc changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official aquinas.cc API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a parallel Latin/English reader for Aquinas texts using cell-level bilingual data from
get_article - Generate a concordance of a Latin term across all works using
searchhit counts per work - Extract thematic passages on a concept like
gratiaorsubsistendiusingget_statements - Populate a reference tool that resolves canonical article citations (e.g. ST.I.Q2.A2) to full bilingual text
- Compare frequency of a theological term across different Aquinas works using per-work hit counts
- Feed bilingual cell pairs into a translation quality analysis or alignment model
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does aquinas.cc offer an official developer API?+
What does `get_article` return, and how specific must the reference be?+
cells, each with a cell_id integer, a latin string, and an english string corresponding to one paragraph-level segment. The ref parameter must follow the format WorkCode.Q{number}.A{number} (e.g. ST.I.Q2.A2), and the work parameter must match the work code from list_works. Both parameters are required — partial references are not supported.Does `get_statements` search English text as well as Latin?+
get_statements searches Latin text only, and search also defaults to Latin. The search endpoint accepts a mode parameter for exact, any-word, all-words, or regex matching, but English-language search is not a documented option for get_statements. You can fork this API on Parse and revise it to add an English-text search path for get_statements.Is there pagination support for `search` or `get_statements` results?+
search returns all matching works with their hit counts in a single response. get_statements is capped at 20 results from the top 5 works by hit count — there is no offset or page parameter to retrieve additional results beyond that limit. You can fork this API on Parse and revise it to add pagination or a higher result cap.Can I retrieve an entire work or a full question rather than a single article?+
get_article requires a specific Q/A reference) or return cell-level passages (get_statements). There is no endpoint to retrieve all articles within a question or an entire work in one call. You can fork this API on Parse and revise it to add a bulk-retrieval endpoint at the question or work level.