---
title: "Create an action item"
method: POST
path: "/action-items"
tags: ["Taskflow"]
---

# Create an action item

`POST /action-items`

Create a new action item. The action item name must be unique within the company.

The position field is automatically set to the end of the list (count of existing items). Position is 0-indexed and maintains a continuous sequence with no gaps.

## Headers

- `X-Company-ID` string, required

## Request body

- ActionItem — Mixin for serializers that automatically validates position field values. Attributes: position_field_name (str): The name of the position field to validate. Defaults to 'position'. This mixin provides: - Automatic validation via validate_<field_name> method - Non-negative position validation - Max position validation based on existing items Requires 'position_queryset' in serializer context (provided by PositionReorderViewSetMixin).
  - `id` integer, required
  - `name` string, required
  - `company_id` string, uuid, required
  - `created_by_id` integer, required
  - `position` integer
  - `created_at` string, date-time, required
  - `modified_at` string, date-time, required
  - `completed_at` string, date-time, nullable, required
  - `completed` boolean

## Response `201`

- ActionItem — Mixin for serializers that automatically validates position field values. Attributes: position_field_name (str): The name of the position field to validate. Defaults to 'position'. This mixin provides: - Automatic validation via validate_<field_name> method - Non-negative position validation - Max position validation based on existing items Requires 'position_queryset' in serializer context (provided by PositionReorderViewSetMixin).
  - `id` integer, required
  - `name` string, required
  - `company_id` string, uuid, required
  - `created_by_id` integer, required
  - `position` integer
  - `created_at` string, date-time, required
  - `modified_at` string, date-time, required
  - `completed_at` string, date-time, nullable, required
  - `completed` boolean

## Other responses

- `400` — Invalid input - action item name must be unique or exceeds max length
- `401` — Unauthorized - authentication credentials not provided or invalid
- `403` — Forbidden - insufficient permissions

---

[API](https://skmtc.net/cubesoftware/apis/cube-api.md) · [All operations](https://skmtc.net/cubesoftware/apis/cube-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cubesoftware/cube-api/revisions/67d9f45bb99b/schema)
