REFUGE Restrooms API

Beginner's Pick Transportation / No Auth Required Beginner HTTPS
Free to Use
48 D
Measured Score 0 50 100 Speed 1/30 Consistency 8/20 Security 20/20 Browser access 15/15 Transparency 4/15 TESTED 2026-08-10

Overview

REFUGE Restrooms API helps users find safe, gender-neutral restrooms for transgender, intersex, and gender nonconforming individuals. It requires no authentication, making it easy to integrate into any app. You can search by location coordinates or a text query to return nearby restroom listings.

Beginner Tip

No API key needed — just call the endpoint with latitude and longitude parameters to get nearby restrooms. The /restrooms/by_location endpoint is the most useful starting point.

Measurement Record

What actually happened when we called this API from our own infrastructure. Every value below was recorded by the request, not copied from the provider's documentation.

Request
GET https://www.refugerestrooms.org/api/v1/restrooms/by_location.json?lat=37.7749&lng=-122.4194&per_page=5
Result
HTTP 200 · application/json · 2,756 bytes
Response time
1727 ms (median of 3) · fastest 1097 ms
Transport
TLSv1.3 · TLS_AES_128_GCM_SHA256 · certificate issued by Let's Encrypt
Browser CORS
Allowed — Access-Control-Allow-Origin: *
Served by
Heroku
Recorded
2026-08-10

Fields Returned

Top-level fields present in the response we captured, with the type and value we actually received.

Field Type Value received
id integer 34441
name string #makefrancegreatagain
street string #makefrancegreatagain
city string San Francisco
state string CA
accessible boolean false
unisex boolean false
directions string #makefrancegreatagain
comment string #makefrancegreatagain
latitude number 37.7749295
longitude number -122.4194155
created_at string (date) 2017-04-23T03:00:38.511Z
updated_at string (date) 2020-04-14T21:18:00.637Z
downvote integer 1

Captured Response

Captured from a real request to https://www.refugerestrooms.org/api/v1/restrooms/by_location.json?lat=37.7749&lng=-122.4194&per_page=5 on 2026-08-10. Long arrays and nested objects are truncated to keep the shape readable.

JSON Response · Captured
[
  {
    "id": 34441,
    "name": "#makefrancegreatagain",
    "street": "#makefrancegreatagain",
    "city": "San Francisco",
    "state": "CA",
    "accessible": false,
    "unisex": false,
    "directions": "#makefrancegreatagain",
    "comment": "#makefrancegreatagain",
    "latitude": 37.7749295,
    "longitude": -122.4194155,
    "created_at": "2017-04-23T03:00:38.511Z",
    "updated_at": "2020-04-14T21:18:00.637Z",
    "downvote": 1,
    "…": "(7 more fields)"
  }
]

Field Reference

name Name of the restroom location (e.g., business name or building name)
street Street address of the restroom
city City where the restroom is located
accessible Whether the restroom is ADA accessible for people with disabilities

Implementation Example

Request skeleton. The URL below is this API's documentation page, not a live endpoint — swap in the path you need from the provider's docs before running it.

Request
const url = "https://www.refugerestrooms.org/api/docs/";
const response = await fetch(url);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

How This API Fails

We deliberately sent this API a broken request and recorded exactly what came back on 2026-08-10. Knowing the shape of an error before you hit it makes error handling much easier to write.

HTTP 404 Requesting a path that does not exist text/html

Returned an HTML error page rather than JSON — worth knowing if your client assumes every response can be parsed as JSON.

HTTP 400 Sending an invalid value for "lat" application/json
{
  "error": "lat is invalid"
}

Common Errors & Troubleshooting

Generated guidance based on this API's documentation, not observed by us. Treat it as a starting point and check against the provider's own error reference.

Empty results array No restrooms listed in the database near the requested coordinates
Try a larger city center or check the website to confirm listings exist in the target area
422 Unprocessable Entity Missing or invalid latitude/longitude parameters
Ensure lat and lng are valid decimal numbers (e.g., lat=37.7749&lng=-122.4194)
SSL or HTTPS errors The site uses HTTPS but may have certificate issues in some environments
If testing locally, use curl with --cacert or disable SSL verification temporarily with -k (for dev only)

Measured Score Breakdown

Live HTTP request to the API endpoint

Speed 1/30
Consistency 8/20
Security 20/20
Browser access 15/15
Transparency 4/15
Endpoint Response Time 1727ms

Fully tested on Aug 10, 2026

Technical Specifications

Auth No Auth
HTTPS REQUIRED
CORS UNKNOWN
Category Transportation
Difficulty Beginner
Endpoint last called: 2026-08-10

Related Tags

Similar APIs

View All →