Documentation de l'API
API REST gratuite pour les données des éléments. Aucune clé API requise.
https://api.periodictableofelements.org
Cette API est gratuite pour les projets personnels, éducatifs et commerciaux. Nous vous demandons simplement d'inclure un lien vers PériodiqueTableOfElements.org quelque part dans votre application ou site web.
Exemple d'attribution :
<a href="https://periodictableofelements.org">Data from PeriodicTableOfElements.org</a>
Ou en texte clair:
Data provided by PeriodicTableOfElements.org
Points finals
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/
Limites de taux
Rate limits are per IP address. Exceeding the limit returns HTTP 429 (Too Many Requests).
Exemples de codes
// 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']})")