APIドキュメント
要素データのためのフリーのREST API。API キーは必要ありません。
API キーが必要ありません
すべてのオリジンに対して CORS を有効にしました
JSON
https://api.periodictableofelements.org
この API は個人的、教育的、商業的プロジェクトに無料で使用できます。あなたのアプリケーションやウェブサイトのどこかに PeriodicTableOfElements.org へのリンクを含めていただくだけです。
例えば、次のように書き込むことができます。
<a href="https://periodictableofelements.org">Data from PeriodicTableOfElements.org</a>
または プレーンテキスト:
Data provided by PeriodicTableOfElements.org
エンドポイント
GET
/elements/
原子量、カテゴリ、電子配置、融点/沸点、表レイアウトのグリッド位置などのキー属性を含む全ての118元素を返します。
例の応答
[
{
"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));
GET
/elements/{atomic_number}/
単一元素の完全なデータを返します。物理的性質、発見情報、同位体、用途、面白い事実などのすべてのフィールドを含む。
Example Response — /elements/79/
{
"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));
GET
/elements/quiz/
元素に関するランダムなクイズを返します。クイズタイプは、記号識別、原子番号検索、カテゴリ分類、属性ベースのヒントなどです。
例の応答
{
"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));
GET
/elements/element-of-the-day/
今日の特集元素を返します。元素は毎日変化し、118 個の元素をサイクルします。要約と面白い事実を含みます。
例の応答
{
"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));
GET
/elements/molar-mass/?formula={formula}
化学式のモル質量を計算します。括弧と下線をサポートします。例えば Ca(OH)2, H2SO4。元素別に分解して返します。
Example Response — /elements/molar-mass/?formula=H2O
{
"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));
GET
/elements/export/json/
118 の元素をすべてフォーマットされた JSON ファイルとしてダウンロードします。原子の性質、発見情報、電子配置などを含みます。
GET
/elements/export/csv/
118 要素をすべて CSV ファイルとしてダウンロードします。JSON エクスポートと同じフィールドで、スプレッドシートやデータ分析に適しています。
レート制限
速度制限は IP アドレスごとに設定されています。制限を超えると HTTP 429 (Too Many Requests) が返されます。
コードの例
// 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']})")