> ## Documentation index
> Fetch the complete documentation index at: https://docs.rxresu.me/llms.txt
> Ask it with GET https://docs.rxresu.me/ask?q=<keywords or question>. Short keywords rank best.
> Use these to discover all available pages before exploring further.

# Download a cover letter in PDF, DOCX, ODT, Markdown or JSON

> Renders the cover letter as a file in the chosen format. Linked sender details and design come live from its resume. Structured letter greetings default to English; pass `words` to localize them. Dates use the document's locale.

`GET /cover-letters/{id}/exports/{format}`

## OpenAPI

````yaml spec.json get /cover-letters/{id}/exports/{format}
openapi: 3.1.1
info:
  title: Reactive Resume
  version: 6.0.7
  description: "Reactive Resume API. Mutations do not support Idempotency-Key. Do
    not automatically retry POST, PUT, PATCH or DELETE requests after a timeout:
    first read the resource to determine whether the operation succeeded.
    Existing enum values and response shapes are retained for compatibility."
  license:
    name: MIT
    url: https://github.com/reactive-resume/reactive-resume/blob/main/LICENSE
  contact:
    name: Amruth Pillai
    email: amruth@rxresu.me
    url: https://amruthpillai.com
servers:
  - url: https://rxresu.me/api/openapi
security:
  - apiKey: []
  - bearerAuth: []
  - cookieAuth: []
paths:
  /cover-letters/{id}/exports/{format}:
    get:
      operationId: exportCoverLetterFile
      summary: Download a cover letter in PDF, DOCX, ODT, Markdown or JSON
      description: Renders the cover letter as a file in the chosen format. Linked
        sender details and design come live from its resume. Structured letter
        greetings default to English; pass `words` to localize them. Dates use
        the document's locale.
      tags:
        - Cover Letters
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: format
          in: path
          required: true
          schema:
            enum:
              - pdf
              - docx
              - odt
              - md
              - json
            type: string
        - name: words
          in: query
          schema:
            type: object
            properties:
              greeting:
                type: string
                maxLength: 500
                description: Use {name} for the recipient.
              teamGreeting:
                type: string
                maxLength: 500
              hiringTeam:
                type: string
                maxLength: 500
              signOff:
                type: string
                maxLength: 500
            required:
              - greeting
              - teamGreeting
              - hiringTeam
              - signOff
          style: deepObject
          explode: true
          allowEmptyValue: true
          allowReserved: true
      responses:
        "200":
          description: OK
          headers:
            content-disposition:
              schema:
                type: string
              required: true
          content:
            "*/*":
              schema:
                type: string
                contentMediaType: "*/*"
        default:
          description: Structured API error. See status and code; do not branch on message
            text.
          content:
            application/json:
              schema:
                type: object
                required:
                  - defined
                  - code
                  - status
                  - message
                properties:
                  defined:
                    type: boolean
                  code:
                    type: string
                  status:
                    type: integer
                  message:
                    type: string
                  data: {}
      security:
        - apiKey: []
        - bearerAuth: []
        - cookieAuth: []
      x-codeSamples:
        - lang: bash
          label: cURL
          source: 'curl
            "https://rxresu.me/api/openapi/cover-letters/<id>/exports/<format>"
            --header "x-api-key: <api-key>"'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: An OAuth access token issued by this instance for its API/MCP resource.
    cookieAuth:
      type: apiKey
      in: cookie
      name: better-auth.session_token
      description: Browser session (secure deployments use the __Secure- prefix).
        Cookie requests must originate from this instance.
    apiKey:
      type: apiKey
      name: x-api-key
      in: header
      description: The API key to authenticate requests.
````
