Para desarrolladores: consulte los datos a través de la API REST
La API de CalHeatScore API es un servicio público de entidades de ArcGIS. No se requiere clave de API, token ni cuenta: se pueden realizar consultas de inmediato.
URL base:
https://services1.arcgis.com/PCHfdHz4GlDNAhBb/arcgis/rest/services/CalHeatScore_Live_Data_for_API_Use/FeatureServer/0/query
Haga su primera solicitud
Obtenga el pronóstico a 7 días con puntajes de calor para un único código postal:
curl "https://services1.arcgis.com/PCHfdHz4GlDNAhBb/arcgis/rest/services/CalHeatScore_Live_Data_for_API_Use/FeatureServer/0/query?where=ZIP_CODE='95814'&outFields=ZIP_CODE,DATE,CHS_Day_0,CHS_Day_1,CHS_Day_2,CHS_Day_3,CHS_Day_4,CHS_Day_5,CHS_Day_6&returnGeometry=false&f=json"
import requests
BASE_URL = (
"https://services1.arcgis.com/PCHfdHz4GlDNAhBb/arcgis/rest/services/"
"CalHeatScore_Live_Data_for_API_Use/FeatureServer/0/query"
)
params = {
"where": "ZIP_CODE='95814'",
"outFields": "ZIP_CODE,DATE,CHS_Day_0,CHS_Day_1,CHS_Day_2,CHS_Day_3,CHS_Day_4,CHS_Day_5,CHS_Day_6",
"returnGeometry": "false",
"f": "json",
}
response = requests.get(BASE_URL, params=params)
data = response.json()
# Check for API errors (ArcGIS returns HTTP 200 even for errors)
if "error" in data:
print(f"Error: {data['error']['message']}")
else:
for feature in data["features"]:
attrs = feature["attributes"]
# Scores are strings — convert to int for comparisons
score_today = int(attrs["CHS_Day_0"])
print(f"ZIP {attrs['ZIP_CODE']}: score today = {score_today}")
const baseUrl =
"https://services1.arcgis.com/PCHfdHz4GlDNAhBb/arcgis/rest/services/" +
"CalHeatScore_Live_Data_for_API_Use/FeatureServer/0/query";
const params = new URLSearchParams({
where: "ZIP_CODE='95814'",
outFields: "ZIP_CODE,DATE,CHS_Day_0,CHS_Day_1,CHS_Day_2,CHS_Day_3,CHS_Day_4,CHS_Day_5,CHS_Day_6",
returnGeometry: "false",
f: "json",
});
fetch(`${baseUrl}?${params}`)
.then((res) => res.json())
.then((data) => {
// Check for API errors (ArcGIS returns HTTP 200 even for errors)
if (data.error) {
console.error(`Error: ${data.error.message}`);
return;
}
data.features.forEach((feature) => {
const attrs = feature.attributes;
// Scores are strings — convert to number for comparisons
const scoreToday = Number(attrs.CHS_Day_0);
console.log(`ZIP ${attrs.ZIP_CODE}: score today = ${scoreToday}`);
});
})
.catch((err) => console.error("Request failed:", err));
Cosas importantes que saber
- No se necesita autenticación. La API es abierta y con acceso de solo de lectura.
- Los puntajes son cadenas de texto. Convierta
CHS_Day_0hastaCHS_Day_6a números enteros antes de hacer comparaciones numéricas. - Máximo de 2,000 registros por solicitud. Sin embargo, esto no debería ser un problema ya que hay menos de 2,000 códigos postales en California.
- Utilice el ajuste
returnGeometry=falsecuando solo necesite datos de los puntajes. Las coordinadas del polígono aumentan significativamente el tamaño de la respuesta. - Los datos se actualizan a diario. Los datos se actualizan dos veces al día, a las 5:00 AM y 8:00 AM, hora del Pacífico.
- Formatos de respuestas: JSON (
f=json), GeoJSON (f=geojson) o Protocol Buffers (f=pbf).
Los servicios de entidades de ArcGIS devuelven un código HTTP 200 aún para errores. Verifique siempre si existe una propiedad de error en el cuerpo de la respuesta antes de procesar los resultados.