💻 Code Examples
Real-world examples in Python, JavaScript, TypeScript, React, and curl.
All examples use the free public API at https://urgentcaremap.health/api/v1
1. Find clinics in a city
curl:
curl https://urgentcaremap.health/api/v1/clinics/massachusetts/boston.json
Python (requests):
import requests
def find_clinics(state, city):
url = f"https://urgentcaremap.health/api/v1/clinics/{state}/{city}.json"
response = requests.get(url)
response.raise_for_status()
return response.json()["clinics"]
clinics = find_clinics("massachusetts", "boston")
for c in clinics:
print(f"{c['name']} — {c['phone']} — {c['address']}")
TypeScript:
type Clinic = {
id: string;
name: string;
network: string | null;
address: string;
phone: string;
rating: number;
url: string;
};
async function findClinics(state: string, city: string): Promise<Clinic[]> {
const res = await fetch(
`https://urgentcaremap.health/api/v1/clinics/${state}/${city}.json`
);
const data = await res.json();
return data.clinics;
}
const clinics = await findClinics('massachusetts', 'boston');
console.log(`Found ${clinics.length} urgent care clinics in Boston`);
2. Find nearest clinic by coordinates
import requests
from math import radians, sin, cos, sqrt, atan2
def haversine(lat1, lon1, lat2, lon2):
R = 6371 # Earth radius in km
dlat = radians(lat2 - lat1)
dlon = radians(lon2 - lon1)
a = sin(dlat/2)**2 + cos(radians(lat1)) * cos(radians(lat2)) * sin(dlon/2)**2
return 2 * R * atan2(sqrt(a), sqrt(1-a))
def find_nearest(lat, lon, state, city):
url = f"https://urgentcaremap.health/api/v1/clinics/{state}/{city}.json"
clinics = requests.get(url).json()["clinics"]
for c in clinics:
if c["coordinates"]:
clat, clon = map(float, c["coordinates"].split(","))
c["distance_km"] = haversine(lat, lon, clat, clon)
return sorted(clinics, key=lambda x: x.get("distance_km", float("inf")))
# Find nearest urgent care to Fenway Park
nearest = find_nearest(42.3467, -71.0972, "massachusetts", "boston")[:3]
for c in nearest:
print(f"{c['name']} — {c.get('distance_km', 0):.1f} km away")
3. Get site-wide statistics
import requests
stats = requests.get("https://urgentcaremap.health/api/v1/stats.json").json()
print(f"Total clinics: {stats['coverage']['total_clinics']:,}")
print(f"Cities: {stats['coverage']['total_cities']}")
print(f"States: {stats['coverage']['total_states']}")
print(f"Average rating: {stats['data_quality']['average_rating']}")
print(f"Open 24h: {stats['data_quality']['clinics_open_24h']}")
4. React component
import { useState, useEffect } from 'react';
export function UrgentCareList({ state, city }) {
const [clinics, setClinics] = useState([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
fetch(`https://urgentcaremap.health/api/v1/clinics/${state}/${city}.json`)
.then(r => r.json())
.then(data => {
setClinics(data.clinics);
setLoading(false);
});
}, [state, city]);
if (loading) return <div>Loading...</div>;
return (
<ul>
{clinics.map(c => (
<li key={c.id}>
<a href={c.url}>{c.name}</a> — {c.phone}
{c.rating && ` (★ ${c.rating})`}
</li>
))}
</ul>
);
}
// Usage:
// <UrgentCareList state="massachusetts" city="boston" />
5. Pandas dataset analysis
import pandas as pd
import requests
# Load all cities, then fetch clinics in parallel
cities = requests.get("https://urgentcaremap.health/api/v1/cities.json").json()["cities"]
all_clinics = []
for city in cities:
data = requests.get(city["api_url"]).json()
for clinic in data["clinics"]:
clinic["city"] = city["slug"]
clinic["state"] = city["state"]
all_clinics.append(clinic)
df = pd.DataFrame(all_clinics)
print(f"Total clinics: {len(df)}")
# Top networks by clinic count
print(df["network"].value_counts().head(10))
# Average rating by state
print(df.groupby("state")["rating"].mean().sort_values(ascending=False).head(10))