Dữ liệu thời tiết xuất hiện ở nhiều nơi hơn là trong một widget dự báo. Người dùng và lập trình viên Linux thường dùng dữ liệu này trong script shell, dashboard giám sát, công cụ tự động hóa, ứng dụng du lịch, dự án IoT, báo cáo và dịch vụ dựa trên vị trí.
Một tra cứu thời tiết trên dòng lệnh đơn giản là đủ cho việc kiểm tra nhanh, nhưng dự án thực tế thường cần dữ liệu có cấu trúc, endpoint ổn định, tài liệu rõ ràng và định dạng đầu ra tương thích với script.
Đó là lúc API thời tiết phát huy tác dụng. Những lựa chọn tốt cung cấp dữ liệu dự báo, bản ghi lịch sử, tìm kiếm theo vị trí, phản hồi JSON hoặc CSV và gói miễn phí thực tế để thử nghiệm. Một số đủ đơn giản cho dự án cá nhân, số khác được xây dựng cho phân tích, ứng dụng doanh nghiệp hoặc luồng dữ liệu lớn hơn.
Danh sách này tập trung vào các API thời tiết phù hợp với script Linux và dự án của lập trình viên, chú ý đến trường hợp sử dụng thực tế, cách truy cập dữ liệu, tài liệu và mức độ dễ tích hợp vào công việc phát triển hằng ngày.
Điều gì khiến một API thời tiết hữu ích cho script Linux?
Script Linux hoạt động tốt nhất với dữ liệu có thể đoán trước. Một API thời tiết nên trả về phản hồi sạch, hỗ trợ các định dạng phổ biến như JSON và CSV, và cho phép yêu cầu dữ liệu theo vị trí, ngày hoặc khoảng thời gian cụ thể. Điều đó quan trọng khi script chạy từ cron, cấp dữ liệu cho dashboard, kích hoạt cảnh báo hoặc lưu kết quả để phân tích sau.
Với người dùng Linux, định dạng đầu ra thường quan trọng không kém dữ liệu. Phản hồi API có thể lưu, lọc, sắp xếp hoặc chuyển đổi sẽ dễ tái sử dụng trong script shell và quy trình báo cáo, đặc biệt khi lập trình viên cần xem tệp CSV trong terminal Linux trước khi đưa dữ liệu sang công cụ khác.
Tài liệu tốt cũng quan trọng. Lập trình viên cần có khả năng kiểm thử endpoint bằng curl, phân tích phản hồi bằng jq, lưu kết quả vào tệp và xử lý lỗi mà không phải đoán cách API hoạt động. Giới hạn tốc độ, xác thực, thời gian hoạt động và quyền truy cập dữ liệu lịch sử trở nên quan trọng hơn khi dự án vượt qua giai đoạn thử nghiệm cơ bản.
Các API thời tiết hàng đầu cho script Linux và dự án lập trình viên
1. Visual Crossing
Phù hợp nhất cho: Dữ liệu thời tiết lịch sử trong script
Visual Crossing Weather API tập trung mạnh vào bản ghi thời tiết lịch sử, hữu ích cho script so sánh điều kiện quá khứ, tạo báo cáo hoặc cấp dữ liệu cho công cụ phân tích. API trả về cả JSON và CSV, nên bạn có thể đưa đầu ra CSV trực tiếp vào công cụ shell tiêu chuẩn hoặc cơ sở dữ liệu cục bộ mà không cần viết bộ phân tích tùy chỉnh.
Với quy trình Linux điển hình, bạn yêu cầu một khoảng ngày cho vị trí cụ thể, lưu phản hồi dưới dạng CSV và xử lý bằng công cụ tiêu chuẩn. Cách này phù hợp cho báo cáo định kỳ hoặc dashboard cần trả lời câu hỏi như "thành phố này mưa bao nhiêu trong quý trước?" hoặc "xu hướng nhiệt độ năm qua thế nào?".
Cách dùng
Shell:
curl -s "https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/London?key=YOUR_API_KEY&unitGroup=metric" | python3 -m json.tool
Python:
import requests
url = "https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/London"
params = {
"key": "YOUR_API_KEY",
"unitGroup": "metric"
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
data = response.json()
print(f"Current temp: {data['currentConditions']['temp']}")
Cần kiểm tra trước khi cam kết
- Độ sâu lịch sử: Dịch vụ Visual Crossing cung cấp quyền truy cập hơn 50 năm lịch sử. Lưu ý rằng KHÔNG phải mọi vị trí hay yếu tố thời tiết đều có dữ liệu đầy đủ trong toàn bộ kho lưu trữ. Hãy kiểm thử vị trí và khoảng ngày cụ thể của bạn.
- Giới hạn tốc độ: Gói miễn phí cho phép 1.000 bản ghi thời tiết mỗi ngày và chỉ một yêu cầu đồng thời. Nếu chạy tác vụ hàng loạt yêu cầu khoảng ngày lớn cho nhiều vị trí, bạn sẽ cần gói trả phí.
- Độ chính xác vị trí: Kiểm thử một vài vị trí với điều kiện đã biết. Chất lượng dữ liệu lịch sử có thể khác nhau theo khu vực vì API kết hợp quan trắc trạm, radar và vệ tinh.
- Chi phí: Truy vấn lịch sử hàng loạt sẽ tăng nhanh. Một năm dữ liệu hằng ngày cho một vị trí tiêu tốn khoảng 365 bản ghi, nên tác vụ hàng loạt lớn sẽ sớm vượt hạn mức miễn phí.
Đánh giá
Lựa chọn vững chắc khi script cần thời tiết lịch sử ở định dạng mà công cụ Linux tiêu chuẩn xử lý được. API cũng xử lý dự báo và điều kiện hiện tại, nhưng điểm mạnh thực sự là dòng thời gian thống nhất cho phép truy vấn quá khứ, hiện tại và tương lai qua cùng một endpoint.
2. Open-Meteo
Phù hợp nhất cho: Dự án mã nguồn mở (open-source) miễn phí và nguyên mẫu nhanh
Open-Meteo thực sự miễn phí cho mục đích phi thương mại và không yêu cầu API key. Bạn có thể kiểm thử ngay bằng curl, rất lý tưởng cho script cá nhân, nguyên mẫu và mọi thứ bạn muốn chạy mà không cần quản lý thông tin xác thực.
API trả về JSON sạch và hỗ trợ dự báo tới 16 ngày, cùng dữ liệu lịch sử từ 1940 thông qua các mô hình tái phân tích.
API cũng cung cấp nhiều biến số:
- Nhiệt độ,
- Lượng mưa,
- Gió ở nhiều độ cao,
- Bức xạ mặt trời,
- Độ ẩm đất, và nhiều hơn nữa.
Độ sâu đó là điều bất thường với một dịch vụ miễn phí.
Các API thời tiết dùng vĩ độ và kinh độ, nhưng Open-Meteo cũng cung cấp Geocoding API riêng để chuyển tên thành phố hoặc mã bưu chính thành tọa độ. Với địa chỉ đường phố tùy ý, bạn vẫn có thể cần dịch vụ geocoding riêng.
Ngoài ra, gói miễn phí chỉ dành cho mục đích phi thương mại. Nếu dự án tạo doanh thu, bạn cần giấy phép thương mại. Dịch vụ công khai không có cam kết thời gian hoạt động, và dù giới hạn tốc độ khá hợp lý, lưu lượng lớn từ một IP có thể bị điều tiết.
Cách dùng
Shell:
curl -s "https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t=temperature_2m&daily=temperature_2m_max,temperature_2m_min&timezone=auto" | python3 -m json.tool
Python:
import requests
url = "https://api.open-meteo.com/v1/forecast"
params = {
"latitude": 52.52,
"longitude": 13.41,
"current": "temperature_2m",
"daily": ["temperature_2m_max", "temperature_2m_min"],
"timezone": "auto"
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
data = response.json()
print(f"Current temp: {data['current']['temperature_2m']}")
Cần kiểm tra trước khi cam kết
- Xử lý vị trí: Xác nhận bạn có thể cung cấp tọa độ hoặc có cách đáng tin cậy để chuyển địa chỉ trước khi gọi API.
- Tình trạng thương mại: Nếu dự án mang tính thương mại, hãy dự trù ngân sách cho giấy phép trả phí. Endpoint miễn phí không được cấp phép cho mục đích kinh doanh.
- Hiểu rõ nguồn dữ liệu: Điều kiện hiện tại đến từ đầu ra mô hình, không phải trạm thời tiết trực tiếp. Với một số trường hợp điều này ổn; với trường hợp khác có thể hơi chậm so với quan trắc trạm.
- Phạm vi địa lý của dữ liệu độ phân giải cao: Độ phân giải 15 phút chỉ có ở Trung Âu và Bắc Mỹ. Các khu vực khác dùng dữ liệu theo giờ.
Đánh giá
Điểm khởi đầu tuyệt vời cho script cá nhân, giáo dục và công cụ phi thương mại. Việc không cần xác thực giúp giảm nhiều ma sát. Chỉ cần nhớ tự xử lý geocoding và không xây sản phẩm thương mại trên endpoint miễn phí.
3. OpenWeather
Phù hợp nhất cho: Dữ liệu thời tiết đa mục đích khi cần phạm vi bao phủ rộng
OpenWeather là một trong những API thời tiết được biết đến rộng rãi nhất. API cung cấp điều kiện hiện tại, dự báo, chất lượng không khí, geocoding và bản đồ thời tiết. Gói miễn phí có khối lượng hào phóng (60 lệnh gọi mỗi phút, tối đa 1 triệu lệnh gọi mỗi tháng), hấp dẫn với script thăm dò thường xuyên.
Gói miễn phí bao gồm thời tiết hiện tại, dự báo 5 ngày theo bước 3 giờ, dữ liệu ô nhiễm không khí, geocoding và bản đồ thời tiết cơ bản. Tuy nhiên, endpoint thống nhất hữu ích hơn là One Call API 3.0/4.0 lại nằm sau gói trả phí. Endpoint đó gộp điều kiện hiện tại, dự báo từng phút (minute-by-minute), dự báo theo giờ, dự báo hằng ngày, cảnh báo chính phủ và dữ liệu lịch sử trong một phản hồi. Trên gói miễn phí, bạn phải gọi các endpoint riêng cho dữ liệu hiện tại và dự báo cơ bản.
Dữ liệu thời tiết lịch sử có từ hơn 47 năm, nhưng bạn không thể truy cập trên gói miễn phí. Bạn cần ít nhất gói One Call API 3.0 hoặc bậc cao hơn.
Gói miễn phí cũng có mục tiêu khả dụng 95%, thấp hơn hầu hết dịch vụ thời tiết trả phí. Với một cron job production, khoảng cách đó quan trọng.
Cách dùng
Shell:
curl -s "https://api.openweathermap.org/data/2.5/weather?lat=51.5074&lon=-0.1278&appid=YOUR_API_KEY&units=metric" | python3 -m json.tool
Python:
import requests
url = "https://api.openweathermap.org/data/2.5/weather"
params = {
"lat": 51.5074,
"lon": -0.1278,
"appid": "YOUR_API_KEY",
"units": "metric"
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
data = response.json()
print(f"Current temp: {data['main']['temp']}")
Cần kiểm tra trước khi cam kết
- Giới hạn gói miễn phí: 60 lệnh gọi mỗi phút và 1 triệu lệnh gọi mỗi tháng nghe có vẻ nhiều, nhưng dữ liệu miễn phí ít chi tiết hơn. Bạn nhận bước dự báo 3 giờ, không phải theo giờ hay từng phút.
- Truy cập dữ liệu lịch sử: Nếu script cần thời tiết quá khứ, hãy dự trù gói trả phí. Gói miễn phí không bao gồm endpoint lịch sử.
- Geocoding: Tra cứu tên thành phố tích hợp trong các endpoint thời tiết cũ đã bị ngừng hỗ trợ. OpenWeather hiện yêu cầu dùng Geocoding API riêng để chuyển địa chỉ thành tọa độ.
- Thời gian hoạt động: Gói miễn phí cam kết khả dụng 95%. Gói trả phí hướng tới 99,5% hoặc cao hơn. Nếu script chạy không giám sát, hãy quyết định xem rủi ro đó có chấp nhận được không.
- Ghi nguồn: mọi gói đều yêu cầu ghi công OpenWeather rõ ràng trong ứng dụng hoặc đầu ra.
Đánh giá
Lựa chọn mặc định an toàn cho điều kiện hiện tại và dự báo cơ bản, đặc biệt nếu cần khối lượng lệnh gọi cao mà không tốn chi phí ngay. Chỉ cần biết gói miễn phí hạn chế hơn vẻ ngoài ban đầu. Với dự báo thống nhất, cảnh báo hoặc dữ liệu lịch sử, bạn sẽ phải trả phí.
4. WeatherAPI
Phù hợp nhất cho: Truy vấn vị trí linh hoạt và bộ tính năng rộng mà không tốn tiền
WeatherAPI.com nổi bật vì chấp nhận gần như mọi định dạng vị trí bạn có thể nghĩ tới. Truyền tên thành phố, vĩ độ và kinh độ, mã zip Mỹ, mã bưu chính Anh, mã bưu chính Canada, mã METAR, mã sân bay IATA hoặc thậm chí địa chỉ IP. Điều này giúp bạn không phải chạy bước geocoding riêng trong script.
Gói miễn phí cho bạn 100.000 lệnh gọi mỗi tháng, đủ cho hầu hết dự án cá nhân hoặc quy mô nhỏ. Bạn nhận điều kiện hiện tại, dự báo 3 ngày và 1 ngày dữ liệu lịch sử.
API cũng cung cấp dữ liệu thiên văn, tra cứu múi giờ, định vị IP và thời tiết thể thao, dù dữ liệu thể thao bị giới hạn trên gói miễn phí. Đó vẫn là nhiều chức năng trong một endpoint.
Lưu ý gói miễn phí có ranh giới rõ ràng. Dữ liệu lịch sử chỉ lùi một ngày, và dự báo chỉ tới ba ngày. Nếu cần lịch sử sâu hơn hoặc dự báo dài hơn, bạn sẽ cần gói trả phí. Ngoài ra, thời gian hoạt động được đánh giá 95,5%, thấp hơn hầu hết lựa chọn trả phí, nên thỉnh thoảng gián đoạn là điều có thể xảy ra.
Một chi tiết quan trọng về dữ liệu lịch sử: WeatherAPI.com lưu trữ đầu ra dự báo của chính mình vào cuối mỗi ngày. Dữ liệu không được xây từ quan trắc trạm thực tế. Với so sánh thông thường hoặc phát hiện xu hướng, điều này thường ổn. Với nghiên cứu nghiêm ngặt hoặc tuân thủ pháp lý, bạn có thể muốn dịch vụ dùng bản ghi quan trắc đã xác minh.
Dữ liệu thời gian thực cập nhật mỗi 10 đến 15 phút, và dữ liệu dự báo làm mới mỗi 4 đến 6 giờ. API trả về JSON hoặc XML. Bạn cũng có thể lọc trường phản hồi để chỉ nhận biến cần thiết, giúp kích thước phản hồi nhỏ.
Cách dùng
Shell:
curl -s "https://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q=London" | python3 -m json.tool
Python:
import requests
url = "https://api.weatherapi.com/v1/current.json"
params = {
"key": "YOUR_API_KEY",
"q": "London"
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
data = response.json()
print(f"Current temp: {data['current']['temp_c']}")
Cần kiểm tra trước khi cam kết
- Giới hạn gói miễn phí: 100k lệnh gọi mỗi tháng nghe hào phóng, nhưng bạn chỉ nhận 3 ngày dự báo và 1 ngày lịch sử. Nếu cần nhiều hơn, hãy dự trù ít nhất gói Starter.
- Nguồn dữ liệu lịch sử: nhớ rằng bản ghi lịch sử là dự báo lưu trữ, không phải quan trắc thực địa.
- Sử dụng thương mại: khác nhiều API thời tiết miễn phí, WeatherAPI.com cho phép rõ ràng sử dụng thương mại trên gói miễn phí.
- Thời gian hoạt động: 95,5% trên gói miễn phí nghĩa là thỉnh thoảng gián đoạn. Với cron job production, hãy cân nhắc gói trả phí có thời gian hoạt động 99% hoặc cao hơn.
- Linh hoạt vị trí: tên thành phố, mã zip và mã sân bay hoạt động trực tiếp trong tham số truy vấn, nên có thể bạn không cần API geocoding riêng.
Đánh giá
Lựa chọn mạnh nếu bạn muốn một API xử lý thời tiết hiện tại, dự báo cơ bản, thiên văn, múi giờ và tra cứu IP mà không cần thiết lập thêm. Chỉ cần tôn trọng giới hạn gói miễn phí và không coi kho lưu trữ lịch sử là dữ liệu quan trắc đã xác minh.
5. National Weather Service API
Phù hợp nhất cho: Dữ liệu thời tiết Mỹ miễn phí không cần API key hay phí sử dụng
National Weather Service API là dịch vụ công do người nộp thuế Mỹ tài trợ, nên dữ liệu hoàn toàn miễn phí cho mọi mục đích. Bạn không cần API key. Bạn chỉ cần gửi header User-Agent để nhận diện ứng dụng.
API này lý tưởng nếu dự án tập trung vào Hoa Kỳ. Nó cung cấp dự báo, cảnh báo thời tiết và quan trắc trạm. Hệ thống cảnh báo đặc biệt mạnh vì lấy trực tiếp từ pipeline cảnh báo chính thức của chính phủ. Nếu bạn xây dựng trình giám sát thời tiết khắc nghiệt, dashboard khẩn cấp hoặc công cụ công dân cho cộng đồng Mỹ, đây thường là nguồn có thẩm quyền nhất.
API dùng hệ thống dự báo theo lưới. Mỗi vị trí ánh xạ tới một Weather Forecast Office cụ thể và một tọa độ lưới. Để lấy dự báo, trước tiên bạn gọi endpoint /points/{latitude},{longitude}. Endpoint trả về liên kết tới URL dự báo lưới đúng cho vị trí của bạn. Sau đó bạn gọi URL lưới đó để lấy dữ liệu dự báo thực tế. Độ phân giải lưới khoảng 2,5 km x 2,5 km, phù hợp với hầu hết trường hợp khu vực và địa phương.
Bạn có thể lấy khoảng dự báo 12 giờ cho 7 ngày tới, dự báo theo giờ cho 7 ngày tới, cảnh báo đang hoạt động theo bang hoặc vùng, và quan trắc gần đây từ trạm thời tiết địa phương. API hỗ trợ định dạng GeoJSON, JSON-LD, DWML và CAP, nên bạn có thể chọn định dạng phù hợp với bộ phân tích.
Có một số giới hạn thực tế cần lưu ý. API chỉ bao phủ Hoa Kỳ, nên không dùng được cho dự án toàn cầu. Giới hạn tốc độ có tồn tại nhưng không công bố công khai. Tài liệu mô tả chúng là hào phóng cho sử dụng thông thường, và nếu chạm giới hạn bạn thường có thể thử lại sau vài giây. Tuy nhiên, nếu chạy dịch vụ production lưu lượng cao, bạn nên cache phản hồi và tôn trọng hành vi thử lại. Ngoài ra, quan trắc trạm có thể trễ tới 20 phút do xử lý kiểm soát chất lượng ở thượng nguồn.
Cách dùng
Shell:
curl -s -A "MyWeatherApp ([email protected])" "https://api.weather.gov/points/39.7456,-97.0892" | python3 -m json.tool
Python:
import requests
url = "https://api.weather.gov/points/39.7456,-97.0892"
headers = {"User-Agent": "MyWeatherApp ([email protected])"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
forecast_url = data["properties"]["forecast"]
print(f"Forecast URL: {forecast_url}")
Cần kiểm tra trước khi cam kết
- Phạm vi địa lý: API này chỉ phục vụ vị trí tại Mỹ. Nếu cần bao phủ toàn cầu, hãy tìm nơi khác.
- Tra cứu hai bước: bạn phải chuyển vĩ độ/kinh độ thành endpoint lưới trước khi lấy dự báo. Cache URL lưới để giảm độ trễ, nhưng làm mới định kỳ vì ánh xạ lưới có thể thay đổi.
- Header
User-Agent: API yêu cầu header này và có thể chặn yêu cầu thiếu nó. - Độ trễ dữ liệu: quan trắc có thể trễ tới 20 phút, nên đừng coi đây là luồng thời gian thực cho các quyết định quan trọng về an toàn.
- Giới hạn tốc độ: chúng tồn tại nhưng không được ghi cụ thể. Hãy xây logic cache và thử lại vào script.
Đánh giá
Lựa chọn miễn phí tốt nhất cho công cụ thời tiết tập trung vào Mỹ. API có thẩm quyền, hoàn toàn miễn phí và không cần API key. Chỉ cần nhớ nó chỉ dành cho Mỹ, và bạn phải xử lý luồng tra cứu theo lưới trong mã.
6. Weatherbit
Phù hợp nhất cho: Điều kiện hiện tại và dự báo ngắn hằng ngày trong một API toàn cầu
Weatherbit là API thời tiết thương mại với gói miễn phí hạn chế. Gói miễn phí cho dữ liệu thời tiết hiện tại và dự báo hằng ngày 7 ngày. Gói không bao gồm cảnh báo thời tiết khắc nghiệt, chất lượng không khí, dự báo theo giờ, dữ liệu lịch sử hoặc bản đồ. Nếu cần bất kỳ mục nào trong đó, bạn phải nâng lên gói trả phí.
Gói miễn phí cho phép 50 yêu cầu mỗi ngày với 1 yêu cầu mỗi giây, và chỉ dùng cho dự án phi thương mại. Đủ cho script cá nhân nhỏ hoặc dashboard sở thích, nhưng không hỗ trợ ứng dụng bận rộn hay bất kỳ mục đích thương mại nào. Thời gian hoạt động trên gói miễn phí là 95%, thấp hơn hầu hết đối thủ trả phí.
Weatherbit bao phủ vị trí toàn cầu. Bạn có thể truy vấn theo vĩ độ và kinh độ, tên thành phố, mã bưu chính kèm quốc gia hoặc ID trạm. Tài liệu khuyến nghị dùng vĩ độ/kinh độ để có kết quả chính xác nhất. Dự báo cập nhật khoảng mỗi giờ.
Nếu trả phí cho bậc cao hơn, Weatherbit mở rộng thành nền tảng dữ liệu môi trường rộng hơn. Gói Standard thêm dự báo 16 ngày, dự báo theo giờ và từng phút, dữ liệu sét và cảnh báo thời tiết khắc nghiệt.
Gói Business thêm thời tiết lịch sử, chuẩn khí hậu, chất lượng không khí, thời tiết nông nghiệp và bộ dữ liệu tập trung vào năng lượng. Nhưng trên gói miễn phí, bạn chỉ có điều kiện hiện tại và dự báo hằng ngày 7 ngày.
Cách dùng
Shell:
curl -s "https://api.weatherbit.io/v2.0/current?lat=35.7721&lon=-78.63861&key=YOUR_API_KEY&units=M" | python3 -m json.tool
Python:
import requests
url = "https://api.weatherbit.io/v2.0/current"
params = {
"lat": 35.7721,
"lon": -78.63861,
"key": "YOUR_API_KEY",
"units": "M" # M = Metric, I = Imperial, S = Scientific
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
data = response.json()
print(f"Current temp: {data['data'][0]['temp']}")
Cần kiểm tra trước khi cam kết
- Gói miễn phí hoàn toàn phi thương mại. Không dùng cho dự án kinh doanh.
- Bạn chỉ nhận 50 yêu cầu mỗi ngày. Nếu thăm dò hơn hai lần mỗi giờ, bạn sẽ chạm giới hạn.
- Cảnh báo và chất lượng không khí không miễn phí. Nếu chúng quan trọng, hãy chọn API miễn phí khác hoặc trả phí nâng cấp Weatherbit.
- Thời gian hoạt động là 95% trên gói miễn phí. Chấp nhận được cho sở thích nhưng rủi ro với việc quan trọng.
- Tra cứu vị trí theo tên thành phố hoặc mã bưu chính có thể mơ hồ. Dùng vĩ độ/kinh độ khi có thể.
Đánh giá
Lựa chọn miễn phí tạm được nếu bạn chỉ cần thời tiết hiện tại và dự báo hằng ngày 7 ngày cho dự án phi thương mại. Nếu muốn cảnh báo, chất lượng không khí hoặc dữ liệu lịch sử, hãy tìm nơi khác trừ khi sẵn sàng trả phí.
7. Tomorrow.io
Phù hợp nhất cho: Dữ liệu thời tiết cốt lõi với hạn mức yêu cầu miễn phí hào phóng cho dự án phi thương mại
Tomorrow.io cung cấp gói Developer miễn phí cho quyền truy cập các tham số thời tiết cốt lõi: nhiệt độ, độ ẩm, gió, lượng mưa, mây che phủ và các trường cơ bản liên quan. Phạm vi dự báo miễn phí bao phủ tới 4,5 ngày tới. Bạn cũng nhận một mẫu nhỏ dữ liệu chất lượng không khí và phấn hoa, nhưng không có đầy đủ các lớp cao cấp.
Gói miễn phí cho phép 500 yêu cầu mỗi ngày, giới hạn 25 yêu cầu mỗi giờ và 3 yêu cầu mỗi giây. Hào phóng hơn nhiều đối thủ. Bạn có thể thăm dò vài vị trí thường xuyên hoặc truy vấn nhiều endpoint cho dự án nhỏ mà không chạm giới hạn ngay.
Có những hạn chế quan trọng:
- Thứ nhất, gói miễn phí không bao gồm dữ liệu thời tiết lịch sử. Nếu cần điều kiện quá khứ, bạn phải nâng cấp.
- Thứ hai, dự báo chỉ tới 4,5 ngày trên gói miễn phí, không phải 14 ngày như quảng cáo trên gói trả phí.
- Thứ ba, các lớp dữ liệu cao cấp như chất lượng không khí đầy đủ, phấn hoa, sét, chỉ số cháy, đất, mặt trời và hàng hải yêu cầu quyền truy cập trả phí.
- Thứ tư, và quan trọng nhất, Điều khoản dịch vụ cấm sử dụng thương mại trên tài khoản miễn phí tự tạo. Nếu xây công cụ kinh doanh, ứng dụng tạo doanh thu hoặc dashboard nội bộ công ty, bạn không thể hợp pháp dùng gói miễn phí. Bạn phải đăng ký gói trả phí.
- Cuối cùng, Điều khoản yêu cầu hiển thị ghi công "Powered by Tomorrow.io" ở mọi nơi bạn hiển thị dữ liệu.
API dùng giao diện REST đơn giản với API key. Bạn có thể yêu cầu điều kiện thời gian thực và dòng thời gian dự báo theo vĩ độ và kinh độ. Định dạng phản hồi là JSON, và tài liệu cung cấp ví dụ bằng shell, Python, Node, Java, Go và R.
Cách dùng
Shell:
curl -s "https://api.tomorrow.io/v4/weather/realtime?location=42.3601,-71.0589&apikey=YOUR_API_KEY" -H "Accept: application/json" | python3 -m json.tool
Python:
import requests
url = "https://api.tomorrow.io/v4/timelines"
params = {
"apikey": "YOUR_API_KEY",
"location": "42.3601,-71.0589",
"fields": ["temperature", "windSpeed"],
"timesteps": "1d",
"startTime": "now",
"endTime": "now+5d"
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
data = response.json()
for interval in data["data"]["timelines"][0]["intervals"]:
print(f"{interval['startTime']}: {interval['values']['temperature']} C")
Cần kiểm tra trước khi cam kết
- Không được dùng thương mại trên gói miễn phí. Nếu dự án có bất kỳ mục đích kinh doanh nào, hãy trả phí cho gói.
- Dữ liệu lịch sử hoàn toàn không có trên gói miễn phí.
- Dự báo giới hạn ở 4,5 ngày. Nếu cần cả tuần hoặc hai tuần, hãy tìm nơi khác hoặc nâng cấp.
- Các lớp môi trường cao cấp (chất lượng không khí, phấn hoa, sét, cháy, đất, mặt trời) chỉ là mẫu hoặc không có trên gói miễn phí.
- Bạn phải hiển thị ghi công "Powered by Tomorrow.io".
- Giới hạn tốc độ là 500/ngày, 25/giờ, 3/giây. Đủ cho dự án sở thích nhưng chật với việc tham vọng hơn.
Đánh giá
Lựa chọn miễn phí vững chắc cho dự án phi thương mại chỉ cần điều kiện hiện tại và dự báo ngắn hạn. Hạn mức yêu cầu hào phóng, nhưng lệnh cấm thương mại, thiếu dữ liệu lịch sử và tầm dự báo ngắn là những hạn chế thực sự. Đọc Điều khoản trước khi xây bất cứ thứ gì nghiêm túc.
8. Meteomatics
Phù hợp nhất cho: Đánh giá API thời tiết doanh nghiệp nhiều tham số trước khi mua
Meteomatics là API thời tiết cấp doanh nghiệp với hơn 1.800 tham số khả dụng, bao gồm các trường chuyên biệt cho năng lượng, nông nghiệp, hàng hải và môi trường.
API cung cấp dữ liệu lịch sử, hiện tại và dự báo toàn cầu qua giao diện kiểu REST linh hoạt. Bạn có thể yêu cầu dữ liệu theo tọa độ, trạm, tuyến đường hoặc đa giác, và nhận phản hồi ở JSON, CSV, XML, NetCDF, PNG và các định dạng khác.
Điểm mấu chốt: không có gói miễn phí vĩnh viễn. Meteomatics cung cấp bản dùng thử miễn phí 14 ngày, giới hạn ở tham số thời tiết cơ bản và dữ liệu độ phân giải thấp hơn. Sau hai tuần, bạn phải trả phí. Giá được báo riêng và thương lượng trực tiếp với bộ phận bán hàng; không có gói trả phí tự phục vụ. Nếu bạn tìm API miễn phí để chạy liên tục, đây không phải lựa chọn.
API dùng HTTP Basic Auth với tên người dùng và mật khẩu. Cấu trúc URL khác thường nhưng nhất quán: api.meteomatics.com/<validdatetime>/<parameters>/<location>/<format>. Ví dụ, bạn có thể yêu cầu nhiệt độ, lượng mưa và tốc độ gió cho một cặp tọa độ cụ thể trong một lệnh gọi. Tài liệu cũng hỗ trợ các tính năng nâng cao như dự báo tổ hợp, truy vấn tuyến đường và tổng hợp đa giác, dù chúng có thể cần quyền truy cập bậc cao hơn.
Mô hình độc quyền EURO1k của công ty cung cấp độ phân giải 1 km trên châu Âu, nhưng cần ít nhất gói Professional. Bản dùng thử miễn phí sẽ không cho bạn độ chính xác đầy đủ mà nền tảng này nổi tiếng.
Cách dùng
Shell:
curl -s -u "username:password" "https://api.meteomatics.com/2025-05-26T00:00:00Z--2025-05-26T04:00:00Z:PT1H/t_2m:C,precip_1h:mm,wind_speed_10m:ms/50,10/json" | python3 -m json.tool
Python:
import requests
url = "https://api.meteomatics.com/2025-05-26T00:00:00Z--2025-05-26T04:00:00Z:PT1H/t_2m:C,precip_1h:mm,wind_speed_10m:ms/50,10/json"
response = requests.get(url, auth=("username", "password"), timeout=30)
response.raise_for_status()
data = response.json()
print(data)
Cần kiểm tra trước khi cam kết
- Ưu đãi miễn phí là bản dùng thử 14 ngày, không phải gói miễn phí lâu dài. Đừng xây dự án dài hạn quanh nó.
- Bản dùng thử bị giới hạn ở tham số cơ bản và dữ liệu độ phân giải thấp hơn.
- Bạn không thể đăng ký gói trả phí mà không trao đổi với bộ phận bán hàng. Không có giá tự phục vụ minh bạch.
- Mô hình độ phân giải cao EURO1k và các tham số nâng cao yêu cầu gói trả phí.
- Bạn có thể theo dõi mức sử dụng qua endpoint
user_stats. - API dùng Basic Auth tên người dùng/mật khẩu, không phải API key đơn giản.
Đánh giá
API mạnh và linh hoạt cho tổ chức cần dữ liệu thời tiết sâu và có ngân sách cho giá doanh nghiệp tùy chỉnh. Với lập trình viên cá nhân hoặc dự án nhỏ đang tìm API thời tiết miễn phí lâu dài, đây không phải lựa chọn đúng. Chỉ dùng bản dùng thử 14 ngày nếu bạn thực sự đánh giá Meteomatics cho một triển khai trả phí.
Bảng so sánh
Bảng 1: Hạn mức và quyền của gói miễn phí
Bảng 2: Phạm vi dữ liệu và đánh giá thực tế
Tóm lại,
- Nếu cần dữ liệu lịch sử trên gói miễn phí: Visual Crossing là lựa chọn rõ ràng (lùi tới 1970). Open-Meteo cũng cung cấp dữ liệu lịch sử không cần key.
- Nếu cần cảnh báo thời tiết khắc nghiệt trên gói miễn phí: NWS API là lựa chọn duy nhất, nhưng chỉ dành cho Mỹ.
- Nếu cần hạn mức miễn phí cao nhất: WeatherAPI.com (100K/tháng) hoặc NWS (không giới hạn).
- Nếu cần bao phủ toàn cầu mà không đăng ký: Open-Meteo.
- Nếu xây bất cứ thứ gì thương mại: NWS API (chỉ Mỹ), WeatherAPI.com hoặc OpenWeather (kèm ghi công). Phần còn lại chặn sử dụng thương mại trên gói miễn phí.
- Nếu cần độ sâu doanh nghiệp: Meteomatics có danh mục phong phú nhất, nhưng bạn phải trả phí sau 14 ngày.
Cách chọn API thời tiết phù hợp
API thời tiết tốt nhất phụ thuộc vào cách dữ liệu sẽ được dùng. Một script Bash nhỏ có thể chỉ cần điều kiện hiện tại và phản hồi JSON đơn giản. Dashboard hoặc công cụ báo cáo có thể cần dữ liệu lịch sử, dự báo, cảnh báo, tìm kiếm vị trí và giới hạn tốc độ có thể đoán trước.
Bắt đầu với định dạng phản hồi. JSON thường là lựa chọn dễ nhất cho script dùng curl và jq, trong khi CSV hữu ích cho báo cáo, bảng tính và kiểm tra nhanh trên terminal. API tốt nên trả dữ liệu ở cấu trúc dễ phân tích mà không cần dọn dẹp thêm.
Xác thực và giới hạn tốc độ quan trọng khi script chạy tự động. Kiểm thử một lần từ terminal thì đơn giản, nhưng tác vụ định kỳ cần quyền truy cập ổn định, thông báo lỗi rõ ràng và giới hạn phù hợp với mức sử dụng của dự án. API tốt nhất giúp những chi tiết này dễ hiểu trước khi triển khai.
Trải nghiệm lập trình viên là yếu tố thực tế khác. API thời tiết thường dùng yêu cầu HTTP, nên dự án đã theo mẫu REST API sẽ dễ kiểm thử, gỡ lỗi và tích hợp vào quy trình Linux hơn.
Dữ liệu lịch sử có thể quan trọng không kém dự báo. Nếu dự án so sánh điều kiện quá khứ, xây báo cáo, phân tích mẫu du lịch hoặc nông nghiệp, hoặc kiểm tra tác động thời tiết theo thời gian, hãy chọn API hỗ trợ khoảng ngày và duy trì bản ghi lịch sử nhất quán.
Phạm vi bao phủ nên khớp với địa lý của dự án. API chỉ dành cho Mỹ có thể xuất sắc cho công cụ địa phương, nhưng ứng dụng toàn cầu cần bao phủ dữ liệu quốc tế, xử lý múi giờ và tìm kiếm vị trí đáng tin cậy. API đúng là API phù hợp với công việc thực tế của script mà không thêm phức tạp không cần thiết.
Cách dùng thực tế API thời tiết trong dự án Linux
API thời tiết trở nên hữu ích hơn khi gắn với một tác vụ thực. Người dùng Linux có thể kiểm thử endpoint bằng curl, xem phản hồi bằng jq và lưu đầu ra vào tệp để xử lý sau. Từ đó, cùng dữ liệu có thể cấp cho script, dashboard, báo cáo hoặc cảnh báo.
Một trường hợp phổ biến là script giám sát nhỏ. Máy chủ có thể yêu cầu dữ liệu dự báo theo khoảng định kỳ, trích xuất các giá trị như nhiệt độ, xác suất mưa, tốc độ gió hoặc cảnh báo thời tiết khắc nghiệt, rồi gửi thông báo khi đạt ngưỡng.
API thời tiết cũng hoạt động tốt trong dashboard. Dashboard tự lưu trữ có thể hiển thị điều kiện hiện tại, tóm tắt dự báo hoặc so sánh lịch sử cho một vị trí cụ thể. Điều này hữu ích cho homelab, công cụ doanh nghiệp địa phương, dự án nông nghiệp, ứng dụng lập kế hoạch du lịch và hệ thống IoT.
Dữ liệu thời tiết lịch sử mở ra nhiều quy trình nâng cao hơn. Lập trình viên có thể so sánh điều kiện quá khứ với doanh số, lưu lượng, mức dùng năng lượng, hiệu suất cây trồng hoặc lượng người tham dự sự kiện ngoài trời. Những dự án này cần bản ghi theo ngày nhất quán, không chỉ dự báo đơn giản.
Với tự động hóa, thiết lập tốt nhất thường đơn giản. Giữ API key ngoài script khi có thể, lưu phản hồi để gỡ lỗi, xử lý yêu cầu thất bại sạch sẽ và ghi log đủ thông tin để hiểu chuyện gì xảy ra trong các lần chạy định kỳ. Script thời tiết đáng tin cậy nên thất bại rõ ràng thay vì âm thầm tạo dữ liệu sai.
Lựa chọn thực tế cho dự án Linux dựa trên thời tiết
API thời tiết dễ chọn nhất khi mục tiêu dự án rõ ràng. Dashboard sở thích có thể chỉ cần điều kiện hiện tại và dự báo ngắn. Script Bash có thể cần phản hồi JSON đơn giản để phân tích nhanh. Quy trình báo cáo có thể cần đầu ra CSV, bản ghi lịch sử và truy vấn theo ngày ổn định.
Với hầu hết người dùng Linux và lập trình viên, lựa chọn tốt nhất là lựa chọn khớp với quy trình mà không thêm thiết lập:
- Open-Meteo phù hợp cho thử nghiệm miễn phí và mã nguồn mở.
- OpenWeather và WeatherAPI.com là lựa chọn thực tế cho phát triển ứng dụng tổng quát.
- National Weather Service API hữu ích cho dữ liệu thời tiết công cộng tập trung vào Mỹ.
- Weatherbit, Tomorrow.io và Meteomatics hợp lý khi dự án cần cảnh báo, dữ liệu vận hành hoặc biến thời tiết nâng cao.
- Visual Crossing phù hợp nhất khi dữ liệu lịch sử dẫn dắt dự án. Gói miễn phí bao gồm hơn 50 năm bản ghi lịch sử cùng điều kiện hiện tại và dự báo, hữu ích cho script, dashboard, báo cáo và mọi quy trình so sánh điều kiện quá khứ hoặc theo dõi xu hướng theo thời gian.
Phản hồi sạch, tài liệu hữu ích, giới hạn hợp lý và dữ liệu đáng tin cậy quan trọng hơn một danh sách tính năng dài. Chọn API phù hợp với script, kiểm thử định dạng phản hồi và giữ quy trình đủ đơn giản để chạy ổn định.



