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.jsonAll 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>.jsonOne provider, full record including sources, call logs, hospital affiliations, fares, and recent reports.
GET /v1/hospitals.jsonAll hospitals with affiliation pointers.
GET /v1/hospitals/<id>.jsonOne hospital, full record.
GET /v1/by-pincode/<pin>.jsonAll providers whose declared service area includes the given pincode.
Example: /v1/by-pincode/560076.json
GET /v1/reports/<provider-id>.jsonAggregated user reports for one provider — answer rate, dispatch rate, median response time, fare dispersion.
GET /v1/freshness.jsonDataset-wide verification status counts.
GET /v1/activity.jsonCategorised commit feed (verify, claim, correct, report, new, dispute, takedown, dead-number, schema, code, doc).
GET /v1/changelog.jsonLast 100 commits with hash, date, author, subject.
GET /v1/mirrors.jsonFederation manifest — canonical, known mirrors, regional forks.
Schemas
provider.schema.json— JSON Schema 2020-12 for ambulance provider records.hospital.schema.jsonvehicle.schema.json— optional sub-records under a provider.report.schema.json— user-submitted call experience reports.mirrors.schema.json
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:
- Cache locally and refresh once an hour at most.
- Set a
User-Agentheader identifying your application + contact email (so we can reach you if we see your traffic).
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.