# Messages

Send a message to one or many recipients. This API supports the same [channels](https://developers.sinch.com/docs/conversation/channel-support/) as Conversation API.

## Send a batch of messages

 - [POST /v1/projects/{project_id}/messages](https://developers.sinch.com/docs/conversation/api-reference/batch-api/batch/messages/batch_sendbatch.md): Send a message to multiple recipients. Parameter variables can be included in all string fields and customized with recipient specific values. Each recipient in the request will generate a message and subsequent delivery reports based on the channel used.

## Cancel scheduled messages

 - [DELETE /v1/projects/{project_id}/messages](https://developers.sinch.com/docs/conversation/api-reference/batch-api/batch/messages/batch_cancelbatch.md): Cancel one or more scheduled message batches by ID or by batch metadata. If using metadata, all batches matching the given key and value will be cancelled.

To successfully cancel a batch, you must do so before the send_after time. Batches without a send_after value (i.e., batches that are sent immediately) cannot be cancelled.

Cancellation is performed asynchronously. This means that this method always returns a 200 response, even if the cancellation fails.

## Get the status of batches by metadata

 - [GET /v1/projects/{project_id}/messages](https://developers.sinch.com/docs/conversation/api-reference/batch-api/batch/messages/batch_getbatchstatusesbymetadata.md): Retrive the status of batches that match the metadata provided.

## Get the status of batch of messages

 - [GET /v1/projects/{project_id}/messages/{batch_id}](https://developers.sinch.com/docs/conversation/api-reference/batch-api/batch/messages/batch_getbatchstatus.md): Retrieve the status of a batch of messages by its unique batch ID.

