Overview

The REFUGE Restrooms project offers an API and a web application designed to help individuals, particularly transgender, intersex, and gender non-conforming people, locate safe and accessible restrooms. Founded in 2015, the initiative addresses a critical need for inclusive public spaces by providing a crowdsourced database of facilities that meet specific safety criteria. The API enables developers to integrate this directory into their own applications, supporting a range of uses from simple restroom locators to more complex community resource platforms and advocacy tools.

The API operates on a RESTful architecture, delivering data in JSON format. It facilitates searches based on geographic coordinates, allowing users to find restrooms within a specified radius. Each restroom entry includes details such as location, accessibility features (e.g., wheelchair accessible, gender-neutral), hours of operation, and user-submitted notes. This granular data supports users in making informed decisions about which facilities best meet their needs. The project's emphasis on user contributions ensures that the database remains current and relevant, reflecting real-world experiences and community input.

For developers, the REFUGE Restrooms API is particularly well-suited for social impact projects, non-profit initiatives, and educational applications. Its full API access free tier removes financial barriers for organizations and individuals looking to contribute to public good. Implementations can range from mobile applications that guide users to the nearest safe restroom to web services that map out inclusive spaces in a given city. The API's straightforward design and clear documentation support rapid development, making it accessible even for teams with limited resources. By leveraging this API, developers can contribute to creating more welcoming and equitable environments for marginalized communities, aligning with broader goals of digital accessibility and social justice.

While the primary focus is on gender-inclusive restrooms, the data can also be beneficial for other groups seeking specific restroom amenities, such as parents looking for family restrooms or individuals with disabilities requiring accessible facilities. The crowdsourcing model, where users can submit new restrooms and report issues, ensures that the database is continuously updated and verified by the community itself. This collaborative approach enhances the reliability and utility of the service, distinguishing it as a valuable public service API.

Key features

  • Restroom Search by Location: Query facilities based on latitude and longitude, with customizable radius settings to find nearby restrooms.
  • Detailed Restroom Information: Access attributes such as address, operating hours, gender-neutral status, wheelchair accessibility, and user comments for each listing.
  • Crowdsourced Database: Data is continuously updated and expanded through community submissions, ensuring relevance and coverage.
  • RESTful API Design: Utilizes standard HTTP methods and returns JSON responses, facilitating integration with various programming languages and platforms.
  • Filtering Capabilities: Filter search results by specific criteria like gender-neutrality or accessibility features to refine user searches.
  • Free Full API Access: Provides complete access to all API functionalities without requiring payment, suitable for non-commercial and public service applications.

Pricing

As of 2026-05-28, the REFUGE Restrooms API offers full access free of charge. There are no paid tiers or usage limits documented for the API's core functionality, supporting its use in public service and non-profit contexts. For the most current details, refer to the REFUGE Restrooms API documentation.

Plan Features Price (USD)
Community Access Full API access, search by location, detailed restroom data, crowdsourced updates Free

Common integrations

  • Mobile Applications: Integrate restroom search capabilities into iOS and Android apps for on-the-go access.
  • Web Mapping Services: Combine with mapping platforms like the Google Maps JavaScript API or ArcGIS API for JavaScript to visualize restroom locations.
  • Community Resource Platforms: Embed the API into websites or applications that provide broader support and information for LGBTQ+ communities.
  • Advocacy Tools: Utilize data for research, policy advocacy, or to highlight areas with limited inclusive facilities.
  • Smart City Initiatives: Incorporate into urban planning dashboards or public service directories to enhance accessibility for residents and visitors.

Alternatives

  • Flush Toilet Finder: A mobile application and database focused on general public restrooms, often including accessibility filters.
  • Where to Wee: A community-driven platform for finding public toilets, with a focus on usability and user contributions.
  • OpenStreetMap (OSM): Contains extensive data on points of interest, including public toilets, which can be queried via its API, as detailed in the OSM Wiki on amenity=toilets.
  • Google Maps Places API: Can be used to search for public restrooms, though it may not have specific filters for gender-neutral or trans-inclusive facilities.

Getting started

To begin using the REFUGE Restrooms API, you can make a simple HTTP GET request to its endpoint. The API does not require an API key for basic access. Below is an example using Python's requests library to fetch a list of restrooms near a specified location.

import requests

# Define the base URL for the API
BASE_URL = "https://www.refugerestrooms.org/api/v1/restrooms"

# Define search parameters (e.g., latitude, longitude, and search radius)
# Example: Searching near San Francisco's Golden Gate Park
params = {
    "lat": 37.76999,
    "lng": -122.46653,
    "per_page": 10, # Number of results per page
    "page": 1 # Page number
}

try:
    response = requests.get(BASE_URL, params=params)
    response.raise_for_status() # Raise an exception for HTTP errors

    restrooms = response.json()

    if restrooms:
        print(f"Found {len(restrooms)} restrooms near ({params['lat']}, {params['lng']}):\n")
        for restroom in restrooms:
            print(f"Name: {restroom.get('name', 'N/A')}")
            print(f"Address: {restroom.get('street', 'N/A')}, {restroom.get('city', 'N/A')}, {restroom.get('state', 'N/A')} {restroom.get('zip', 'N/A')}")
            print(f"Gender Neutral: {restroom.get('unisex', 'N/A')}")
            print(f"Accessible: {restroom.get('accessible', 'N/A')}")
            print(f"Directions: {restroom.get('directions', 'N/A')}")
            print("---")
    else:
        print("No restrooms found for the specified location and radius.")

except requests.exceptions.HTTPError as http_err:
    print(f"HTTP error occurred: {http_err}")
except requests.exceptions.ConnectionError as conn_err:
    print(f"Connection error occurred: {conn_err}")
except requests.exceptions.Timeout as timeout_err:
    print(f"Timeout error occurred: {timeout_err}")
except requests.exceptions.RequestException as req_err:
    print(f"An unexpected error occurred: {req_err}")

This Python script sends a GET request to the REFUGE Restrooms API with latitude and longitude parameters. It then parses the JSON response and prints details for each found restroom, including its name, address, and whether it is gender-neutral or accessible. You can adapt the lat and lng parameters to search for restrooms in any location.