API Dokumentasie
Free REST API vir element data. Nee API sleutel benodig.
https://api.periodictableofelements.org
This API is free to use for personal, educational, and commercial projects. We just ask that you include a link back to PeriodicTableOfElements.org somewhere in your app or website.
Example attribution:
<a href="https://periodictableofelements.org">Data from PeriodicTableOfElements.org</a>
Or in plain text:
Data provided by PeriodicTableOfElements.org
Einde punt:
Returns all 118 elements with key properties including atomic mass, category, electron configuration, melting/boiling points, and grid positions for table layout.
[
{
"atomic_number": 1,
"symbol": "H",
"name": "Hydrogen",
"slug": "hydrogen",
"atomic_mass": 1.008,
"category": "nonmetal",
"block": "s",
"group_number": 1,
"period": 1,
"state_at_room_temp": "gas",
"electronegativity": 2.2,
"ionization_energy": 1312.0,
"electron_affinity": -73.0,
"atomic_radius": 53,
"density": 0.00008988,
"melting_point": 14.01,
"boiling_point": 20.28,
"discovery_year": 1766,
"category_color": "#2ecc71",
"cpk_hex_color": "FFFFFF",
"grid_row": 1,
"grid_column": 1,
"electrons_per_shell": [1],
"electron_configuration_semantic": "1s1"
},
...
]
fetch('https://api.periodictableofelements.org/elements/')
.then(r => r.json())
.then(data => console.log(data));
Returns complete data for a single element, including all fields: physical properties, discovery info, isotopes, uses, fun facts, and more.
{
"atomic_number": 79,
"symbol": "Au",
"name": "Gold",
"slug": "gold",
"atomic_mass": 196.9666,
"category": "transition_metal",
"block": "d",
"group_number": 11,
"period": 6,
"state_at_room_temp": "solid",
"electronegativity": 2.54,
"density": 19.3,
"melting_point": 1337.33,
"boiling_point": 3129.0,
"discovery_year": -2500,
"discovered_by": "Ancient civilizations",
"electron_configuration": "1s2 2s2 2p6 3s2 3p6 3d10 4s2 4p6 4d10 5s1 4f14 5p6 5d10 6s1",
"electron_configuration_semantic": "[Xe] 4f14 5d10 6s1",
"oxidation_states": "+1, +3",
"is_radioactive": false,
"is_synthetic": false,
...
}
fetch('https://api.periodictableofelements.org/elements/79/')
.then(r => r.json())
.then(data => console.log(data));
Returns a random quiz question about elements. Question types include: symbol identification, atomic number lookup, category classification, and property-based clues.
{
"type": "symbol",
"question": "What element has the symbol Fe?",
"choices": [
{"name": "Iron", "atomic_number": 26},
{"name": "Fluorine", "atomic_number": 9},
{"name": "Francium", "atomic_number": 87},
{"name": "Fermium", "atomic_number": 100}
],
"answer": 26
}
fetch('https://api.periodictableofelements.org/elements/quiz/')
.then(r => r.json())
.then(data => console.log(data));
Returns today's featured element. The element changes daily and cycles through all 118 elements. Includes a summary and fun fact.
{
"atomic_number": 6,
"symbol": "C",
"name": "Carbon",
"slug": "carbon",
"category": "nonmetal",
"category_color": "#2ecc71",
"summary": "Carbon is a chemical element...",
"fun_fact": "Carbon can form nearly 10 million different compounds...",
"atomic_mass": 12.011,
"discovery_year": -3750,
"date": "2026-03-29"
}
fetch('https://api.periodictableofelements.org/elements/element-of-the-day/')
.then(r => r.json())
.then(data => console.log(data));
Calculates the molar mass of a chemical formula. Supports parentheses and subscripts (e.g., Ca(OH)2, H2SO4). Returns a breakdown by element.
{
"formula": "H2O",
"molar_mass": 18.015,
"breakdown": [
{
"symbol": "H",
"count": 2,
"atomic_mass": 1.008,
"subtotal": 2.016
},
{
"symbol": "O",
"count": 1,
"atomic_mass": 15.999,
"subtotal": 15.999
}
]
}
fetch('https://api.periodictableofelements.org/elements/molar-mass/?formula=H2O')
.then(r => r.json())
.then(data => console.log(data));
Downloads all 118 elements as a formatted JSON file. Includes atomic properties, discovery info, electron configurations, and more.
https://api.periodictableofelements.org/elements/export/json/
Downloads all 118 elements as a CSV file. Same fields as the JSON export, suitable for spreadsheets and data analysis.
https://api.periodictableofelements.org/elements/export/csv/
Tempo Limiet
Rate limits are per IP address. Exceeding the limit returns HTTP 429 (Too Many Requests).
Kode Voorbeelde
// Fetch all elements fetch('https://api.periodictableofelements.org/elements/') .then(res => res.json()) .then(elements => { console.log(`Loaded ${elements.length} elements`); elements.forEach(el => { console.log(`${el.symbol} - ${el.name} (${el.atomic_mass})`); }); }); // Get a single element fetch('https://api.periodictableofelements.org/elements/79/') .then(res => res.json()) .then(gold => { console.log(`${gold.name}: ${gold.atomic_mass} u`); }); // Calculate molar mass fetch('https://api.periodictableofelements.org/elements/molar-mass/?formula=H2SO4') .then(res => res.json()) .then(data => { console.log(`${data.formula}: ${data.molar_mass} g/mol`); }); // Get element of the day fetch('https://api.periodictableofelements.org/elements/element-of-the-day/') .then(res => res.json()) .then(el => { console.log(`Today's element: ${el.name} (${el.symbol})`); });
# Fetch all elements import requests response = requests.get('https://api.periodictableofelements.org/elements/') elements = response.json() print(f'Loaded {len(elements)} elements') for el in elements: print(f"{el['symbol']} - {el['name']} ({el['atomic_mass']})") # Get a single element gold = requests.get('https://api.periodictableofelements.org/elements/79/').json() print(f"{gold['name']}: {gold['atomic_mass']} u") # Calculate molar mass data = requests.get( 'https://api.periodictableofelements.org/elements/molar-mass/', params={'formula': 'H2SO4'} ).json() print(f"{data['formula']}: {data['molar_mass']} g/mol") # Get element of the day el = requests.get( 'https://api.periodictableofelements.org/elements/element-of-the-day/' ).json() print(f"Today's element: {el['name']} ({el['symbol']})")