Guest API POST /messages returning 401 with valid token

Trying to use the Genesys Guest API to send messages without the widget. I’m generating a valid access token using client credentials, but the POST /api/v2/external/messaging/messages endpoint keeps returning a 401 Unauthorized error. The JSON payload looks correct with the from and to fields populated.

{
 "from": {"id": "external-id-123"},
 "to": {"id": "genesys-user-id"},
 "content": {"text": "test"}
}

What am I missing here?