---
title: "Query SMS history (paginated). Filter by recipient (`to`) and `createdAt` date range via queryOptionsRequest; page with pagedListRequest { nextId, pageSize }. Returns { data, total, nextId, currentTotal }."
method: POST
path: "/api/v1/sms/query"
tags: ["SMS"]
---

# Query SMS history (paginated). Filter by recipient (\`to\`) and \`createdAt\` date range via queryOptionsRequest; page with pagedListRequest { nextId, pageSize }. Returns { data, total, nextId, currentTotal }.

`POST /api/v1/sms/query`

## Request

- Base URL: `https://api.voicelogica.ai`
- URL: `https://api.voicelogica.ai/api/v1/sms/query`
- Auth: API key in header `x-api-key`

## Headers

- `x-api-key` string, required
- `x-company-id` string

## Request body

- object: Request schema for querying SMS history with filters and pagination
  - `pagedListRequest` object: Pagination settings. Omit for the latest 20.
    - `nextId` string, nullable: Cursor for the next page. null for the first page; pass the `nextId` returned in the response for subsequent pages.
    - `pageSize` integer: Number of SMS records per page (default 20).
  - `queryOptionsRequest` object: Query filter and pagination options. Omit for no filter.
    - `filtersRequest` object[], required: Filters to apply to the SMS history query.
      - `field` string, required: Field to filter on (e.g. "to", "from", "status", "direction", "source", "callId", "createdAt").
      - `matchMode` number, required: Match mode: 1=Equal, 8=Contains, 10=Between (for date ranges), 11=In.
      - `operator` number, nullable: Logical operator between filters: 1=AND, 2=OR.
      - `value` object, nullable: Single value (for Equal, Contains, ...).
      - `values` object[], nullable: Array of values (for In).
      - `rangeValues` object, nullable: Range values for Between (date ranges).
        - `start` object, required: Range start (ISO 8601 date string for date fields).
        - `end` object, required: Range end (ISO 8601 date string for date fields).
      - `ignoreCase` boolean, nullable: Case-insensitive comparison.

## Response `200`

Paginated SMS history

- object
  - `data` unknown[], required: Array of response data
    - unknown
  - `total` integer, required: Total number of records
  - `nextId` string, nullable: ID of the next page, if available
  - `currentTotal` integer, required: Number of records in the current response

## Other responses

- `401`: Unauthorized
- `403`: Invalid CSRF
- `429`: Rate limit exceeded
- `500`: Internal Server Error

---

[API](https://skmtc.dev/voicelogica/apis/voice-logica-api.md) · [All operations](https://skmtc.dev/voicelogica/apis/voice-logica-api/llms.txt) · [OpenAPI document](https://skmtc.dev/voicelogica/apis/voice-logica-api/revisions/30f76840084e?raw)
