# Create a to-do

`POST /v1/activity-todos` calls `crm.activity.todo.add`.

```json
{"ownerTypeId":2,"ownerId":123,"deadline":"2026-10-01T12:00:00Z","title":"Review contract","description":"Call the customer"}
```

`ownerTypeId`, `ownerId`, and `deadline` are required. Optional fields are `title`, `description`, `responsibleId`, `parentActivityId`, `pingOffsets` (non-negative integer minutes), and `colorId` (`default`, `1`–`7`). `settings`, `fileTokens`, and `isCopy` are unsupported.

`parentActivityId` links the new to-do to an existing activity, and Bitrix24 automatically completes that parent activity. The parent must be bound to the same CRM owner. If its binding changes during creation, a 422 response includes the already created to-do's `error.createdId`; also inspect the parent state.

Success: HTTP 201, `{ "success": true, "data": <activity> }`. The activity is read back after creation. If that read fails, a 502 `ACTIVITY_CREATED_READ_FAILED` includes `error.createdId`: inspect the created to-do before repeating POST. An unknown parent, invalid color, or invalid ping offset is refused before creation.
