Source: https://atomicwork-preview.docs-staging.pageloop.ai/api-reference/requests/postapi-v-1-requests-list

# Get requests by filter

POST `https://{tenant}.atomicwork.com/api/v1/requests/list`

### Filtering

The request body is an **array of filter objects**. Send an empty array (`[]`) to retrieve all records.

Each filter object has the following fields:

| Field       | Type   | Description                                             |
| ----------- | ------ | ------------------------------------------------------- |
| `attribute` | string | The field to filter on (see Supported attributes below) |
| `operator`  | string | Comparison operator (see Available operators below)     |
| `values`    | array  | One or more `\{ "value": \<scalar> \}` objects          |

**Supported attributes**

| Attribute      | Typical operator | Description                                                           |
| -------------- | ---------------- | --------------------------------------------------------------------- |
| `status`       | `IS_ANY_OF`      | Ticket status (e.g. `OPEN`, `IN_PROGRESS`, `RESOLVED`, `CLOSED`).     |
| `type`         | `IS_ANY_OF`      | Request type (e.g. `INCIDENT`, `SERVICE_REQUEST`, `GENERAL_REQUEST`). |
| `assignee_id`  | `IS_ANY_OF`      | Assigned agent user ID.                                               |
| `requester_id` | `IS_ANY_OF`      | Requester user ID.                                                    |
| `created_at`   | `IS_BETWEEN`     | Creation timestamp (ISO 8601). Use for date range filtering.          |
| `updated_at`   | `IS_BETWEEN`     | Last-updated timestamp (ISO 8601).                                    |

**Available operators**

| Operator                             | Meaning                                                   |
| ------------------------------------ | --------------------------------------------------------- |
| `EQUALS`                             | Exact match                                               |
| `NOT_EQUALS`                         | Exclude exact match                                       |
| `IN` / `IS_ANY_OF`                   | Match any value in the list                               |
| `IS_NOT_ANY_OF`                      | Exclude all listed values                                 |
| `IS_BETWEEN`                         | Inclusive range — pass exactly two values: `[start, end]` |
| `IS_ON_OR_BEFORE` / `IS_ON_OR_AFTER` | Date/time boundary comparisons                            |
| `CONTAINS` / `TEXT_CONTAINS`         | Substring or set membership                               |
| `IS_NULL` / `IS_NOT_NULL`            | Null checks — `values` array can be empty                 |
| `STARTS_WITH` / `ENDS_WITH`          | String prefix/suffix match                                |

**Example**

```json
[
  {
    "attribute": "status",
    "operator": "IS_ANY_OF",
    "values": [
      {
        "value": "OPEN"
      },
      {
        "value": "IN_PROGRESS"
      }
    ]
  },
  {
    "attribute": "created_at",
    "operator": "IS_BETWEEN",
    "values": [
      {
        "value": "2024-01-01T00:00:00Z"
      },
      {
        "value": "2024-12-31T23:59:59Z"
      }
    ]
  }
]
```

## Authorization

#### X-Api-Key (header, string, required)

## Headers

#### X-Workspace-Id (header, string)

## Query Parameters

#### filter\_name (query, string, required)

#### sort\_order (query, enum (string))

#### sort (query, string)

Generic ordered sort as a compact string, e.g. `created_at:ASC,subject:DESC`. Field keys are validated server-side against the view-column allowlist. When present, takes precedence over the legacy `sort_order` enum.

#### page (query, integer, required)

#### per\_page (query, integer)

## Response

#### 200

Successful response

#### Request

```bash cURL
curl -X POST 'https://{tenant}.atomicwork.com/api/v1/requests/list' \
  -H 'X-Api-Key: <api-key>' \
  -H 'Content-Type: application/json' \
  -d '[{"attribute": "string", "operator": "EQUALS", "values": [{"value": "\u2026", "nested_filter": "\u2026"}]}]'
```

```javascript JavaScript
const res = await fetch('https://{tenant}.atomicwork.com/api/v1/requests/list', {
  method: 'POST',
  headers: {
    'X-Api-Key': '<api-key>',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify([{"attribute": "string", "operator": "EQUALS", "values": [{"value": "\u2026", "nested_filter": "\u2026"}]}]),
});
const data = await res.json();
```

```python Python
import requests

res = requests.post(
    'https://{tenant}.atomicwork.com/api/v1/requests/list',
    headers={'X-Api-Key': '<api-key>'},
    json=[{"attribute": "string", "operator": "EQUALS", "values": [{"value": "\u2026", "nested_filter": "\u2026"}]}]
)
data = res.json()
```
