---
title: "Create task"
method: POST
path: "/v2/boxes/{boxKey}/tasks"
tags: ["Tasks"]
---

# Create task

`POST /v2/boxes/{boxKey}/tasks`

## Request

- Base URL: `https://api.streak.com/api`
- URL: `https://api.streak.com/api/v2/boxes/{boxKey}/tasks`
- Auth: HTTP bearer

Creates a task on a box.

## Path parameters

- `boxKey` string, required

## Request body

- TaskCreateBody: Fields used to create a task on a box.
  - `text` string, required: Task text.
  - `dueDate` integer, nullable: Task due date, in epoch milliseconds. Use -1 to create a task with no due date.
  - `assignedTo` AssigneeInput[], nullable: Users to assign to this task. Omit to assign the task to the creator.
    - `userKey` string, nullable: Key for the assigned user. Takes precedence when both userKey and email are specified.
    - `email` string, nullable: Email address for the assigned user. Required when userKey is omitted.
  - `meetingKey` string, nullable: Key for the meeting this task belongs to, when any.
  - `isDraft` boolean, nullable: Whether to create this task as a draft. Draft tasks do not send notifications or webhooks.
  - `teamContactKey` string, nullable: Key for the contact used to infer suggested task actions.
  - `draft` boolean

## Response `200`

OK

- Task: Task attached to a box, including assignment, due date, status, and suggested actions.
  - `key` string, required: Key for this task.
  - `boxKey` string, required: Key for the box this task belongs to.
  - `pipelineKey` string, required: Key for the pipeline this task belongs to.
  - `creatorKey` string, required: Key for the user who created this task.
  - `creator` UserBrief, required
    - `userKey` string, required: Key for this user.
    - `email` string, nullable: User email address, when available.
    - `displayName` string, nullable: Short display name for this user, when available.
    - `fullName` string, nullable: Full display name for this user, when available.
    - `givenName` string, nullable: Given name for this user, when available.
    - `avatarUrl` string, nullable: Avatar image URL for this user, when available.
  - `assignedTo` UserBrief[], required: Users assigned to this task. Tasks created without explicit assignees are assigned to the creator by default.
    - `userKey` string, required: Key for this user.
    - `email` string, nullable: User email address, when available.
    - `displayName` string, nullable: Short display name for this user, when available.
    - `fullName` string, nullable: Full display name for this user, when available.
    - `givenName` string, nullable: Given name for this user, when available.
    - `avatarUrl` string, nullable: Avatar image URL for this user, when available.
  - `creationDate` integer, required: Timestamp when this task was created, in epoch milliseconds.
  - `lastSavedTimestamp` integer, required: Timestamp when this task was last persisted, in epoch milliseconds.
  - `lastStatusChangeDate` integer, required: Timestamp when this task status last changed, in epoch milliseconds.
  - `dueDate` integer, nullable: Task due date, in epoch milliseconds.
  - `text` string, required: Task text.
  - `actions` TaskAction[], nullable: Suggested actions inferred from the task text.
    - `type` 'EMAIL' | 'SCHEDULE' | 'CALL' | 'FOLLOW_UP', required
    - `value` string, required: Suggested action value, such as an email address or phone number.
    - `contact` Contact, required: A contact shared with the team.
      - `key` string, required: Stable key for this contact.
      - `teamKey` string, required: Key for the team that owns this contact.
      - `givenName` string, nullable: Given name of the contact.
      - `familyName` string, nullable: Family name of the contact.
      - `other` string, nullable: Notes about the contact.
      - `title` string, nullable: Job title of the contact.
      - `emailAddresses` string[], required: Normalized email addresses with duplicates removed, in first-occurrence order.
      - `phoneNumbers` string[], required: Phone numbers with duplicates and null entries removed, in first-occurrence order.
      - `addresses` string[], required: Postal addresses with duplicates and null entries removed, in first-occurrence order.
      - `domains` string[], required: Website domains associated with the contact.
      - `normalizedDomains` string[], required: Stored normalized domains used to match organizations.
      - `twitterHandle` string, nullable: Twitter profile handle.
      - `facebookHandle` string, nullable: Facebook profile handle.
      - `linkedinHandle` string, nullable: LinkedIn profile handle.
      - `instagramHandle` string, nullable: Instagram profile handle.
      - `photoUrl` string, nullable: URL of the contact profile image.
      - `lastSavedUserKey` string, nullable: Key for the user who last edited this record.
      - `creatorKey` string, nullable: Key for the user who created this record.
      - `creationDate` integer, nullable: Time this record was first created, in epoch milliseconds.
      - `versionTimestamp` integer, nullable: Time this version of the record was created, in epoch milliseconds.
      - `lastSavedTimestamp` integer, nullable: Time this record was last saved, in epoch milliseconds.
      - `lastEnrichmentTimestamp` integer, nullable: Time enrichment was last applied or reviewed, in epoch milliseconds.
      - `contactLinks` ContactLink[], required: Contacts linked to this record, in their stored order.
        - `key` string, required: Key for the linked contact.
        - `isMagicLinked` boolean: Whether Streak linked this record automatically.
        - `creationTimestamp` integer, nullable: Time the relationship was created, in epoch milliseconds.
      - `orgLinks` OrganizationLink[], required: Organizations linked to this record, in their stored order.
        - `key` string, required: Stable key for the linked organization.
        - `isMagicLinked` boolean: Whether Streak linked this record automatically.
        - `creationTimestamp` integer, nullable: Time the relationship was created, in epoch milliseconds.
      - `fields` object, required: Custom field values keyed by field identifier.
  - `status` 'NOT_DONE' | 'DONE', required
  - `reminderStatus` 'NONE' | 'SCHEDULED' | 'REMINDED' | 'ERROR_ON_REMINDER' | 'NOT_REMINDED_BECAUSE_TASK_DONE', required
  - `meetingKey` string, nullable: Key for the meeting this task belongs to, when any.

## Changes

- **2026-10-16** `1c3a5ef8b9ea`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/streakyc/apis/streak/changes/v2/boxes/:boxKey/tasks/post.md)

---

[API](https://skmtc.dev/streakyc/apis/streak.md) - [All operations](https://skmtc.dev/streakyc/apis/streak/llms.txt) - [OpenAPI document](https://skmtc.dev/streakyc/apis/streak/revisions/3648671fd1cf?raw)
