Discover/Aquinas API
live

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.

Endpoint health
monitored
list_works
search
get_article
get_statements
0/4 passing latest checkself-healing
Endpoints
4
Updated
26d ago

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.

Try it

No input parameters required.

api.parse.bot/scraper/5e7a1012-085b-4971-a63a-3ac66e69f9e5/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/5e7a1012-085b-4971-a63a-3ac66e69f9e5/list_works' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace aquinas-cc-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Aquinas Library: search and retrieve bilingual texts from Thomas Aquinas's works."""
from parse_apis.aquinas_library_api import Aquinas, SearchMode, WorkNotFound

client = Aquinas()

# List available works in the library
for work in client.works.list(limit=5):
    print(work.code, work.wid)

# Search for a Latin term across all works
for result in client.works.search(query="gratia", mode=SearchMode.EXACT, limit=5):
    print(result.wid, result.hit_count)

# Retrieve bilingual article text from a specific work
st = client.work("ST.I")
for cell in st.get_article(ref="ST.I.Q2.A2", limit=3):
    print(cell.cell_id, cell.latin[:60], cell.english[:60])

# Extract matching statements across the corpus
for stmt in client.works.get_statements(query="subsistendi", limit=3):
    print(stmt.work_id, stmt.cell_id, stmt.latin[:50], stmt.english[:50])

# Handle typed errors when a work code is invalid
try:
    bad = client.work("INVALID")
    list(bad.get_article(ref="INVALID.Q1.A1", limit=1))
except WorkNotFound as exc:
    print(f"Work not found: {exc.work}")

print("exercised: works.list / works.search / work.get_article / works.get_statements")
All endpoints · 4 totalmissing one? ·

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.

Input

No input parameters required.

Response
{
  "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.

Reliability & maintenance

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.

Latest check
0/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • 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 search hit counts per work
  • Extract thematic passages on a concept like gratia or subsistendi using get_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
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does aquinas.cc offer an official developer API?+
Aquinas.cc does not publish an official developer API or documented public endpoints. This Parse API provides structured programmatic access to the bilingual text content on the site.
What does `get_article` return, and how specific must the reference be?+
It returns an array of 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?+
Currently 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?+
The current endpoints operate at the article level (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.
Page content last updated . Spec covers 4 endpoints from aquinas.cc.
Related APIs in EducationSee all →
openalex.org API
Search and retrieve millions of academic papers, articles, and books from OpenAlex's comprehensive global research catalog to find scholarly works by topic, author, or citation. Discover detailed information about research publications including metadata, abstracts, and citation counts to stay current with academic literature in your field.
shamela.ws API
Search and browse one of the largest collections of Arabic and Islamic books, exploring thousands of titles by category, author, or full-text content. Access detailed book information, read specific pages, and discover newly added works to build your digital Islamic library.
librarything.com API
Search millions of books and retrieve detailed metadata, reviews, and author information from LibraryThing's vast catalog. Access member libraries, trending titles, author works, and tag-based book collections to explore one of the web's largest book cataloging communities.
openstax.org API
Access learning outcomes, table of contents, and metadata from 60+ free OpenStax textbooks spanning Business, Science, Math, Social Sciences, Humanities, Computer Science, and Nursing. Search and retrieve structured content from any of these textbooks.
vedabase.io API
vedabase.io API
quod.lib.umich.edu API
Search and browse millions of digitized items from the University of Michigan Library, including books, manuscripts, photographs, and more, while retrieving detailed metadata, full-text content, and image information for each collection and item. Access organized collections, view item details, and discover historical and scholarly materials across the library's comprehensive digital repository.
biblehub.com API
Search Hebrew and Greek biblical lexicon data, explore word morphology and definitions, and analyze interlinear verse translations to deepen your understanding of biblical text. Look up Strong's numbers and linguistic details across both original language systems in one place.
smashingmagazine.com API
Access Smashing Magazine's library of articles, books, ebooks, newsletters, and events with powerful search and filtering capabilities. Browse by category, discover related content, explore author profiles, and stay updated with the latest design and web development resources.