Documentação da API
API REST gratuita para dados de elementos. Não é necessária a chave API.
https://api.periodictableofelements.org
Esta API é livre de usar para projetos pessoais, educacionais e comerciais. Apenas pedimos que você inclua um link de volta para PeriodicTableOfElements.org algures em seu aplicativo ou site.
Atribuição de exemplo:
<a href="https://periodictableofelements.org">Data from PeriodicTableOfElements.org</a>
Ou em texto simples:
Data provided by PeriodicTableOfElements.org
Pontos finais
Devolve todos os 118 elementos com propriedades-chave, incluindo massa atômica, categoria, configuração de elétrons, pontos de fusão/boiling e posições da grelha para o layout da tabela.
[
{
"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));
Devolve dados completos para um único elemento, incluindo todos os campos: propriedades físicas, informações de descoberta, isótopos, usos, fatos divertidos e muito mais.
{
"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));
Devolve uma pergunta aleatória sobre os elementos. Os tipos de perguntas incluem: identificação de símbolo, busca de números atômicos, classificação de categoria e pistas baseadas em propriedades.
{
"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));
Devolve o elemento destaque de hoje. O elemento muda diariamente e ciclos através de todos os 118 elementos. Inclui um fato sumário e divertido.
{
"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));
Calcula a massa molar de uma fórmula química. Suporta parênteses e subíndices (por exemplo, Ca(OH)2, H2SO4). Devolve uma repartição por elemento.
{
"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 todos os 118 elementos como um arquivo JSON formatado. Inclui propriedades atômicas, informações de descoberta, configurações eletrônicas e muito mais.
https://api.periodictableofelements.org/elements/export/json/
Downloads todos os 118 elementos como um arquivo CSV. Os mesmos campos que a exportação JSON, adequados para planilhas e análise de dados.
https://api.periodictableofelements.org/elements/export/csv/
Limites de taxa
Os limites de taxa são por endereço IP. Excedente do limite retorna HTTP 429 (Too Muitas Pedidos).
Exemplos de código
// 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']})")
Dados de Transferência
JSON
Todos os 118 elementos com propriedades completas. Ideal para aplicativos web e scripts.
Baixar JSON