---
title: "Create a Message"
method: POST
path: "/Accounts/{AccountSid}/Messages"
tags: ["Messages"]
---

# Create a Message

`POST /Accounts/{AccountSid}/Messages`

Create and send a message.

#### Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Messaging_.

[Learn more about API scopes](/platform/dashboard/getting-started/your-signalwire-api-space#api-token-scopes).

## Path parameters

- `AccountSid` string, uuid, required

## Response `201`

Response returned when a message is created.

- Message — Message model.
  - `account_sid` string, uuid, required — The unique identifier of the project that sent or received this message.
  - `api_version` string, required — The version number of the SignalWire cXML REST API used to handle this message.
  - `body` string, nullable, required — The text of the message. Up to 1600 characters long. May be null if filtered for spam.
  - `num_segments` integer, required — The number of segments that make up the entire message.
  - `num_media` integer, required — The number of media files that were included with the message.
  - `date_created` string, required — The date and time the message was created in RFC 2822 format.
  - `date_sent` string, nullable, required — The date and time the message was sent in RFC 2822 format, or null if not yet sent.
  - `date_updated` string, required — The date and time the message was last updated in RFC 2822 format.
  - `direction` 'inbound' | 'outbound-api' | 'outbound-call' | 'outbound-reply', required — Message direction.
  - `error_code` string, nullable, required — If an error has occurred on the message, the error code will give you a specific code, or null if no error.
  - `error_message` string, nullable, required — A human readable description of the error that occurred, or null if no error.
  - `from` string, required — The phone number in E.164 format that sent the message.
  - `price` number, float, nullable, required — The cost of the individual message billed to your project, or null if not yet calculated.
  - `price_unit` string, required — The currency in which `price` is charged as.
  - `sid` string, uuid, required — A unique ID that identifies this specific message.
  - `status` 'queued' | 'initiated' | 'sent' | 'failed' | 'delivered' | 'undelivered' | 'received', required — Message status.
  - `to` string, required — The phone number in E.164 format that received the message.
  - `messaging_service_sid` string, uuid, nullable, required — If a number group was used when sending an outbound message, the number group's ID will be present, or null otherwise.
  - `uri` string, required — The URI of this particular message.
  - `subresource_uris` MessageSubresourceUris, required — Message subresource URIs.
    - `media` string, required — The URI for media.

## Other responses

- `400` — The request was invalid or cannot be processed. Check the error details for more information.
- `401` — Authentication failed. Please verify your credentials and try again.
- `422` — The request could not be processed due to validation errors. Check the error details for more information.

## Changes

- **2026-01-20** `dce1bcef69f0` — 1 info
  - added the non-success response with the status `400`
- **2026-01-19** `d5fbaaddfa3e` — 5 breaking, 2 warning, 6 info
  - added the pattern `^\d+\.?\d{0,4}$` to the request property `MaxPrice`
  - the `ApplicationSid` request property type/format changed from `string`/`` to `string`/`uuid`
  - the `MessagingServiceSid` request property type/format changed from `string`/`` to `string`/`uuid`
  - the `StatusCallback` request property type/format changed from `string`/`` to `string`/`uri`
  - …9 more
- **2026-01-15** `50dab84bcf02` — 1 breaking
  - request body became required
- **2026-01-15** `479ede876c89` — 1 info
  - request body became optional
- **2026-01-15** `07f73f74a61d` — 1 breaking, 1 info
  - removed the media type `application/json` from the request body
  - added the media type `application/x-www-form-urlencoded` to the request body

[Full history](https://skmtc.dev/signalwire/apis/compatibility-api/changes/Accounts/:AccountSid/Messages/post.md)

---

[API](https://skmtc.dev/signalwire/apis/compatibility-api.md) · [All operations](https://skmtc.dev/signalwire/apis/compatibility-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/signalwire/compatibility-api/revisions/8891278c1908/schema)
