Ask Chemistry

Structured claims extracted from chemistry papers across 14 subfields. Every claim is source-grounded, hierarchically organized, and classified into 7 simultaneous views.

Claims
Papers
Views
Tree Nodes
What is a claim? A single, specific, verifiable assertion extracted from a chemistry paper — e.g. "Catalyst X achieves Y% yield under conditions Z." Each claim is linked to its source DOI, classified into multiple hierarchical views, and typed (experimental result, method, property, mechanism, etc.).
Try: Suzuki coupling MOF CO2 reduction machine learning molecular perovskite solar cell

See AskChem in Action

Loading...

Try These Workflows

Find Electrocatalysts
CO₂→CO catalysts with Faradaic efficiency and source DOIs
Track SEI Evolution
How SEI understanding has evolved from 2015–2024
MOF Stability Debate
Contradictory evidence on MOF water stability
Browse Catalysts
Browse asymmetric hydrogenation catalysts by substrate class

Browse the Knowledge Hierarchy

AskChem organizes claims into multiple complementary views — 5 chemistry-content views, plus author, temporal, and epistemic-role views. Each provides a different lens on the same knowledge — pick one to start exploring.

🧪 By Reaction Type
Organizes claims by chemical transformation — catalysis, coupling, oxidation, etc.
🔬 By Substance/Material Class
Browse by molecule or material — MOFs, polymers, nanoparticles, biomolecules, etc.
⚙️ By Technique/Method
Experimental and computational methods — spectroscopy, DFT, chromatography, etc.
🏭 By Application Domain
Practical use cases — energy, medicine, environment, agriculture, electronics, etc.
⚛️ By Phenomenon/Mechanism
Underlying physics and chemistry — electron transfer, adsorption, self-assembly, etc.
📊 By Data / Measurements
Specific table values and measured numbers — band gaps, surface areas, conductivities, IC50s, etc.
📋 By Claim Type
Epistemic role — hypotheses, conclusions, limitations, surprising findings, future directions, etc.
👤 By Author
Find experts, explore co-authorship networks, and browse by researcher — 394K disambiguated authors.
📅 By Time Period
Explore how chemical knowledge has evolved over time — browse by decade and year.

My Profile

Manage your subscriptions, bookmarks, saved searches, API keys, and recent activity.

Public lists can be shared with anyone via a link. You can change visibility later.

Each key is shown once. Treat it like a password. Up to 10 active keys per user.

Data Quality Report

Transparent metrics on extraction quality, DOI verification, corpus coverage, and known limitations.

AskChem-Bench

Quantitative evaluation of structured scientific retrieval. 30 chemistry questions, automated DOI verification via CrossRef, fully reproducible.

Loading benchmark data...

Documentation

AskChem is API-first. Every feature available in the web interface is also available via REST API. For AI agent integration, see the Agents tab. For benchmark results, see the Benchmark tab.

Authentication & Rate Limits

Access LevelRate LimitAuth
Anonymous60 requests/minNone
API Key300 requests/minAuthorization: Bearer ac-...

Sign in and create an API key from your profile (POST /api/me/api-keys, authenticated). Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) are included in every response.

Error Codes

CodeMeaning
200Success
404Claim, author, or paper not found
422Validation error (bad query params)
429Rate limit exceeded — retry after X-RateLimit-Reset seconds
503Database temporarily unavailable

Versioning

The stable API lives at /v1/ (mirrors search, claims, views, tree, sources, stats, submit, temporal, evolution, authors, feed). The /api/ prefix is the latest version and may include experimental endpoints. Use /v1/ for production integrations.

Endpoints

Search & Discovery

GET /api/search?q={query}&limit=50&offset=0
Full-text search across all claims. Supports molecule names, reaction types, techniques.
curl "https://askchem.org/api/search?q=suzuki+coupling&limit=5"
GET /api/search/grouped?q={query}&view={view_id}&limit=500
Search results grouped into a taxonomy tree for a given view.
GET /api/search/structure?smiles={smiles}&type=substructure|similarity
Search by molecular structure using SMILES (requires RDKit).
GET /api/stats
Overview statistics: total claims, papers, views, nodes, year distribution.
GET /api/feed
Recent discoveries feed — latest claims added to the index.

Hierarchy & Browse

GET /api/views
List all hierarchical views (reaction type, substance class, technique, application, mechanism, claim type, author).
GET /api/tree/{view_id}/{path}?depth=1&limit=50
Browse the hierarchy. Start at root, zoom into subcategories.
curl "https://askchem.org/api/tree/by_reaction_type/Cross-Coupling?depth=2"
GET /api/temporal/{view_id}/{path}
Temporal overlay showing claim distribution over time at a tree node.
GET /api/evolution/{view_id}/{path}
Richer evolution timeline for a topic — tracks how claims changed over decades.
GET /api/contradictions
Browse pre-computed contradictions (PAW + Gemini verified).
GET /api/contradictions/{view_id}/{path}
Contradictions at or below a specific tree node.

Claims & Papers

GET /api/claims/{claim_id}
Full details of a specific claim including provenance and view assignments.
POST /api/claims/bulk
Fetch up to 200 claims by ID. Body: {"claim_ids": [...]}
GET /api/sources/{doi}
All claims extracted from a paper, plus metadata and authors.
curl "https://askchem.org/api/sources/10.1038/s41586-024-00001-1"
GET /api/papers?q={query}&limit=50
Browse or search indexed papers.

Authors

GET /api/authors?q={name}&topic={topic}
Search authors by name, find experts on a topic, or list top authors for a tree node.
GET /api/authors/{author_id}
Full author profile with papers, claim breakdown, and research areas.
GET /api/authors/{author_id}/network
Co-authorship ego network: nodes (authors) and edges (co-authored papers).

Submission & Quality

POST /api/submit
Submit a paper for extraction and indexing. Body: {"doi": "...", "name": "...", "email": "..."}
POST /api/flag
Flag a claim for quality review. Body: {"claim_id": "...", "flag_type": "wrong_claim|wrong_classification|...", "comment": "..."}
GET /api/quality
Data quality report: DOI verification rates, extraction depth, subfield coverage, known limitations.
GET /api/paper/validation/{doi}
Paper validation status: CrossRef verification, retraction check, chemistry relevance, quality score.
GET /api/export?limit=1000&offset=0
Bulk export of claims (paginated). For large-scale access, use the HuggingFace dataset.

Schema Examples

Claim Object

{
  "claim_id": "a1b2c3...",
  "claim_type": "experimental_result",
  "title": "Ni SA-N2-C achieves 98% FECO",
  "verbatim_quote": "The Ni SA-N2-C catalyst exhibited...",
  "source_doi": "10.1002/anie.201914977",
  "source_paper_title": "Single-Atom Nickel...",
  "confidence": "high",
  "extraction_model": "gpt-5.4",
  "extraction_version": "deep_v1",
  "view_paths": {
    "by_reaction_type": "Electrocatalysis/CO2 Reduction",
    "by_substance_class": "Single-Atom Catalysts/Ni-based",
    "by_technique": "Electrochemistry/Linear Sweep Voltammetry"
  }
}

Tree Node Object

{
  "name": "Cross-Coupling",
  "path": "Cross-Coupling",
  "view_id": "by_reaction_type",
  "total_claims": 12450,
  "children": [
    {"name": "Suzuki-Miyaura", "path": "Cross-Coupling/Suzuki-Miyaura", "total_claims": 4230},
    {"name": "Heck", "path": "Cross-Coupling/Heck", "total_claims": 2180}
  ]
}

Interactive API Docs

Full Swagger UI with try-it-out: /api/docs

Python Quick Start

import requests

# Search for claims
r = requests.get("https://askchem.org/api/search", params={"q": "suzuki coupling", "limit": 10})
claims = r.json()["results"]

# Browse the hierarchy
r = requests.get("https://askchem.org/api/tree/by_reaction_type?depth=2")
tree = r.json()["tree"]

# Submit a new paper
r = requests.post("https://askchem.org/api/submit", json={"doi": "10.1038/..."})
print(r.json()["submission_id"])

Use AskChem with AI Agents

Let your AI coding assistant (Cursor, Claude, Copilot, etc.) use AskChem as a structured chemistry knowledge source. Full endpoint reference in Docs.

Try It Now

Copy this into your terminal and see structured chemistry claims:

curl -s "https://askchem.org/api/search?q=suzuki+coupling&limit=2" | python -m json.tool
Example response
{
  "results": [
    {
      "claim_id": "...",
      "claim_type": "experimental_result",
      "title": "Pd-PEPPSI-IPent catalyzes Suzuki coupling of aryl chlorides at room temperature",
      "source_doi": "10.1021/ja...",
      "verbatim_quote": "The Pd-PEPPSI-IPent catalyst system...",
      "view_paths": {"by_reaction_type": "Cross-Coupling/Suzuki-Miyaura", ...}
    }
  ],
  "total": 4230, "query": "suzuki coupling"
}

Cursor / Claude Prompt

Paste this into your agent's chat to integrate AskChem:


                    
                

Save as AGENTS.md

Put this in your project root so tools that read AGENTS.md pick up AskChem automatically.


                    
                

MCP Server

For MCP-compatible clients (Claude Desktop, Cursor, etc.), run the built-in MCP server:

python -m chemtree.mcp_server

This exposes AskChem tools (search, browse, get claim) directly in your agent's tool palette — no HTTP calls needed.

Claude Desktop config (claude_desktop_config.json)

{
  "mcpServers": {
    "askchem": {
      "command": "python",
      "args": ["-m", "chemtree.mcp_server"],
      "env": {}
    }
  }
}

Cursor config (.cursor/mcp.json)

{
  "mcpServers": {
    "askchem": {
      "command": "python",
      "args": ["-m", "chemtree.mcp_server"]
    }
  }
}

OpenAI Function Calling

Wire AskChem as a tool in your OpenAI function-calling pipeline:

{
  "type": "function",
  "function": {
    "name": "search_chemistry_claims",
    "description": "Search AskChem for source-grounded chemistry claims with verified DOIs",
    "parameters": {
      "type": "object",
      "properties": {
        "query": {"type": "string", "description": "Chemistry search query"},
        "limit": {"type": "integer", "default": 10}
      },
      "required": ["query"]
    }
  }
}

Quick links