---
title: "POST /v1/messages"
method: POST
path: "/v1/messages"
tags: ["messages"]
---

# POST /v1/messages

`POST /v1/messages`

Create a new Message (draft) for an user

## Request body

- NewMessageV2
  - `attachments` Attachment[]
    - `content_type` string
    - `is_inline` boolean
    - `file_name` string
    - `size` integer
    - `temp_id` string
    - `url` string
    - `mime_boundary` string
  - `body` string
  - `discussion_id` string
  - `user_identities` string[], required
  - `message_id` string
  - `parent_id` string
  - `participants` Participant[]
    - `address` string, required
    - `contact_ids` string[]
    - `label` string
    - `protocol` string, required
    - `type` 'To' | 'Cc' | 'Bcc' | 'From' | 'Reply-To' | 'Sender', required
  - `subject` string
  - `privacy_features` PrivacyFeatures

## Response `200`

Draft creation completed

- object
  - `location` string — url to retrieve draft at /messages/{message_id}

## Other responses

- `400` — malform request
- `401` — Unauthorized access
- `422` — Unprocessable entity. Parameters were valid but the server was unable to create the draft (probably because of a semantically erroneous document, like an empty draft)

---

[API](https://skmtc.net/caliopen/apis/caliopen-http-rest-api.md) · [All operations](https://skmtc.net/caliopen/apis/caliopen-http-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/caliopen/caliopen-http-rest-api/revisions/f32b5d08284d/schema)
