---
title: "Direct Messages"
method: GET
path: "/api/{account}/engagement/messages/direct-messages"
tags: ["Engagement / Messages"]
---

# Direct Messages

`GET /api/{account}/engagement/messages/direct-messages`

List sent direct messages with engagement stats (sent, viewed, purchased, etc.).

## Query parameters

- `startDate` string — The earliest message to retrieve. Keep empty to get all.
- `endDate` string — The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER `startDate`. This is also used for pagination.
- `limit` integer — Number of messages to return (default = 10)
- `query` string — Optionally, filter by message text.
- `offset` integer — Optional offset for manual pagination.

## Response `200`

- object
  - `data` object
    - `hasMore` boolean
    - `items` object[]
      - `id` integer
      - `date` string
      - `responseType` string
      - `text` string
      - `rawText` string
      - `giphyId` string, nullable
      - `isFree` boolean
      - `isMediaReady` boolean
      - `mediaCount` integer
      - `media` object[]
        - `id` integer
        - `type` string
        - `convertedToVideo` boolean
        - `canView` boolean
        - `hasError` boolean
        - `createdAt` string
        - `isReady` boolean
        - `files` object
          - `full` object
            - `url` string
            - `width` integer
            - `height` integer
            - `size` integer
            - `sources` unknown[]
              - …
          - `thumb` object
            - `url` string
            - `width` integer
            - `height` integer
            - `size` integer
          - `preview` object
            - `url` string
            - `width` integer
            - `height` integer
            - `size` integer
          - `squarePreview` object
            - `url` string
            - `width` integer
            - `height` integer
            - `size` integer
        - `duration` integer
        - `hasCustomPreview` boolean
        - `videoSources` object
          - `240` string, nullable
          - `720` string, nullable
      - `previews` unknown[]
        - unknown
      - `isTip` boolean
      - `isReportedByMe` boolean
      - `viewedCount` integer
      - `sentCount` integer
      - `isCanceled` boolean
      - `template` string
      - `messageId` integer
      - `toUserId` integer
      - `canUnsend` boolean
      - `unsendSeconds` integer
      - `price` string
      - `purchasedCount` integer
      - `canSendMessageToBuyers` boolean
  - `_pagination` object
    - `next_page` string
  - `_meta` object
    - `_credits` object
      - `used` integer
      - `balance` integer
      - `note` string
    - `_cache` object
      - `is_cached` boolean
      - `note` string
    - `_rate_limits` object
      - `limit_minute` integer
      - `limit_day` integer
      - `remaining_minute` integer
      - `remaining_day` integer

---

[API](https://skmtc.net/onlyfansapi/apis/onlyfans-api.md) · [All operations](https://skmtc.net/onlyfansapi/apis/onlyfans-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/onlyfansapi/onlyfans-api/versions/4a99d36f28a3/schema)
