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

# Asset List with views, and filters.

POST `https://{tenant}.atomicwork.com/api/v1/assets/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`      | Asset status (e.g. `IN_USE`, `AVAILABLE`, `RETIRED`). |
| `type_id`        | `IS_ANY_OF`      | Asset type ID.                                        |
| `assigned_to_id` | `IS_ANY_OF`      | User ID the asset is assigned to.                     |

**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": "IN_USE"
      },
      {
        "value": "AVAILABLE"
      }
    ]
  }
]
```

## Authorization

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

## Headers

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

## Query Parameters

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

#### sort (query, string)

Generic multi-column sort, comma-separated `field:DIRECTION` (e.g. `display_name:ASC,created_at:DESC`). Sortable fields are those advertised with `sortable: true` by the asset fields endpoint. Takes precedence over `sort_order`. Invalid/unknown fields -> 400.

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

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

## Response

#### 200

Successful response

#### Request

```bash cURL
curl -X POST 'https://{tenant}.atomicwork.com/api/v1/assets/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/assets/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/assets/list',
    headers={'X-Api-Key': '<api-key>'},
    json=[{"attribute": "string", "operator": "EQUALS", "values": [{"value": "\u2026", "nested_filter": "\u2026"}]}]
)
data = res.json()
```
