> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cyclemate.club/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete a route

> Delete a route you host, with its images

## Overview

Deletes the route, its stops, its images and its RSVPs, and answers `204` with no body. Hosts only.

### Authentication

A [Login with Cyclemate](https://docs.cyclemate.club/api-reference/oauth.md) access token, or a signed-in rider's session token. Every route belongs to a rider: your app acts for the rider who connected it, and the route is theirs. Your app reaches only the routes it created: a route the rider made in our apps, or through another app, answers `404`.

```
Authorization: Bearer ACCESS_TOKEN
```

An API key on its own is rejected, as are anonymous requests. To create routes as your organisation, sign up for a Cyclemate account and connect your app to it with Login with Cyclemate.

### Rate limits

Riders and apps acting for them may make **60 requests a minute**; a request that routes between `stops` counts once per hop. Every rider may create **10 routes in any 24 hours**, counted across our apps and every connected app: the eleventh answers `429` with `code: "daily_limit"` and the seconds until a slot frees.

## Path parameters

**id** `string` *required*

The route's id.

## Response body

No body. The status is `204`.

```bash cURL theme={null}
curl -X DELETE 'https://api.cyclemate.club/custom-routes/78360cf7-0f4a-48f1-91ca-25e83db44aff/' \
  -H 'Authorization: Bearer ACCESS_TOKEN'
```

```text Response theme={null}
204 No Content
```

## Variants

### Rides already recorded

A rider's recorded rides on the route are kept; they simply no longer link to it.

## Error responses

Every error body is `{ "error", "code" }`; `error` is a sentence, `code` is stable.

### 400 Bad request

Invalid body or query: the message names the field. `code` is `invalid_body`, or for a route input `outside_coverage` (the route starts outside the cities we cover), `cross_city` (its stops span two cities) or `no_route` (no cycling route exists between two stops).

```json theme={null}
{ "error": "unknown field: colour", "code": "invalid_body" }
```

### 401 Unauthorized

Missing or invalid credentials, or an anonymous caller.

```json theme={null}
{ "error": "Missing user credentials" }
```

### 404 Not found

No route with that id that you may see. A private route you do not host, a route you may read but not edit, and a route your app did not create all answer `404`, never `403`.

```json theme={null}
{ "error": "Custom route not found", "code": "not_found" }
```

### 405 Method not allowed

```json theme={null}
{ "error": "Method not allowed", "code": "method_not_allowed" }
```

### 429 Too many requests

The burst limit, with a `Retry-After` header; or the daily creation cap, which adds `code: "daily_limit"`.

```json theme={null}
{ "error": "Daily limit of 10 custom routes reached", "code": "daily_limit", "retry_after_seconds": 3600 }
```

### 500 Internal server error

```json theme={null}
{ "error": "Internal server error", "code": "internal_error" }
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.