💻 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))
← Back to Developer Hub