---
openapi: 3.0.3
info:
  title: Braze REST API – Delete scheduled API-triggered Canvases
  description: |
    ## Prerequisites

    To use this endpoint, you'll need an [API key]({{site.baseurl}}/api/basics#rest-api-key-permissions) with the `canvas.trigger.schedule.delete` permission.

    ## Rate limit

    We apply the default Braze rate limit of 250,000 requests per hour to this endpoint, as documented in [API rate limits]({{site.baseurl}}/api/api_limits/).
  version: 1.0.0
  contact:
    name: Braze Support
    url: https://www.braze.com/docs/braze_support/
  license:
    name: Braze Documentation
    url: https://www.braze.com/docs/api/home/
servers:
  - url: https://rest.iad-01.braze.com
    description: US-01
  - url: https://rest.iad-02.braze.com
    description: US-02
  - url: https://rest.iad-03.braze.com
    description: US-03
  - url: https://rest.iad-04.braze.com
    description: US-04
  - url: https://rest.iad-05.braze.com
    description: US-05
  - url: https://rest.iad-06.braze.com
    description: US-06
  - url: https://rest.iad-07.braze.com
    description: US-07
  - url: https://rest.iad-08.braze.com
    description: US-08
  - url: https://rest.us-10.braze.com
    description: US-10
  - url: https://rest.fra-01.braze.eu
    description: EU-01
  - url: https://rest.fra-02.braze.eu
    description: EU-02
  - url: https://rest.au-01.braze.com
    description: AU-01
  - url: https://rest.id-01.braze.com
    description: ID-01
  - url: https://rest.jp-01.braze.com
    description: JP-01
  - url: https://rest.kr-01.braze.com
    description: KR-01
security:
- BearerAuth: []
paths:
  "/canvas/trigger/schedule/delete":
    post:
      summary: Delete scheduled API-triggered Canvases
      operationId: post_canvas_trigger_schedule_delete_post_delete_scheduled_triggered_canvases
      requestBody:
        required: true
        description: Note that this is a `POST` request, even though the path ends in `/delete`.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteScheduledTriggeredCanvasesRequest'
            examples:
              delete_schedule:
                summary: Delete a scheduled Canvas
                value:
                  canvas_id: canvas_identifier
                  schedule_id: schedule_identifier
      responses:
        "201":
          description: |
            The request was accepted and the scheduled Canvas was deleted. No action needed.

            If the Canvas is archived or paused, the response also includes a `notice` field. If the Canvas is archived, you see this `notice` message: "The Canvas is archived. Unarchive the Canvas to ensure trigger requests will take effect." If the Canvas is paused, you see this `notice` message: "The Canvas is paused. Resume the Canvas to ensure trigger requests will take effect."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteScheduledTriggeredCanvasesResponse'
              examples:
                success:
                  summary: Schedule deleted
                  value:
                    message: success
                paused:
                  summary: Schedule deleted for a paused Canvas
                  value:
                    notice: The Canvas is paused. Resume the Canvas to ensure trigger requests will take effect.
                    message: success
        "400":
          description: |
            Bad request. To resolve it:

            - **The `canvas_id` is missing or isn't a string:** Pass a valid `canvas_id` string. Find it with the [Export Canvas list endpoint]({{site.baseurl}}/api/endpoints/export/canvas/get_canvases/).
            - **The `schedule_id` is missing or isn't a string:** Pass the `schedule_id` returned when you created the schedule.
            - **`segment_id` isn't supported on this endpoint:** Remove `segment_id` from the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid_canvas_id:
                  summary: The canvas_id is missing or isn't a string
                  value:
                    message: canvas_id must be a string of the Canvas api identifier
                invalid_schedule_id:
                  summary: The schedule_id is missing or isn't a string
                  value:
                    message: "'schedule_id' must be a valid identifier of a schedule object"
                segment_id_not_supported:
                  summary: segment_id isn't supported
                  value:
                    message: "'segment_id' is not supported on this endpoint"
        "401":
          description: |
            Unauthorized. The REST API key is missing, malformed, or sent to the wrong REST endpoint. Send the key as `Authorization: Bearer YOUR_REST_API_KEY` to the correct [REST endpoint]({{site.baseurl}}/api/basics/#endpoints). For more causes, see [Errors and responses]({{site.baseurl}}/api/errors/#fatal-errors).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid_api_key:
                  summary: Invalid API key
                  value:
                    message: 'Invalid API key: YOUR_REST_API_KEY'
        "403":
          description: Access denied. The REST API key doesn't have the required permission. Use a REST API key that has the `canvas.trigger.schedule.delete` permission.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                access_denied:
                  summary: Missing permission
                  value:
                    message: Access Denied
        "429":
          description: |
            Rate limited. You exceeded the rate limit for this endpoint. Slow your request rate and retry with exponential backoff. See [API rate limits]({{site.baseurl}}/api/api_limits/).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                over_rate_limit:
                  summary: Over rate limit
                  value:
                    message: You have exceeded your limit of 250000 requests per hour. Please contact your account executive to increase your limit. If you do not have their info, you may contact Braze directly at https://www.braze.com/contact/.
        5XX:
          description: |
            Internal server error. An unexpected error occurred on the Braze server. Retry with exponential backoff. If the error persists, contact [Support]({{site.baseurl}}/braze_support/).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: REST API key
      description: |
        REST API keys are created in the Braze dashboard at **Settings → APIs and
        Identifiers → API Keys**. The key must include the `canvas.trigger.schedule.delete` permission.
        Pass the key as `Authorization: Bearer YOUR_REST_API_KEY`.
  schemas:
    DeleteScheduledTriggeredCanvasesRequest:
      title: Delete scheduled API-triggered Canvas request
      type: object
      required: [canvas_id, schedule_id]
      properties:
        canvas_id:
          type: string
          description: See [Canvas identifier]({{site.baseurl}}/api/identifier_types/).
          example: canvas_identifier
        schedule_id:
          type: string
          description: The `schedule_id` to delete (obtained from the response to create schedule).
          example: schedule_identifier
    DeleteScheduledTriggeredCanvasesResponse:
      title: Delete scheduled API-triggered Canvas response
      type: object
      properties:
        notice:
          type: string
          description: Included when the Canvas is archived or paused.
          example: The Canvas is paused. Resume the Canvas to ensure trigger requests will take effect.
        message:
          type: string
          example: success
    ErrorResponse:
      title: Error
      type: object
      properties:
        message:
          type: string
          description: The error message describing why the request failed.
        errors:
          type: array
          description: Non-fatal errors encountered while processing the request. Data unaffected by these errors is still processed.
          items:
            type: object
            properties:
              type:
                type: string
                description: The error type.
