BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://www.refugerestrooms.org/api/v1/restrooms?per_page=2'
JavaScript (fetch)
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);
Python (requests)
import requests

res = requests.get("https://www.refugerestrooms.org/api/v1/restrooms?per_page=2", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
[
  {
    "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

ParameterTypeRequiredDescription
per_pagequeryOptionalHow many results to return per page. Defaults to 10. 2
pagequeryOptionalPage number for pagination. 1
lat / lngqueryOptionalOn the `/restrooms/by_location` endpoint, the point to search around. Results come back sorted by distance. 48.2339
queryqueryOptionalOn the `/restrooms/search` endpoint, a free-text search across name, street and city. library
adaqueryOptionalRestrict to entries flagged as ADA accessible. true
unisexqueryOptionalRestrict 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

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.