# Sinch API Messages Send Media

> Send a media message (image, video, document) via Sinch Conversation API

- Skill: `sinch/sinch-api-messages-send-media` (Agent Skill)
- Install (CLI): `npx skillmds@latest add sinch/sinch-api-messages-send-media`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sinch/sinch-api-messages-send-media/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: sinch (https://skillmd.com/u/sinch)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/sinch/sinch-api-messages-send-media

---


# Send Media Message

Send a media message (image, video, audio, or document) to a recipient using the Sinch Conversation API. Supports SMS (MMS), RCS, WhatsApp, and other channels that support media.

**IMPORTANT: Execute this command directly. Do NOT generate script files. Do NOT create Python/JavaScript files. Perform the API call immediately using the instructions below.**

## Input

- `--to` / `-t`: Recipient phone number (E.164 format) - required
- `--url` / `-u`: Public URL of the media file - required
- `--channel` / `-c`: Channel (SMS, RCS, WHATSAPP, MMS) - optional, defaults to SMS
- `--caption` / `-C`: Optional caption text for the media

Arguments: $ARGUMENTS

## Instructions

**Execute these steps directly - do not write code or scripts:**

0. Check if $ARGUMENTS is empty or only contains the command name:
   - If empty, enter interactive mode: ask for recipient, media URL, channel, and optional caption
   - If arguments provided, proceed to step 1

1. Parse and validate: `--to` (E.164), `--url` (valid HTTPS URL), `--channel` (default SMS), optional `--caption`

2. Try MCP tool `mcp__sinch__send-media-message` with recipient, url, channel, and caption. On success display result and skip to step 7.

3. If MCP not available, get config from env: CONVERSATION_PROJECT_ID, CONVERSATION_REGION, CONVERSATION_APP_ID, CONVERSATION_KEY_ID, CONVERSATION_KEY_SECRET. If missing, report "Sinch API is not configured."

4. Send via Conversation API: POST https://{region}.conversation.api.sinch.com/v1/projects/{projectId}/messages:send with OAuth2 Bearer token. Request body: app_id, recipient (channel_identities with channel and identity), message.media_message with url and optional caption.

5. On success (200/201): display "✅ Media message sent successfully!" with message ID, recipient, channel.

6. Handle errors: validation failures, missing config, API errors with status and description.

7. Handle errors gracefully for all paths.

## Examples

```
/sinch-api-messages-send-media --to=+14155551234 --url=https://example.com/image.jpg
/sinch-api-messages-send-media -t +14155551234 -u https://example.com/video.mp4 --channel=RCS --caption="Check this out"
```

## API Reference

- **MCP Tool**: `mcp__sinch__send-media-message`
- **API Endpoint**: POST /v1/projects/{projectId}/messages:send
- **Documentation**: https://developers.sinch.com/docs/conversation/message-types

## Notes

- Media URL must be publicly accessible (HTTPS). MMS has ~1MB limit; RCS/WhatsApp support larger files.
- Channel must support media (SMS uses MMS where available).

