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

# Schedule a report by email

> Emails the PDF report of a folder (every tool of its subtree, optionally with the CSV) or of one tool to up to 10 recipients outside woku. monthly (1st), biweekly (1st and 16th) and weekly (Mondays) go out at 12:00 UTC with the previous complete period; once goes out at sendAt (or now) with periodFrom/periodTo. Each email is sent as the company and carries a one-click unsubscribe.



## OpenAPI

````yaml /openapi-v1.json post /v1/report-subscriptions
openapi: 3.0.0
info:
  title: Woku Client API v1
  description: >-
    Public REST API for programmatic management of woku Voice-of-Customer
    programs: trackers, VoC instruments (NPS, woku, CES, CSAT), action plans,
    support tickets, multi-channel sending and response capture. Requests are
    company-scoped by the API key; never send a company id.
  version: 1.0.0
  contact:
    name: Woku
    url: https://woku.app
    email: team@woku.app
servers:
  - url: https://clientapi.woku.app
    description: Production
security: []
tags: []
paths:
  /v1/report-subscriptions:
    post:
      tags:
        - v1 - report subscriptions
      summary: Schedule a report by email
      description: >-
        Emails the PDF report of a folder (every tool of its subtree, optionally
        with the CSV) or of one tool to up to 10 recipients outside woku.
        monthly (1st), biweekly (1st and 16th) and weekly (Mondays) go out at
        12:00 UTC with the previous complete period; once goes out at sendAt (or
        now) with periodFrom/periodTo. Each email is sent as the company and
        carries a one-click unsubscribe.
      operationId: V1ReportSubscriptionsController_create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReportSubscriptionDTO'
      responses:
        '201':
          description: Scheduled report created
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponseDto'
        '404':
          description: Folder or tool not found
      security:
        - bearer: []
components:
  schemas:
    CreateReportSubscriptionDTO:
      type: object
      properties:
        scopeType:
          type: string
          enum:
            - folder
            - woku
            - nps
            - csat
            - ces
        scopeId:
          type: string
          description: Folder or tool id
          format: ObjectId
        frequency:
          type: string
          enum:
            - monthly
            - biweekly
            - weekly
            - once
          description: >-
            monthly (1st), biweekly (1st and 16th), weekly (Mondays) at 12:00
            UTC with the previous complete period, or once
        recipients:
          description: Recipient emails, 1 to 10; they need no woku account
          type: array
          items:
            type: string
        includeCsv:
          type: boolean
          description: 'Folder only: also attach the CSV'
        locale:
          type: string
          enum:
            - es
            - en
          default: es
        sendAt:
          type: string
          description: 'once only: when to send it (ISO); absent = now'
        periodFrom:
          type: string
          description: 'once only: period start (ISO)'
        periodTo:
          type: string
          description: 'once only: period end (ISO, exclusive)'
      required:
        - scopeType
        - scopeId
        - frequency
        - recipients
    ValidationErrorResponseDto:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 400
        message:
          description: Array of validation error messages
          example:
            - email must be a valid email
            - password must be at least 8 characters
          type: array
          items:
            type: string
        error:
          type: string
          description: Error type
          example: Bad Request
      required:
        - statusCode
        - message
        - error
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: API key
      type: http
      description: Company secret API key.

````

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