Crystallography Open Database API
Free Crystallography Open Database API with no key: search half a million published crystal structures by text, formula, cell parameters or space group. CIF downloads included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Crystallography Open Database API?
The Crystallography Open Database offers a free, key-free search API over more than half a million published crystal structures. Queries by text, chemical formula, unit cell parameters, space group or element return structure records with cell constants, space group, refinement statistics and the source publication.
COD is the open counterpart to the commercial crystal structure databases, collecting published structures of organic, inorganic, metal-organic and mineral compounds under an explicit public domain dedication. That licensing is the whole reason it exists: crystallographic data underpins materials science and pharmaceutical development, and COD makes it reusable without a subscription. Each record links to a downloadable CIF, the standard crystallographic exchange format.
The search endpoint is deliberately old-fashioned — `result.php` with query parameters and `format=json` — but the payload is thorough. You get all six cell parameters with their estimated standard deviations, the Hall and Hermann-Mauguin space group symbols with the international number, the R factor, and full bibliographic details down to page numbers and DOI. Note that the text search is genuinely full-text over titles and chemical names, so a query for `quartz` returns papers that mention quartz, including structures of other materials compared against it. Search by formula or by cell parameters when you need precision.
Quick facts
- Base URL
https://www.crystallography.net/cod- Authentication
- No API key or account. COD data is explicitly placed in the public domain, so structures may be reused without restriction including commercially.
- Rate limit
- No published limit. COD is volunteer-run academic infrastructure — throttle bulk queries and prefer the downloadable database dumps for large-scale work.
- Pricing
- Free. All COD data is public domain.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the Crystallography Open Database API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Search the database for structures matching 'quartz'
GET https://www.crystallography.net/cod/result.php?text=quartz&format=json
curl 'https://www.crystallography.net/cod/result.php?text=quartz&format=json'const res = await fetch("https://www.crystallography.net/cod/result.php?text=quartz&format=json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://www.crystallography.net/cod/result.php?text=quartz&format=json", timeout=20)
res.raise_for_status()
print(res.json())[
{
"file": "1009000",
"a": "4.994",
"siga": "0.0001",
"b": "4.994",
"sigb": "0.0001",
"c": "11.3871",
"sigc": "0.0004",
"alpha": "90",
"sigalpha": null,
"beta": "90",
"sigbeta": null,
"gamma": "120",
"siggamma": null,
"vol": "245.9",
"sigvol": null,
"celltemp": null,
"sigcelltemp": null,
"diffrtemp": null,
"sigdiffrtemp": null,
"cellpressure": null,
"sigcellpressure": null,
"diffrpressure": null,
"sigdiffrpressure": null,
"thermalhist": null,
"pressurehist": null,
"compoundsource": null,
"nel": "3",
"sg": "P 31 2 1",
"sgHall": "P 31 2\"",
"sgNumber": "152",
"commonname": null,
"chemname": "Gallium arsenate(V)",
"mineral": null,
"formula": "- As Ga O4 -",
"calcformula": "- As Ga O4 -",
"cellformula": "- As3 Ga3 O12 -",
"Z": "3",
"Zprime": "0.5",
"acce_code": null,
"authors": "Philippot, E; Armand, P; Yot, P; Cambon, O; Goiffon, A; McIntyre, G J; Bordet, P",
"title": "Neutron and x-ray structure refinements between 15 and 1083 K of piezoelectric gallium arsenate, Ga As O4: temperature and pressure behavior compared with other $-alpha-quartz materials",
"journal": "Journal of Solid State Chemistry",
"year": "1999",
"volume": "146",
"issue": null,
"firstpage": "114",
"lastpage": "123",
"doi": "10.1006/jssc.1999.8316",
"method": null,
"radiation": null,
"wavelength": null,
"radType": null,
"radSymbol": null,
"Rall": "0.025",
"Robs": null,
"Rref": null,Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
text | query | Optional | Full-text search over titles, chemical names and mineral names. Matches loosely. quartz |
format | query | Required | `json`, `html`, `lst` or `urls`. Without it you get the HTML result page. json |
formula | query | Optional | Chemical formula in COD's normalised form, for precise matching. Si O2 |
el1 / el2 / el3 | query | Optional | Require the presence of specific elements. Si |
a / b / c / alpha / beta / gamma | query | Optional | Unit cell parameters, with a tolerance, for cell-based identification. 4.994 |
space_group | query | Optional | Hermann-Mauguin space group symbol. P 31 2 1 |
journal / year | query | Optional | Restrict by source publication. 1999 |
Response fields
filestring- The COD identifier, which is also the CIF filename — fetch the structure at the COD CIF URL built from it.
a / b / c / alpha / beta / gammastring- Unit cell edge lengths in angstroms and angles in degrees, each with a matching `sig*` estimated standard deviation.
sg / sgHall / sgNumberstring / integer- Space group in Hermann-Mauguin and Hall notation plus the International Tables number.
formula / calcformula / cellformulastring- Published, calculated and per-cell chemical formulae, which can legitimately differ.
Rall / Robsstring- Refinement R factors. Values above roughly 0.10 indicate a poorly refined structure worth treating cautiously.
authors / title / journal / year / doistring- Full bibliographic record of the publication the structure came from.
chemname / mineral / commonnamestring- Chemical, mineral and common names where the depositor supplied them. Frequently null.
What you can build with the Crystallography Open Database API
- Find published crystal structures for a compound or mineral
- Identify an unknown phase from measured unit cell parameters
- Download CIF files for structure visualisation or refinement
- Build a materials dataset from open crystallographic data
- Check the refinement quality of a published structure before relying on it
Common errors and how to fix them
Irrelevant top hit
Text search matches anywhere in the record, including comparisons in a paper's title.
Fix: Search by `formula`, `el1`/`el2` or cell parameters when you need precision. Text search is for exploration.
HTML returned instead of JSON
The `format` parameter was omitted.
Fix: `format=json` is required; the endpoint defaults to the human result page.
Empty array
Formula normalisation did not match.
Fix: COD writes formulae with spaces between elements, as in `- As Ga O4 -`. Try element filters instead of a full formula string.
Slow response on broad queries
A wide search scans a large table.
Fix: Add filters, or download the full database dump for systematic work — COD publishes complete snapshots.
Crystallography Open Database API — frequently asked questions
Is the Crystallography Open Database free?
Yes, and unusually so: COD places its data explicitly in the public domain, meaning no attribution requirement and no restriction on commercial reuse. There is also no key or registration.
How do I download the actual CIF file?
Every record's `file` field is the COD identifier and the CIF filename. Build the CIF URL from it on the COD server; the search API returns metadata and points at the file rather than embedding it.
Can I identify an unknown material from its unit cell?
Yes, that is one of COD's core uses. Search on the cell parameters `a`, `b`, `c` and the angles with an appropriate tolerance, optionally combined with element filters. Matching cells across a database is a standard phase-identification technique.
How does COD compare with the commercial structure databases?
COD is smaller and less curated than the Cambridge Structural Database or ICSD, and record quality varies since it aggregates from many sources. Its advantages are that it is free, complete enough for most purposes, and carries no licensing restrictions at all.
Tools that pair with this API
Molar Mass Calculator
Work out the molar mass of any chemical formula in g/mol, with a per-element breakdown. Handles brackets, hydrates and a grams-to-moles converter.
Empirical Formula Calculator
Turn percent composition or measured masses into an empirical formula, then scale it to the molecular formula using the compound's molar mass.
Unit Converter
Convert between units of length, weight, temperature, area, volume, speed, time and data storage instantly, with a swap button and common conversion tables.
Crystallography Open Database is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.