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

# Delete journey

> Permanently delete a journey by its UUID. Deletion cannot be undone; archive a running journey instead if you need to keep its data.

<Info>
  **Beta.** The Journeys API is in beta. Endpoints and response fields can still change.
</Info>

## Overview

Permanently delete a [Journey](/docs/en/journeys-overview) by its UUID.

<Danger>
  Deletion is permanent and cannot be undone. It removes the journey and all associated data: stats, message reports, and audience activity data are lost, and users in flight stop progressing through it.
</Danger>

To stop a running journey without losing its data, archive it instead: send `state: "archived"` with [Update journey](/reference/update-journey). Archiving halts all user progress. An archived journey can still be read through [View journey](/reference/view-journey), but it cannot resume sending or be edited. See [Managing Journeys](/docs/en/managing-journeys) for the dashboard equivalent.

***

## How to use this API

Authenticate with your [App API Key](/docs/en/keys-and-ids). The authenticated key must have permission to delete journeys. Find a journey's `id` from the [View journeys](/reference/view-journeys) API or in the dashboard URL.

```http theme={null}
DELETE /apps/{app_id}/journeys/{id}
```

## Response

A successful request returns `200 OK` with a confirmation body:

```json theme={null}
{
  "success": true
}
```

### Error responses

| Status | Code                   | Description                                                                                                                             |
| ------ | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| 403    | `journey-not-entitled` | Journeys are not enabled for this app.                                                                                                  |
| 404    | `journey-not-found`    | No journey with that `id` exists for this app.                                                                                          |
| 429    |                        | Rate limit exceeded. Wait the number of seconds in the `Retry-After` header before retrying. See [Rate limits](/reference/rate-limits). |

Coded errors use the shape `{ "errors": [{ "code", "title", "meta" }] }`.


## OpenAPI

````yaml DELETE /apps/{app_id}/journeys/{id}
openapi: 3.1.0
info:
  title: api.onesignal.com
  version: '11.6'
servers:
  - url: https://api.onesignal.com
security:
  - {}
paths:
  /apps/{app_id}/journeys/{id}:
    delete:
      summary: Delete journey
      description: >-
        Permanently delete a journey by its UUID. Returns `{ "success": true }`
        on success. The authenticated App API key must have permission to delete
        journeys. Deleting a journey stops any in-flight users and cannot be
        undone.
      operationId: delete-journey
      parameters:
        - name: app_id
          in: path
          description: >-
            Your OneSignal App ID in UUID v4 format. See [Keys &
            IDs](/docs/en/keys-and-ids).
          schema:
            type: string
            default: YOUR_APP_ID
          required: true
        - name: id
          in: path
          description: UUID of the journey to delete.
          required: true
          schema:
            type: string
            default: YOUR_JOURNEY_ID
        - name: Authorization
          in: header
          description: >-
            Your App API key with prefix `Key `. See [Keys &
            IDs](/docs/en/keys-and-ids).
          required: true
          schema:
            type: string
            default: Key YOUR_APP_API_KEY
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: '`true` when the journey was deleted.'
              example:
                success: true
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JourneyCodedErrorResponse'
              example:
                errors:
                  - code: journey-not-entitled
                    title: Journeys are not enabled for this app
                    meta: {}
        '404':
          description: '404'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JourneyCodedErrorResponse'
              example:
                errors:
                  - code: journey-not-found
                    title: Journey not found
                    meta: {}
        '429':
          description: '429'
          headers:
            Retry-After:
              description: >-
                Number of seconds to wait before retrying the request. Always
                emitted on 429 responses.
              schema:
                type: integer
                minimum: 0
components:
  schemas:
    JourneyCodedErrorResponse:
      type: object
      description: Error response with a stable machine-readable `code`.
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: >-
                  Stable, kebab-case error identifier. Does not change once
                  shipped.
              title:
                type: string
                description: Human-readable message. Wording may change between releases.
              meta:
                type: object
                description: Optional structured context. Shape varies by error.

````