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

# List Schedules

> List the schedules owned by the API key's account: scheduled query runs, scheduled dashboard refreshes, and materialized view refreshes. A schedule belongs to the owner of its query or dashboard.

> [!NOTE]
>
> Minimum required API key scope: `Read`

# Use Cases

* **Audit Credit Use**: See every schedule, with its frequency and performance tier, in one call.
* **Read Before You Change**: Get the current settings of a schedule before a `PUT`, because a `PUT` replaces all of them.
* **Find Expiring Schedules**: Each schedule returns its `expires_at` and `next_execution_time`.


## OpenAPI

````yaml GET /v1/schedules
openapi: 3.0.1
info:
  contact: {}
  description: Dune API
  title: DuneAPI
  version: '1.0'
servers:
  - url: https://api.dune.com/api
security: []
paths:
  /v1/schedules:
    get:
      summary: List schedules
      description: >-
        List the schedules owned by the API key's account: scheduled query runs,
        scheduled dashboard refreshes, and materialized view refreshes. A
        schedule belongs to the owner of its query or dashboard.
      parameters:
        - description: API Key for the service
          in: header
          name: X-Dune-Api-Key
          required: true
          schema:
            type: string
        - description: Maximum number of schedules to return (default 20, max 100)
          in: query
          name: limit
          schema:
            type: integer
        - description: Number of schedules to skip
          in: query
          name: offset
          schema:
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ListSchedulesResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Error400'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Error401'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Error403'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Error500'
          description: Internal Server Error
components:
  schemas:
    models.ListSchedulesResponse:
      properties:
        schedules:
          items:
            $ref: '#/components/schemas/models.Schedule'
          type: array
        total:
          description: Total is the number of schedules across all pages.
          type: integer
      type: object
    models.Error400:
      properties:
        error:
          example: Bad Request
          type: string
      type: object
    models.Error401:
      properties:
        error:
          example: Invalid API Key
          type: string
      type: object
    models.Error403:
      properties:
        error:
          example: >-
            Not allowed to execute query. Query is archived, unsaved or not
            enough permissions
          type: string
      type: object
    models.Error500:
      properties:
        error:
          example: Internal error
          type: string
      type: object
    models.Schedule:
      properties:
        cron_expression:
          description: CronExpression is a 5-part cron expression in UTC.
          example: 0 6 * * *
          type: string
        dashboard_id:
          description: DashboardID is set for dashboard schedules.
          type: integer
        expires_at:
          description: ExpiresAt is absent when the schedule does not expire.
          type: string
        next_execution_time:
          type: string
        performance:
          description: Performance is the engine tier each run uses.
          enum:
            - small
            - medium
            - large
          example: medium
          type: string
        query_id:
          description: QueryID is set for query and materialized view schedules.
          example: 1234567
          type: integer
        type:
          description: >-
            Type is what the schedule runs. Materialized view refreshes are
            managed through the

            /v1/materialized-views endpoints.
          enum:
            - query
            - dashboard
            - materialized_view
          example: query
          type: string
      type: object

````

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