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

# List cover letters

> Returns the authenticated user's saved cover letters, optionally filtered by search, resume, or application.



## OpenAPI

````yaml /spec.json get /cover-letters
openapi: 3.1.1
info:
  title: Reactive Resume
  version: 6.0.2
  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: []
externalDocs:
  url: https://docs.rxresu.me
  description: Reactive Resume Documentation
paths:
  /cover-letters:
    get:
      tags:
        - Cover Letters
      summary: List cover letters
      description: >-
        Returns the authenticated user's saved cover letters, optionally
        filtered by search, resume, or application.
      operationId: listCoverLetters
      parameters:
        - name: search
          in: query
          schema:
            type: string
            maxLength: 100
          allowEmptyValue: true
          allowReserved: true
        - name: resumeId
          in: query
          schema:
            type: string
            minLength: 1
          allowEmptyValue: true
          allowReserved: true
        - name: applicationId
          in: query
          schema:
            type: string
            minLength: 1
          allowEmptyValue: true
          allowReserved: true
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
          allowEmptyValue: true
          allowReserved: true
        - name: offset
          in: query
          schema:
            type: integer
            minimum: 0
            maximum: 9007199254740991
            default: 0
          allowEmptyValue: true
          allowReserved: true
      responses:
        '200':
          description: A paginated list of cover letters.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          minLength: 1
                          maxLength: 100
                        recipient:
                          type: string
                          maxLength: 20000
                        content:
                          type: string
                          maxLength: 100000
                        greeting:
                          anyOf:
                            - type: string
                              maxLength: 2000
                            - type: 'null'
                          default: null
                          description: >-
                            Custom greeting; null uses the document language
                            default, empty omits it.
                        signOff:
                          anyOf:
                            - type: string
                              maxLength: 2000
                            - type: 'null'
                          default: null
                          description: >-
                            Custom signature including name and optional contact
                            details; null uses the document language default
                            with the sender's name, empty omits it.
                        style:
                          type: object
                          properties:
                            basics:
                              type: object
                              properties:
                                name:
                                  type: string
                                  description: The full name of the author of the resume.
                                headline:
                                  type: string
                                  description: The headline of the author of the resume.
                                email:
                                  type: string
                                  description: >-
                                    The email address of the author of the
                                    resume.
                                phone:
                                  type: string
                                  description: >-
                                    The phone number of the author of the
                                    resume.
                                location:
                                  type: string
                                  description: The location of the author of the resume.
                                website:
                                  type: object
                                  properties:
                                    url:
                                      type: string
                                      description: >-
                                        The URL to show as a link. Must be a
                                        valid URL with a protocol (http:// or
                                        https://).
                                    label:
                                      type: string
                                      description: >-
                                        The label to display for the URL. Leave
                                        blank to display the URL as-is.
                                  required:
                                    - url
                                    - label
                                  description: The website of the author of the resume.
                                customFields:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        description: >-
                                          The unique identifier for the custom
                                          field. Usually generated as a UUID.
                                      icon:
                                        type: string
                                        description: >-
                                          The icon to display for the custom
                                          field. Must be a valid icon name from
                                          @phosphor-icons/web icon set, or an
                                          empty string to hide. Default to ''
                                          (empty string) when unsure which icons
                                          are available.
                                      text:
                                        type: string
                                        description: >-
                                          The text to display for the custom
                                          field.
                                      link:
                                        type: string
                                        description: >-
                                          If the custom field should be a link,
                                          the URL to link to.
                                    required:
                                      - id
                                      - icon
                                      - text
                                      - link
                                  description: The custom fields to display on the resume.
                              required:
                                - name
                                - headline
                                - email
                                - phone
                                - location
                                - website
                                - customFields
                            picture:
                              type: object
                              properties:
                                hidden:
                                  type: boolean
                                  description: Whether to hide the picture from the resume.
                                fit:
                                  enum:
                                    - cover
                                    - contain
                                  type: string
                                  description: >-
                                    How the picture fits its frame: cover crops
                                    overflow, while contain preserves the whole
                                    image.
                                url:
                                  type: string
                                  description: >-
                                    The URL to the picture to display on the
                                    resume. Prefer local app-served paths (for
                                    example /uploads/...) populated via upload.
                                size:
                                  type: number
                                  minimum: 32
                                  maximum: 512
                                  description: >-
                                    The size of the picture to display on the
                                    resume, defined in points (pt).
                                rotation:
                                  type: number
                                  minimum: 0
                                  maximum: 360
                                  description: >-
                                    The rotation of the picture to display on
                                    the resume, defined in degrees (°).
                                aspectRatio:
                                  type: number
                                  minimum: 0.5
                                  maximum: 2.5
                                  description: >-
                                    The aspect ratio of the picture to display
                                    on the resume, defined as width / height
                                    (e.g. 1.5 for 1.5:1 or 0.5 for 1:2).
                                borderRadius:
                                  type: number
                                  minimum: 0
                                  maximum: 100
                                  description: >-
                                    The border radius of the picture to display
                                    on the resume, defined in points (pt).
                                borderColor:
                                  type: string
                                  description: >-
                                    The color of the border of the picture to
                                    display on the resume, defined as rgba(r, g,
                                    b, a).
                                borderWidth:
                                  type: number
                                  minimum: 0
                                  description: >-
                                    The width of the border of the picture to
                                    display on the resume, defined in points
                                    (pt).
                                shadowColor:
                                  type: string
                                  description: >-
                                    The color of the shadow of the picture to
                                    display on the resume, defined as rgba(r, g,
                                    b, a).
                                shadowWidth:
                                  type: number
                                  minimum: 0
                                  description: >-
                                    The width of the shadow of the picture to
                                    display on the resume, defined in points
                                    (pt).
                              required:
                                - hidden
                                - fit
                                - url
                                - size
                                - rotation
                                - aspectRatio
                                - borderRadius
                                - borderColor
                                - borderWidth
                                - shadowColor
                                - shadowWidth
                            metadata:
                              type: object
                              properties:
                                template:
                                  enum:
                                    - azurill
                                    - bronzor
                                    - chikorita
                                    - ditgar
                                    - ditto
                                    - gengar
                                    - glalie
                                    - kakuna
                                    - lapras
                                    - leafish
                                    - meowth
                                    - onyx
                                    - pikachu
                                    - porygon
                                    - rhyhorn
                                    - scizor
                                    - smeargle
                                  type: string
                                  description: >-
                                    The template to use for the resume.
                                    Determines the overall design and appearance
                                    of the resume.
                                page:
                                  type: object
                                  properties:
                                    gapX:
                                      type: number
                                      minimum: 0
                                      description: >-
                                        The horizontal gap between the sections
                                        of the page, defined in points (pt).
                                    gapY:
                                      type: number
                                      minimum: 0
                                      description: >-
                                        The vertical gap between the sections of
                                        the page, defined in points (pt).
                                    marginX:
                                      type: number
                                      minimum: 0
                                      maximum: 100
                                      description: >-
                                        The horizontal margin of the page,
                                        defined in points (pt).
                                    marginY:
                                      type: number
                                      minimum: 0
                                      maximum: 100
                                      description: >-
                                        The vertical margin of the page, defined
                                        in points (pt).
                                    format:
                                      enum:
                                        - a4
                                        - letter
                                        - free-form
                                      type: string
                                      description: >-
                                        The format of the page. Can be 'a4',
                                        'letter', or 'free-form'.
                                    locale:
                                      type: string
                                      description: >-
                                        The locale of the page. Used for
                                        displaying pre-translated section
                                        headings, if not overridden.
                                    dateFormat:
                                      description: >-
                                        How dates print: 'short' (Mar 2022),
                                        'long' (March 2022), 'numeric' (03/2022)
                                        or 'iso' (2022-03). When missing, it's
                                        read from how the dates were typed.
                                      type: string
                                      enum:
                                        - short
                                        - long
                                        - numeric
                                        - iso
                                    hideLinkUnderline:
                                      type: boolean
                                      description: >-
                                        Whether to hide the underlines of the
                                        links.
                                    hideIcons:
                                      type: boolean
                                      description: >-
                                        Whether to hide the item-level icons
                                        (skills, profiles, interests).
                                    hideSectionIcons:
                                      type: boolean
                                      description: >-
                                        Whether to hide the section heading
                                        icons displayed before section titles.
                                  required:
                                    - gapX
                                    - gapY
                                    - marginX
                                    - marginY
                                    - format
                                    - locale
                                    - hideLinkUnderline
                                    - hideIcons
                                    - hideSectionIcons
                                  description: >-
                                    The page settings of the resume. Determines
                                    the margins, format, and locale of the
                                    resume.
                                design:
                                  type: object
                                  properties:
                                    level:
                                      type: object
                                      properties:
                                        icon:
                                          type: string
                                          description: >-
                                            The icon to display for the custom
                                            field. Must be a valid icon name from
                                            @phosphor-icons/web icon set, or an
                                            empty string to hide. Default to ''
                                            (empty string) when unsure which icons
                                            are available.
                                        type:
                                          type: string
                                          enum:
                                            - hidden
                                            - circle
                                            - square
                                            - rectangle
                                            - rectangle-full
                                            - progress-bar
                                            - icon
                                          description: >-
                                            The type of the level design. 'hidden'
                                            will hide the level design, 'circle'
                                            will display a circle, 'square' will
                                            display a square, 'rectangle' will
                                            display a rectangle, 'rectangle-full'
                                            will display a full rectangle,
                                            'progress-bar' will display a progress
                                            bar, and 'icon' will display an icon. If
                                            'icon' is selected, the icon to display
                                            should be specified in the 'icon' field.
                                      required:
                                        - icon
                                        - type
                                    colors:
                                      type: object
                                      properties:
                                        primary:
                                          type: string
                                          description: >-
                                            The primary color of the design, defined
                                            as rgba(r, g, b, a).
                                        text:
                                          type: string
                                          description: >-
                                            The text color of the design, defined as
                                            rgba(r, g, b, a). Usually set to black:
                                            rgba(0, 0, 0, 1).
                                        background:
                                          type: string
                                          description: >-
                                            The background color of the design,
                                            defined as rgba(r, g, b, a). Usually set
                                            to white: rgba(255, 255, 255, 1).
                                      required:
                                        - primary
                                        - text
                                        - background
                                  required:
                                    - level
                                    - colors
                                  description: >-
                                    The design settings of the resume.
                                    Determines the colors, level designs, and
                                    typography of the resume.
                                typography:
                                  type: object
                                  properties:
                                    body:
                                      type: object
                                      properties:
                                        fontFamily:
                                          type: string
                                          description: >-
                                            The family of the font to use. Must be a
                                            supported resume font.
                                        fontWeights:
                                          type: array
                                          items:
                                            type: string
                                            enum:
                                              - '100'
                                              - '200'
                                              - '300'
                                              - '400'
                                              - '500'
                                              - '600'
                                              - '700'
                                              - '800'
                                              - '900'
                                          description: >-
                                            The weight of the font, defined as a
                                            number between 100 and 900. Default to
                                            400 when unsure if the weight is
                                            available in the font.
                                        fontSize:
                                          type: number
                                          minimum: 6
                                          maximum: 24
                                          description: >-
                                            The size of the font to use, defined in
                                            points (pt).
                                        lineHeight:
                                          type: number
                                          minimum: 0.5
                                          maximum: 4
                                          description: >-
                                            The line height of the font to use,
                                            defined as a multiplier of the font size
                                            (e.g. 1.5 for 1.5x).
                                      required:
                                        - fontFamily
                                        - fontWeights
                                        - fontSize
                                        - lineHeight
                                      description: >-
                                        The typography for the body of the
                                        resume.
                                    heading:
                                      type: object
                                      properties:
                                        fontFamily:
                                          type: string
                                          description: >-
                                            The family of the font to use. Must be a
                                            supported resume font.
                                        fontWeights:
                                          type: array
                                          items:
                                            type: string
                                            enum:
                                              - '100'
                                              - '200'
                                              - '300'
                                              - '400'
                                              - '500'
                                              - '600'
                                              - '700'
                                              - '800'
                                              - '900'
                                          description: >-
                                            The weight of the font, defined as a
                                            number between 100 and 900. Default to
                                            400 when unsure if the weight is
                                            available in the font.
                                        fontSize:
                                          type: number
                                          minimum: 6
                                          maximum: 24
                                          description: >-
                                            The size of the font to use, defined in
                                            points (pt).
                                        lineHeight:
                                          type: number
                                          minimum: 0.5
                                          maximum: 4
                                          description: >-
                                            The line height of the font to use,
                                            defined as a multiplier of the font size
                                            (e.g. 1.5 for 1.5x).
                                      required:
                                        - fontFamily
                                        - fontWeights
                                        - fontSize
                                        - lineHeight
                                      description: >-
                                        The typography for the headings of the
                                        resume.
                                    hyphenation:
                                      description: >-
                                        Enable automatic PDF hyphenation using
                                        the resume language. Defaults to false.
                                      type: boolean
                                  required:
                                    - body
                                    - heading
                                  description: >-
                                    The typography settings of the resume.
                                    Determines the fonts and sizes of the body
                                    and headings of the resume.
                                styleRules:
                                  description: >-
                                    Structured style rules that target semantic
                                    resume sections and slots for PDF rendering.
                                stylesheet:
                                  type: object
                                  properties:
                                    mode:
                                      type: string
                                      enum:
                                        - legacy
                                        - semantic
                                    source:
                                      type: object
                                      properties:
                                        languageVersion:
                                          type: integer
                                          minimum: -9007199254740991
                                          maximum: 9007199254740991
                                          exclusiveMinimum: 0
                                        text:
                                          type: string
                                      required:
                                        - languageVersion
                                        - text
                                      additionalProperties: false
                                  required:
                                    - mode
                                    - source
                                  additionalProperties: false
                                check:
                                  type: object
                                  properties:
                                    ignored:
                                      type: array
                                      items:
                                        type: string
                                      description: >-
                                        Check issues the author chose to ignore,
                                        by issue key (the rule code and where it
                                        applies).
                                    hiddenTerms:
                                      type: array
                                      items:
                                        type: string
                                      description: >-
                                        Job-posting terms the author hid from
                                        Job match as not true for them.
                                  required:
                                    - ignored
                                    - hiddenTerms
                                  description: >-
                                    The author's Check choices for this resume.
                                    Not printed; missing until a choice is made.
                              required:
                                - template
                                - page
                                - design
                                - typography
                            sectionId:
                              type: string
                              minLength: 1
                            itemId:
                              type: string
                              minLength: 1
                          required:
                            - basics
                            - picture
                            - metadata
                            - sectionId
                            - itemId
                        layout:
                          enum:
                            - structured
                            - freeform
                          type: string
                          description: >-
                            structured: recipient name, company and date fields,
                            a greeting from the name, the body and a sign-off.
                            freeform: the recipient block and body as written
                            (letters from before structured letters).
                          default: freeform
                        recipientName:
                          type: string
                          maxLength: 200
                          default: ''
                          description: 'Who the letter is to: a person, or a team.'
                        recipientCompany:
                          type: string
                          maxLength: 200
                          default: ''
                        letterDate:
                          anyOf:
                            - type: string
                              pattern: ^\d{4}-\d{2}-\d{2}$
                            - type: 'null'
                          default: null
                          description: The letter's date, as YYYY-MM-DD.
                        id:
                          type: string
                        sourceResumeId:
                          anyOf:
                            - type: string
                            - type: 'null'
                        sourceApplicationId:
                          anyOf:
                            - type: string
                            - type: 'null'
                        senderLinked:
                          type: boolean
                          description: >-
                            The sender's details come live from the source
                            resume, instead of the copy in `style`.
                        designLinked:
                          type: boolean
                          description: >-
                            The design comes live from the source resume,
                            instead of the copy in `style`.
                        isLocked:
                          type: boolean
                          description: >-
                            Locked letters can't be edited or moved to Trash
                            until they're unlocked.
                        revision:
                          type: integer
                          minimum: 1
                          maximum: 9007199254740991
                        createdAt:
                          type: string
                          format: date-time
                          x-native-type: date
                        updatedAt:
                          type: string
                          format: date-time
                          x-native-type: date
                      required:
                        - name
                        - recipient
                        - content
                        - style
                        - id
                        - sourceResumeId
                        - sourceApplicationId
                        - senderLinked
                        - designLinked
                        - isLocked
                        - revision
                        - createdAt
                        - updatedAt
                  total:
                    type: number
                required:
                  - items
                  - total
        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" --header
            "x-api-key: <api-key>"
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: x-api-key
      in: header
      description: The API key to authenticate requests.
    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.

````

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