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

# Schedule a report

> Creates or replaces the caller's delivery schedule for this report and resumes it if it was paused. Each run emails the caller a summary with a chart and a download link, and posts it to the chosen organization destinations. Only admins and owners can choose destinations. Every run checks the caller still has access to the tenant and pauses the schedule if not.



## OpenAPI

````yaml /api-reference/costgraph/openapi.json put /api/v1/tenant/reports/{report_id}/schedule
openapi: 3.0.0
info:
  description: Read and manage your CostGraph organization, spend, alerts, and settings.
  title: CostGraph API
  contact: {}
  version: '1.0'
servers:
  - url: https://api.costgraph.ai
security: []
tags:
  - name: ai
    x-group: AI
  - name: ai-serving
    x-group: AI serving
  - name: anomalies
    x-group: Anomalies
  - name: auth
    x-group: Auth
  - name: billing
    x-group: Billing
  - name: billing-export
    x-group: Billing export
  - name: budgets
    x-group: Budgets
  - name: ci
    x-group: CI
  - name: compute-recommendations
    x-group: Compute recommendations
  - name: config
    x-group: Config
  - name: context-graph
    x-group: Context graph
  - name: cost
    x-group: Cost
  - name: gpus
    x-group: GPUs
  - name: graphai
    x-group: Graph AI
  - name: integrations
    x-group: Integrations
  - name: invitations
    x-group: Invitations
  - name: kubernetes-clusters
    x-group: Kubernetes clusters
  - name: marketplace
    x-group: Marketplace
  - name: network-requests
    x-group: Network requests
  - name: notifications
    x-group: Notifications
  - name: oauth
    x-group: OAuth
  - name: oauth-clients
    x-group: OAuth clients
  - name: opencost
    x-group: OpenCost
  - name: organization
    x-group: Audit log
  - name: organizations
    x-group: Organizations
  - name: placement-alternatives
    x-group: Placement alternatives
  - name: reports
    x-group: Reports
  - name: service-map
    x-group: Service map
  - name: settings
    x-group: Settings
  - name: sso
    x-group: Single sign-on
  - name: tenants
    x-group: Tenants
  - name: ticketing
    x-group: Ticketing
  - name: user
    x-group: Users
  - name: virtual-machines
    x-group: Virtual machines
  - name: virtual-tags
    x-group: Virtual tags
  - name: workflows
    x-group: Workflows
paths:
  /api/v1/tenant/reports/{report_id}/schedule:
    put:
      tags:
        - reports
      summary: Schedule a report
      description: >-
        Creates or replaces the caller's delivery schedule for this report and
        resumes it if it was paused. Each run emails the caller a summary with a
        chart and a download link, and posts it to the chosen organization
        destinations. Only admins and owners can choose destinations. Every run
        checks the caller still has access to the tenant and pauses the schedule
        if not.
      parameters:
        - description: Tenant ID
          name: X-CostGraph-Tenant-ID
          in: header
          required: true
          schema:
            type: string
        - description: Report ID
          name: report_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/controllers.ReportScheduleRequest'
        description: Schedule
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/responses.SuccessResponse'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/reports.Schedule'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    controllers.ReportScheduleRequest:
      type: object
      required:
        - cadence
        - format
        - localTime
        - timezone
      properties:
        cadence:
          type: string
          enum:
            - daily
            - weekly
            - monthly
        destinationIds:
          type: array
          items:
            type: string
        format:
          type: string
          enum:
            - csv
            - xlsx
        localTime:
          type: string
        monthWeek:
          type: integer
        timezone:
          type: string
        weekday:
          type: integer
    responses.SuccessResponse:
      type: object
      required:
        - message
        - status
      properties:
        data: {}
        message:
          type: string
          example: some message
        status:
          type: string
          example: success
    reports.Schedule:
      type: object
      properties:
        cadence:
          type: string
        destinationIds:
          type: array
          items:
            type: string
        format:
          type: string
        id:
          type: string
        lastRunAt:
          type: string
        lastStatus:
          type: string
        localTime:
          type: string
        monthWeek:
          type: integer
        nextRunAt:
          type: string
        pausedReason:
          type: string
        reportId:
          type: string
        state:
          type: string
        timezone:
          type: string
        weekday:
          type: integer
    responses.ErrorResponse:
      type: object
      required:
        - message
        - status
      properties:
        message:
          type: string
          example: some message
        status:
          type: string
          example: error
  securitySchemes:
    BearerAuth:
      description: Enter "Bearer {token}"
      type: apiKey
      name: Authorization
      in: header

````

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