> This page is for Platform.

> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes.

## Message Analytics dashboard added

Spot messaging deliverability and compliance problems early: open **Analytics** in the
Dashboard and select **Messaging**. The dashboard shows message volume over time, delivery and
error rates, your top error codes, where senders and recipients are, and inbound opt-out
trends, all filterable by time range.

## Project and Subproject management added to the REST API

Manage Projects and Subprojects with a native REST API instead of the older cXML API. Beyond
what the cXML API offered, you can rotate a Project's signing key, delete Subprojects, and
update Project settings instead of only renaming a Project.

Start with [List projects](/docs/apis/rest/projects/list-projects),
[Create a subproject](/docs/apis/rest/projects/create-subproject),
[Update a project](/docs/apis/rest/projects/update-project),
[Rotate a project's signing key](/docs/apis/rest/projects/rotate-signing-key), and
[Delete a subproject](/docs/apis/rest/projects/delete-subproject).

## SWML conference recordings added to the Recordings API and Dashboard

Retrieve SWML conference recordings the same way as any other recording: with
[List recordings](/docs/apis/rest/recordings/list-call-recordings) and
[Get recording](/docs/apis/rest/recordings/get-call-recording), or under **Storage** >
**Recordings** in the Dashboard. Previously, the only way to reach them was the recording URL
in the conference callback.

## SIP authentication credentials added to call creation

Include `username` and `password` when you dial a SIP destination with
[Send call commands](/docs/apis/rest/calls/call-commands), to authenticate against SIP
endpoints that require credentials.

## RELAY messaging error codes changed to be more specific and consistent

Error codes and messages for RELAY messages that fail on send or on delivery receipt are now
consistent, and new codes identify more specific failure causes. The change affects
`error_code` and `error_message` on status callbacks, in the Messaging Logs API, and in the
Dashboard message view. The RELAY SDK interface is unchanged, and cXML messaging isn't
affected. Every code is listed in the [error code reference](/docs/apis/error-codes).