planetmath.org APIplanetmath.org ↗
Access PlanetMath encyclopedia entries, MSC classifications, and keyword search across thousands of mathematical definitions and theorems via 7 endpoints.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/a75dd142-0fda-4d83-8209-6ebcb3861cf8/get_subject_index' \ -H 'X-API-Key: $PARSE_API_KEY'
Scrape the full MSC (Mathematics Subject Classification) subject index, returning all top-level subject categories and the entries listed under them.
No input parameters required.
{
"type": "array",
"fields": {
"entries": "array of objects with canonical_name and title",
"category_id": "string, the HTML anchor ID for the category",
"category_code": "string, the MSC numeric code (e.g. '03', '11')",
"category_name": "string, human-readable category name with underscores"
},
"sample": {
"data": [
{
"entries": [
{
"title": "AdHoc",
"canonical_name": "AdHoc"
}
],
"category_id": "#00_General",
"category_code": "00",
"category_name": "00_General"
},
{
"entries": [
{
"title": "Biconditional",
"canonical_name": "Biconditional"
}
],
"category_id": "#03_Mathematical_logic_and_foundations",
"category_code": "03",
"category_name": "03_Mathematical_logic_and_foundations"
}
],
"status": "success"
}
}About the planetmath.org API
The PlanetMath API provides 7 endpoints for retrieving mathematical encyclopedia entries, browsing the MSC (Mathematics Subject Classification) hierarchy, and searching by keyword. The get_entry endpoint returns full article content — both HTML and plain text — along with MSC codes, related topics, and defined terms for any entry by its canonical name. You can also traverse the roughly 60 top-level MSC categories or pull an alphabetical index covering characters 0–9 and A–Z.
Entry Retrieval and Content
The get_entry endpoint accepts a canonical_name slug (case-sensitive, e.g. axiom or FermatsLittleTheorem) and returns title, content_html, content_text, keywords, and a metadata object. The metadata includes msc classification codes, related_topic links, define arrays listing terms the entry formally defines, and entry_type. For downstream use cases that only need graph edges between concepts, get_entry_related_topics returns just related_topic and define arrays without fetching full article content.
MSC Classification Navigation
get_msc_hierarchy returns the complete list of approximately 60 top-level MSC codes and names (e.g. 11_Number_theory, 54_General_topology). get_subject_index expands each category to include all entries listed under it, returning category_code, category_id, category_name, and an entries array of canonical_name/title pairs. get_entries_by_msc_category narrows this to a single category: pass a category_code string such as '03' or '11', and leading zeros are matched flexibly so both '3' and '03' resolve to Mathematical Logic.
Search and Alphabetical Browse
search_entries accepts a space-separated query string and applies AND logic — every word must appear as a substring in the entry title or slug. Matching is case-insensitive. Results include title and canonical_name. For full corpus browsing, get_alphabetical_index returns all entries keyed by their first character, covering letters A–Z and digits 0–9, with each bucket containing canonical_name and title objects.
- Build a concept dependency graph using
get_entry_related_topicsto tracerelated_topicanddefinelinks across entries - Populate a math study tool with full theorem and definition text using
content_textfromget_entry - Index PlanetMath content by MSC code for a subject-specific mathematics search engine using
get_entries_by_msc_category - Generate flashcard decks from
keywordsandcontent_textfields returned byget_entry - Enumerate all encyclopedia entries across a topic area using
get_subject_indexto retrieve entries percategory_code - Power an autocomplete or search feature with
search_entriesreturning matchingcanonical_nameandtitlepairs - Audit coverage of a mathematical subfield by listing all entries under a given MSC code via
get_entries_by_msc_category
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 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.
Does PlanetMath have an official developer API?+
What does `get_entry` return beyond the article text?+
content_html and content_text, the response includes a metadata object with msc classification codes, a related_topic array, a define array listing terms formally introduced in the entry, and an entry_type field. It also returns a keywords array drawn from the page's meta tags.Does the search endpoint support fuzzy or partial-word matching?+
search_entries endpoint performs case-insensitive substring matching against lowercased entry titles and slugs. All words in a multi-word query must match (AND logic). Fuzzy matching, stemming, and relevance ranking are not currently available. You can fork this API on Parse and revise it to add a fuzzy or ranked search endpoint.Does the API expose user-contributed discussion threads, corrections, or revision history for entries?+
How should I handle the `canonical_name` slug when it is unknown?+
search_entries with a keyword query to retrieve matching canonical_name and title pairs, then pass the canonical_name to get_entry. Alternatively, get_alphabetical_index or get_entries_by_msc_category enumerate entries with their slugs without requiring a prior search.