Tài liệu API

API REST miễn phí cho dữ liệu yếu tố. Không cần khóa API.

Không cần chìa khóa API CORS đã được bật cho tất cả các nguồn JSON
https://api.periodictableofelements.org

API này miễn phí để sử dụng cho các dự án cá nhân, giáo dục và thương mại. Chúng tôi chỉ yêu cầu bạn bao gồm một liên kết trở lại PeriodicTableOfElements.org ở đâu đó trong ứng dụng hoặc trang web của bạn.

Ví dụ về việc gán:

<a href="https://periodictableofelements.org">Data from PeriodicTableOfElements.org</a>

Hoặc bằng văn bản đơn giản:

Data provided by PeriodicTableOfElements.org

Điểm kết thúc

GET /elements/

Trả về tất cả 118 nguyên tố với các tính chất chính bao gồm khối lượng nguyên tử, loại, cấu hình electron, điểm nóng chảy/ sôi, và vị trí lưới cho bố cục bảng.

Rate limit: 200/hr
Trả lời ví dụ
[
  {
    "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"
  },
  ...
]
Thử đi.
fetch('https://api.periodictableofelements.org/elements/')
  .then(r => r.json())
  .then(data => console.log(data));
GET /elements/{atomic_number}/

Trả dữ liệu đầy đủ cho một nguyên tố duy nhất, bao gồm tất cả các trường: tính chất vật lý, thông tin khám phá, đồng vị, ứng dụng, sự thật thú vị, và nhiều hơn nữa.

Rate limit: 300/hr
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,
  ...
}
Thử đi.
fetch('https://api.periodictableofelements.org/elements/79/')
  .then(r => r.json())
  .then(data => console.log(data));
GET /elements/quiz/

Trả lại một câu hỏi thử ngẫu nhiên về các nguyên tố. Các kiểu câu hỏi bao gồm: nhận dạng ký hiệu, tìm số nguyên tử, phân loại danh mục, và gợi ý dựa trên thuộc tính.

Rate limit: 300/hr
Trả lời ví dụ
{
  "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
}
Thử đi.
fetch('https://api.periodictableofelements.org/elements/quiz/')
  .then(r => r.json())
  .then(data => console.log(data));
GET /elements/element-of-the-day/

Trả nguyên tố được chú ý hôm nay. Nguyên tố thay đổi hàng ngày và quay qua tất cả 118 nguyên tố. Có tóm tắt và sự thật thú vị.

Rate limit: 200/hr
Trả lời ví dụ
{
  "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"
}
Thử đi.
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}

Đoán khối lượng mol của một công thức hóa học. Hỗ trợ dấu ngoặc và dấu phụ (ví dụ, Ca( OH) 2, H2SO4). Trả lại phân tích theo nguyên tố.

Rate limit: 300/hr
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
    }
  ]
}
Thử đi.
fetch('https://api.periodictableofelements.org/elements/molar-mass/?formula=H2O')
  .then(r => r.json())
  .then(data => console.log(data));
GET /elements/export/json/

Tải về tất cả 118 nguyên tố dưới dạng tập tin JSON định dạng. Bao gồm tính chất nguyên tử, thông tin khám phá, cấu hình electron, và nhiều hơn nữa. Name

Rate limit: 20/hr Trả về: application/json attachment
GET /elements/export/csv/

Tải về tất cả 118 yếu tố dưới dạng tập tin CSV. Các trường tương tự như xuất khẩu JSON, thích hợp cho bảng tính và phân tích dữ liệu.

Rate limit: 20/hr Trả về: văn bản/tập tin gắn liền csv

Giới hạn tốc độ

Endpoint Limit
/elements/ 200 requests/hour
/elements/{n}/ 300 requests/hour
/elements/quiz/ 300 requests/hour
/elements/element-of-the-day/ 200 requests/hour
/elements/molar-mass/ 300 requests/hour
/elements/export/json/ 20 requests/hour
/elements/export/csv/ 20 requests/hour

Giới hạn tốc độ là mỗi địa chỉ IP. Vượt quá giới hạn sẽ trả về HTTP 429 (Quá nhiều yêu cầu).

Ví dụ mã

// 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']})")

Tải về dữ liệu

JSON

Tất cả 118 yếu tố với đầy đủ tính chất. Lựa chọn lý tưởng cho ứng dụng mạng và văn lệnh. Name

Tải về JSON

CSV

Định dạng tương thích với bảng tính. Mở trong Excel, Google Sheets, hoặc Pandas.

Tải về CSV