---
title: "Propose a new toilet"
method: POST
path: "/api/v1/submissions"
---

# Propose a new toilet

`POST /api/v1/submissions`

## Request

- Base URL: `https://wcway.com`
- URL: `https://wcway.com/api/v1/submissions`
- Auth: none required

For the web page of this site only. It needs a Turnstile token unless an account is signed in. A moderator reviews the proposal before it goes live.

## Request body

- object
  - `name` string
  - `lat` number, required
  - `lon` number, required
  - `access` 'public' | 'customers' | 'permissive' | 'unknown'
  - `fee` 'free' | 'fee' | 'unknown'
  - `opening_hours` string: OpenStreetMap opening_hours syntax.
  - `wheelchair` 'yes' | 'limited' | 'no' | 'unknown'
  - `changing_table` 'yes' | 'no' | 'unknown'
  - `note` string
  - `turnstile_token` string: Cloudflare Turnstile token from the page of this site. A signed-in account needs none.

## Response `201`

The proposal is saved and waits for a moderator.

- object

## Other responses

- `400`: The body is invalid.
- `403`: The request came from another origin, or the Turnstile check failed.
- `429`: Rate limit reached. Wait Retry-After seconds.
- `503`: Contributions are off.

---

[API](https://skmtc.dev/wcway/apis/wcway-api.md) · [All operations](https://skmtc.dev/wcway/apis/wcway-api/llms.txt) · [OpenAPI document](https://skmtc.dev/wcway/apis/wcway-api/revisions/34f42e2ca0e8?raw)
