Transportation — entry 026 of 69

REFUGE Restrooms

Verified Jul 2026

REFUGE Restrooms is a nonprofit, crowdsourced directory of gender-neutral and accessible restrooms, letting anyone search or submit locations by latitude/longitude or place name. The keyless REST API (currently listing over 58,000 restrooms) returns JSON with accessibility, unisex, and changing-table flags plus community upvotes/downvotes, and sends `Access-Control-Allow-Origin: *` so it can be called straight from the browser.

REFUGE Restrooms is a nonprofit, crowdsourced directory of gender-neutral and accessible restrooms, built to help transgender, intersex, and gender-nonconforming people find safe facilities. The keyless REST API lets you list, search by text, or search by coordinates over a live dataset of tens of thousands of community-submitted locations, each flagged for accessibility, unisex status, and changing tables.

accessibilitylgbtqnonprofitcrowdsourcedopen-data
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score74out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs0/20No docs or spec available
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 74 on greatapis.com
<a href="https://greatapis.com/api/refuge-restrooms/"><img src="https://greatapis.com/badge/refuge-restrooms.svg" alt="Scored 74 on greatapis.com"></a>

Auth quickstart

  1. No API key required — requests are public and keyless, confirmed on /restrooms, /restrooms/search, and /restrooms/by_location alike.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

List the most recently added restrooms

GEThttps://www.refugerestrooms.org/api/v1/restrooms?per_page=1

200 application/json

[{"id":137418,"name":"Goodwill","street":"3134 5th Street","city":"Lewiston ","state":"Idaho ","accessible":true,"unisex":true,"directions":"On the right past dressing rooms. Single gender neutral bathroom.","comment":"","latitude":46.388671,"longitude":-117.0082183,"created_at":"2026-07-26T00:14:17.784Z","updated_at":"2026-07-26T00:14:17.919Z","downvote":0,"upvote":1,"country":"US","changing_table":false,"edit_id":137418,"approved":true}]

Developer reference

Base URLhttps://www.refugerestrooms.org/api/v1

Gotchas & limits

  • CORS is enabled but only shows up when you actually send an Origin header — a plain curl request with no Origin gets back no Access-Control-Allow-Origin header at all, while adding -H "Origin: https://example.com" returns Access-Control-Allow-Origin: * and Vary: Origin — confirmed live, so testing CORS with a bare curl call (as opposed to an actual browser request) can look broken when it isn't.
  • Pagination is entirely in response headers, not the JSON body — X-Total, X-Total-Pages, X-Page, X-Per-Page, X-Next-Page, and X-Prev-Page all come back on every /restrooms call (confirmed live, X-Total: 58916 at time of writing) — the body itself is a bare array with no meta/total field, so you must read the headers to paginate correctly.
  • Requesting a page past the end doesn't error — ?page=999999&per_page=1 returns 200 with an empty array [] (confirmed live), not a 404 or 400.
  • /restrooms/by_location?lat=&lng= adds two fields not present on the plain /restrooms listing: a distance (fractional, units undocumented — treat as a relative sort key, not a labeled unit) and a bearing in degrees as a string (e.g. "236.46116215155"), confirmed live — don't assume every restroom object has the same shape across endpoints.
  • /restrooms/search?query= does a general text match against name/city/etc. rather than requiring an exact field match — confirmed live with query=coffee matching a restroom named "Coffee Times Coffee House" by substring, so it behaves more like a loose keyword search than a structured filter.