Source: https://atomic-works-test.docs-staging.pageloop.ai/api-reference/requests/postapi-v1-requests-kanban

# Load a request Kanban board (1D or 2D), single call

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

### Filtering

Use the `filters` field to narrow results. Pass an empty array or omit the field 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)

API key authentication.

## Headers

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

## Body

#### view\_name (body, string)

#### group\_by (body, array of string, required)

#### filters (body, array of object)

#### properties

#### attribute (string)

#### operator (enum (string)) — allowed: EQUALS, NOT\_EQUALS, CONTAINS, NOT\_CONTAINS, IN, NOT\_IN, GREATER\_THAN, LESS\_THAN, GREATER\_THAN\_EQUALS, LESS\_THAN\_EQUALS, IS\_BETWEEN, IS\_NULL, IS\_NOT\_NULL, STARTS\_WITH, ENDS\_WITH, TEXT\_CONTAINS, TEXT\_DOES\_NOT\_CONTAINS, IS\_ANY\_OF, IS\_NOT\_ANY\_OF, IS\_EXACTLY, IS\_ON\_OR\_BEFORE, IS\_ON\_OR\_AFTER, IS\_WITHIN

#### values (array of object)

#### sort (body, string)

#### page\_size (body, integer)

#### workspace\_id (body, integer)

## Response

#### 200

Successful response

#### Request

```bash cURL
curl -X POST 'https://{tenant}.atomicwork.com/api/v1/requests/kanban' \
  -H 'X-Api-Key: <api-key>' \
  -H 'Content-Type: application/json' \
  -d '{"view_name": "string", "group_by": ["string"], "filters": [{"attribute": "string", "operator": "EQUALS", "values": ["\u2026"]}], "sort": "string", "page_size": 0, "workspace_id": 0}'
```

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

```python Python
import requests

res = requests.post(
    'https://{tenant}.atomicwork.com/api/v1/requests/kanban',
    headers={'X-Api-Key': '<api-key>'},
    json={"view_name": "string", "group_by": ["string"], "filters": [{"attribute": "string", "operator": "EQUALS", "values": ["\u2026"]}], "sort": "string", "page_size": 0, "workspace_id": 0}
)
data = res.json()
```
