← User guide

API reference

All endpoints are public, unauthenticated, CC BY-NC-SA 4.0 with attribution. No key required. Built fresh on every push to the repo. CDN-cached at the edge. Read-only.

Base URL

https://ambulance.saralcare.com/v1/

Endpoints

GET /v1/providers.json

All providers, slim shape. Sorted alphabetically by brand name.

Example response (truncated)
{
  "generated_at": "2026-05-12T10:00:00.000Z",
  "license": "CC-BY-NC-SA-4.0",
  "attribution": "Saralcare ambulance directory project (https://ambulance.saralcare.com)",
  "count": 60,
  "providers": [
    {
      "id": "red-health-bangalore",
      "brand_name": "RED.Health",
      "legal_name": "StanPlus Technologies Private Limited (RED.Health)",
      "type": "private-aggregator",
      "phone_24h": "+91 91149 11911",
      "website": "https://www.red.health",
      "hq_lat_lng": [12.9716, 77.5946],
      "service_areas": { "type": "pincode-list", "pincodes": ["560001", ...] },
      "fleet_count_claimed": null,
      "fares": null,
      "affiliations_count": 0,
      "status": "unverified",
      "badge": "unverified",
      "last_verified_at": null,
      "reports": { "count": 0 }
    },
    ...
  ]
}
GET /v1/providers/<id>.json

One provider, full record including sources, call logs, hospital affiliations, fares, and recent reports.

Example: /v1/providers/red-health-bangalore.json

GET /v1/hospitals.json

All hospitals with affiliation pointers.

GET /v1/hospitals/<id>.json

One hospital, full record.

GET /v1/by-pincode/<pin>.json

All providers whose declared service area includes the given pincode.

Example: /v1/by-pincode/560076.json

GET /v1/reports/<provider-id>.json

Aggregated user reports for one provider — answer rate, dispatch rate, median response time, fare dispersion.

GET /v1/freshness.json

Dataset-wide verification status counts.

GET /v1/activity.json

Categorised commit feed (verify, claim, correct, report, new, dispute, takedown, dead-number, schema, code, doc).

GET /v1/changelog.json

Last 100 commits with hash, date, author, subject.

GET /v1/mirrors.json

Federation manifest — canonical, known mirrors, regional forks.

Schemas

Code examples

curl

# Fetch all providers
curl -s https://ambulance.saralcare.com/v1/providers.json

# Filter for verified Bangalore-area records
curl -s https://ambulance.saralcare.com/v1/by-pincode/560076.json | jq '.providers[] | select(.badge == "verified")'

# Get one record's full data including sources
curl -s https://ambulance.saralcare.com/v1/providers/red-health-bangalore.json

JavaScript (browser fetch)

const res = await fetch("https://ambulance.saralcare.com/v1/by-pincode/560076.json");
const { providers } = await res.json();
const verified = providers.filter(p => p.badge === "verified");
console.log(`${verified.length} verified providers in 560076`);

Python

import requests

# All providers
data = requests.get("https://ambulance.saralcare.com/v1/providers.json").json()
print(f"{data['count']} providers, attributed to: {data['attribution']}")

# Affiliations graph
import csv
affil_csv = requests.get(
    "https://github.com/Ashwask/SaralcareAmbulanceservices/raw/main/data/affiliations/edges.csv"
).text
edges = list(csv.DictReader(affil_csv.splitlines()))

Rate limits

None for read endpoints. The site is CDN-cached at the edge, so reads are effectively free for us. If you plan to fetch the dataset on a schedule, please:

The submission endpoint (POST via the Cloudflare Worker for contributions) is rate-limited to 10 submissions per hour per IP.

Versioning

The API path is prefixed /v1/. Breaking changes to schemas land in /v2/ with at least 90 days of overlap. Field additions (non-breaking) land in /v1/ with a CHANGELOG entry. Schemas follow semver; the current schema version is recorded in SCHEMA.md.

Attribution (required for any use)

Source: Saralcare Ambulance Directory (https://ambulance.saralcare.com),
CC BY-NC-SA 4.0.

For derivative datasets, append: "Modified from the source. Changes: [brief description]."

Commercial use

Free for any non-commercial use under CC BY-NC-SA 4.0. Commercial use requires a separate bilateral licence — email ashwinsk@saralcare.com. No published price list, no self-serve.

Source of truth

The canonical source is the YAML data under data/ in the GitHub repo. The JSON API is a derived artefact built fresh on every push. If you need pristine source data including provenance, sources, and call logs, fetch the raw YAML.

See also: user guide · license · no-marketing policy.