REFUGE Restrooms API
Free REFUGE Restrooms API with no key: crowdsourced safe, accessible and gender-neutral restroom locations worldwide, searchable by coordinates. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the REFUGE Restrooms API?
The REFUGE Restrooms API is a free, key-free API serving a crowdsourced global database of safe restroom locations for transgender, intersex and gender-nonconforming people. Each entry carries coordinates, accessibility and unisex flags, directions and community comments.
REFUGE Restrooms exists to solve a real safety problem, and the API makes that data available to any app that can help. Entries are contributed and rated by the community, and each carries the practical details that matter on arrival: whether the facility is unisex, whether it is wheelchair accessible, whether it has a changing table, and free-text directions for actually finding it inside a building.
For most uses the endpoint you want is `/by_location`, which takes a latitude and longitude and returns nearby entries sorted by distance. The plain listing endpoint used in the example below returns the newest submissions globally, which is useful for understanding the data shape but rarely what an end user needs. Note the `updated_at` timestamps — this is a live, actively contributed dataset, not a static dump.
Quick facts
- Base URL
https://www.refugerestrooms.org/api/v1- Authentication
- No API key or account for reads. The project is open source and volunteer-run.
- Rate limit
- No published limit; reasonable use expected from a small volunteer-run service.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the REFUGE Restrooms API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Fetch the most recently added restroom entries
GET https://www.refugerestrooms.org/api/v1/restrooms?per_page=2
curl 'https://www.refugerestrooms.org/api/v1/restrooms?per_page=2'const res = await fetch("https://www.refugerestrooms.org/api/v1/restrooms?per_page=2");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://www.refugerestrooms.org/api/v1/restrooms?per_page=2", timeout=20)
res.raise_for_status()
print(res.json())[
{
"id": 139354,
"name": "Tumble Laundry",
"street": "625 Treeline Rd Suite B",
"city": "Kalispell ",
"state": "MT",
"accessible": false,
"unisex": true,
"directions": "In the back of the laundromat on the right. Single gender neutral bathroom. ",
"comment": "",
"latitude": 48.2339717,
"longitude": -114.3397648,
"created_at": "2026-08-21T06:21:53.090Z",
"updated_at": "2026-08-21T06:21:53.217Z",
"downvote": 0,
"upvote": 0,
"country": "US",
"changing_table": false,
"edit_id": 139354,
"approved": true
},
{
"id": 139353,
"name": "Sable Coffee",
"street": "625 Treeline Rd Suite C",
"city": "Kalispell ",
"state": "Mt ",
"accessible": false,
"unisex": false,
"directions": "In the door, make a left heading towards the fireplace. The bathrooms are in a hallway to the right. Single-stall gendered rooms, but clean and well maintained. ",
"comment": "",
"latitude": 48.2337938,
"longitude": -114.3397282,
"created_at": "2026-08-21T06:19:46.210Z",
"updated_at": "2026-08-21T06:19:46.335Z",
"downvote": 0,
"upvote": 0,
"country": "US",
"changing_table": false,
"edit_id": 139353,
"approved": true
}
]Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
per_page | query | Optional | How many results to return per page. Defaults to 10. 2 |
page | query | Optional | Page number for pagination. 1 |
lat / lng | query | Optional | On the `/restrooms/by_location` endpoint, the point to search around. Results come back sorted by distance. 48.2339 |
query | query | Optional | On the `/restrooms/search` endpoint, a free-text search across name, street and city. library |
ada | query | Optional | Restrict to entries flagged as ADA accessible. true |
unisex | query | Optional | Restrict to unisex or gender-neutral facilities. true |
Response fields
idinteger- Entry identifier.
namestring- Venue name, as submitted by a contributor.
street / city / state / countrystring- Address components. Contributor-entered, so expect stray whitespace and inconsistent casing.
latitude / longitudefloat- Coordinates, which is what the by-location search sorts on.
accessibleboolean- Whether the facility is wheelchair accessible.
unisexboolean- Whether it is gender-neutral or single-occupancy.
changing_tableboolean- Whether a changing table is available.
directionsstring- Free-text directions for finding it inside the building — often the most useful field in the record.
upvote / downvoteinteger- Community ratings, a rough proxy for whether the entry is accurate and still current.
What you can build with the REFUGE Restrooms API
- Add a nearby-restroom finder to a travel or accessibility app
- Build a map layer of safe and accessible facilities for a city guide
- Show accessible options filtered by wheelchair access or changing table
- Support a campus or venue wayfinding tool
Common errors and how to fix them
Empty array
No entries near the requested coordinates.
Fix: Coverage is dense in some cities and sparse elsewhere, because the data is crowdsourced. Widen the search or fall back to a text search on the city.
Messy address fields
Not an error — fields are contributor-entered free text.
Fix: Trim whitespace and normalise casing before display. Entries like "Kalispell " with a trailing space are common.
Stale entry
A venue closed or changed since the entry was added.
Fix: Weigh `upvote` against `downvote` and check `updated_at` before presenting an entry as reliable.
REFUGE Restrooms API — frequently asked questions
Is the REFUGE Restrooms API free?
Yes, free with no API key for read access. It is an open-source, volunteer-run project, so keep request volumes reasonable.
How do I find restrooms near a location?
Use the `by_location` endpoint with `lat` and `lng` parameters. It returns nearby entries sorted by distance, which is what an end-user-facing app needs — the plain listing endpoint returns the newest global submissions instead.
How reliable is the data?
It is crowdsourced, so quality varies by area. Each entry carries upvote and downvote counts and an `updated_at` timestamp; weigh those before presenting an entry as current, and expect denser coverage in major cities.
Can I filter for wheelchair-accessible restrooms?
Yes. The `ada` parameter restricts results to entries flagged as accessible, and `unisex` filters to gender-neutral facilities. Both flags are also returned on every record so you can filter client-side.
Tools that pair with this API
JSON to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Unit Converter
Convert between units of length, weight, temperature, area, volume, speed, time and data storage instantly, with a swap button and common conversion tables.
REFUGE Restrooms is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.