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

# Restore schedule

> Restore a schedule out of the trash. It runs on its schedule again, unless it was paused before it was deleted or Omni disabled it. For example, because its Slack or Google Sheets account was disconnected.

Calling this endpoint on a schedule that isn't in the trash is safe. It returns `200` and leaves the schedule as it was, unless it can't be restored for one of the reasons below.




## OpenAPI

````yaml /api/openapi.yaml post /v1/schedules/{scheduleId}/restore
openapi: 3.1.0
info:
  title: Omni API
  description: >
    The Omni REST API provides programmatic access to your Omni instance for
    managing users, documents, queries, schedules, and more.  
  version: 1.0.0
  contact:
    name: Omni Support
    url: https://docs.omni.co
servers:
  - url: https://{instance}.omniapp.co/api
    description: Production
    variables:
      instance:
        default: blobsrus
        description: Your production Omni instance subdomain
  - url: https://{instance}.playground.exploreomni.dev/api
    description: Playground
    variables:
      instance:
        default: blobsrus
        description: Your playground Omni instance subdomain
security:
  - bearerAuth: []
  - orgApiKey: []
tags:
  - name: Who Am I
    description: Inspect your own user permissions
  - name: AI
    description: AI-powered query generation
  - name: AI Credit Controls
    description: Manage organization-level AI credit usage
  - name: AI Credit Usage
    description: Monitor AI credit usage
  - name: AI Evals
    description: >-
      Manage prompt sets and runs used to score AI quality against curated
      prompt suites.
  - name: AI Model Suggestions
    description: Manage AI-generated suggestions for shared models
  - name: AI Routines
    description: >-
      Manage Routines, which are scheduled, recurring AI-powered tasks that run
      automatically on your data
  - name: Apps
    description: Draft and publish app documents.
  - name: App downloads
    description: Download apps as PNG, PDF, XLSX, or CSV files
  - name: Branches
    description: List branches and open or close them to Viewers and Restricted Queriers
  - name: Documents v2
    description: >
      A draft-based workflow for creating and editing documents: create a
      document, patch a draft, then publish.
  - name: Documents
    description: Create, retrieve, and manage documents
  - name: API Tokens
    description: >-
      Manage API tokens (Organization keys, Personal Access Tokens, MCP OAuth
      grants)
  - name: IP Allowlist
    description: Manage the organization's IP allowlist
  - name: Connections
    description: Manage database connections
  - name: Connection environments
    description: Manage connection environments database connections
  - name: Color Palettes
    description: Manage custom chart color palettes
  - name: Content
    description: Unified content retrieval (documents and folders)
  - name: Content migration
    description: Export and import dashboards
  - name: Content validator
    description: Validate content against models and perform find/replace operations
  - name: Dashboard downloads
    description: Download dashboards and tiles as PDF, PNG, XLSX, CSV, or JSON files
  - name: Dashboard filters and controls
    description: Read and update dashboard filter and control default values
  - name: dbt
    description: Manage dbt configuration for connections
  - name: Document favorites
    description: Favorite and unfavorite documents
  - name: Document labels
    description: Apply and manage labels on documents
  - name: Document permissions
    description: Manage document-level access
  - name: Embed
    description: Manage embed sessions
  - name: Labels
    description: |
      Manage labels in the organization
  - name: Folders
    description: Create and organize content folders
  - name: Folder favorites
    description: Favorite and unfavorite folders
  - name: Folder labels
    description: Apply and manage labels on folders
  - name: Folder permissions
    description: Manage folder-level access
  - name: Jobs
    description: Check status of asynchronous jobs
  - name: Models
    description: Create and manage data models
  - name: Model branches
    description: Manage model branches and merge changes
  - name: Model git configuration
    description: Manage git configuration for shared models
  - name: Queries
    description: Execute workbook queries
  - name: Schedules
    description: Create and manage scheduled tasks
  - name: Schedule recipients
    description: Manage schedule recipients
  - name: Schema refresh schedules
    description: Manage automated schema refresh schedules for connections
  - name: Skills
    description: >-
      Manage skills, the saved slash-command instructions the Omni AI assistant
      runs
  - name: Topics
    description: Retrieve topic information from models
  - name: Uploads
    description: Manage file uploads
  - name: Users
    description: Manage users
  - name: User attributes
    description: Manage user attribute definitions
  - name: User groups
    description: Manage user groups
  - name: User model roles
    description: Manage model and connection role assignments for users
  - name: User group model roles
    description: Manage model and connection role assignments for user groups
  - name: Uploads
    description: Manage CSV and spreadsheet uploads
paths:
  /v1/schedules/{scheduleId}/restore:
    post:
      tags:
        - Schedules
      summary: Restore schedule
      description: >
        Restore a schedule out of the trash. It runs on its schedule again,
        unless it was paused before it was deleted or Omni disabled it. For
        example, because its Slack or Google Sheets account was disconnected.


        Calling this endpoint on a schedule that isn't in the trash is safe. It
        returns `200` and leaves the schedule as it was, unless it can't be
        restored for one of the reasons below.
      operationId: restoreSchedule
      parameters:
        - $ref: '#/components/parameters/scheduleId'
      responses:
        '200':
          description: Schedule restored, or it wasn't in the trash and was left as it was
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '403':
          description: >
            Forbidden


            Possible error messages:


            - `User does not have permission to access this schedule` - The
            authenticated user is not the schedule owner and can't manage
            schedules

            - `This destination type is turned off for your organization` - The
            organization has turned off the schedule's destination type.
            Returned whether or not the schedule is in the trash.

            - `This delivery cannot be restored because its owner is no longer
            in your organization` - The schedule's owner has left the
            organization. Returned whether or not the schedule is in the trash.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError403'
              examples:
                destinationTurnedOff:
                  summary: Destination type turned off
                  value:
                    detail: This destination type is turned off for your organization
                    status: 403
                ownerLeftOrganization:
                  summary: Owner left the organization
                  value:
                    detail: >-
                      This delivery cannot be restored because its owner is no
                      longer in your organization
                    status: 403
        '404':
          description: >
            Not Found


            Possible error messages:


            - `Scheduled task with id <scheduleId> does not exist` - The
            schedule doesn't exist, belongs to a different organization, or its
            document is in the trash
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError404'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - bearerAuth: []
components:
  parameters:
    scheduleId:
      name: scheduleId
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: >
        The ID of the schedule. To find a schedule's ID:


        1. Navigate to the dashboard or workbook.

        2. Click **File > Deliveries & Alerts**.

        3. Next to a schedule, click **Edit**.


        The schedule's ID is in the page's URL, after `/schedules/`. For
        example, the schedule ID in this URL is
        `123e4567-e89b-12d3-a456-426614174000`:


        ```markdown wrap

        https://blobsrus.omniapp.co/dashboards/e23ebaa0/schedules/123e4567-e89b-12d3-a456-426614174000

        ```
  schemas:
    SuccessResponse:
      type: object
      properties:
        success:
          type: boolean
          example: true
    ApiError403:
      type: object
      properties:
        detail:
          type: string
          description: Human-readable error message describing what went wrong.
        status:
          type: integer
          description: HTTP status code of the error.
          example: 403
      required:
        - detail
        - status
    ApiError404:
      type: object
      properties:
        detail:
          type: string
          description: Human-readable error message describing what went wrong.
        status:
          type: integer
          description: HTTP status code of the error.
          example: 404
      required:
        - detail
        - status
    Error:
      type: object
      properties:
        error:
          type: string
          description: HTTP response code for the error
          example: <response_code>
        message:
          type: string
          description: Detailed error description
          example: <error_reason>
  responses:
    MethodNotAllowed:
      description: Method Not Allowed - Invalid HTTP method for this endpoint
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Too Many Requests - Rate limit exceeded (60 requests/minute)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Can be either an [Organization API
        Key](/api/authentication#organization-api-keys) or [Personal Access
        Token (PAT)](/api/authentication#token-types).


        Include in the `Authorization` header as: `Bearer YOUR_TOKEN`
    orgApiKey:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Requires an [Organization API
        Key](/api/authentication#organization-api-keys). Personal Access Tokens
        (PATs) are not supported for this endpoint.


        Include in the `Authorization` header as: `Bearer ORGANIZATION_API_KEY`

````

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