Create a rich card RCS template

Creates a single rich card with optional media and 1–4 interactive buttons (reply / open_url / dial_call). Sent as application/json. Provide media via either the public media_url or the base64 data URI media_file (or neither). Every template belongs to one agent, declared in agent_id; it is registered in the supplier project of that agent's line.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required

Friendly name persisted in the template registry.

uuid
required

The RCS agent the template belongs to — the id returned by POST /rcs/agents. The template is registered in the supplier project of that agent's line, and every send of it goes out as this agent (POST /rcs with template_id takes no agent_id). Must be an approved agent of the authenticating app; to use the same content under another agent, create another template.

string
required
length ≤ 100
string
required
length ≤ 1600
uri

Public URL of the media. Must use HTTPS. Mutually exclusive with media_file.

file
^data:[A-Za-z0-9+/.@-]+(/[A-Za-z0-9+/.@-]+)?;(?:name=[^;]+;)?base64,[A-Za-z0-9+/=]+$

Media file upload. Sent inline inside the JSON body as a base64 data URI (data:<mime>;base64,<payload>); the request is application/json, NOT multipart/form-data. The format: binary annotation is the trigger that makes the readme.io API Explorer (and Insomnia) render a file-attach widget that serialises the chosen file into this data URI shape on submit; the surrounding application/json content-type keeps SDK generators on the JSON code path. Mutually exclusive with media_url. Limit: 2 MB decoded (413 above it). Rejected with 415 if the decoded content is not a recognized image (JPEG, PNG, GIF, WEBP), regardless of the declared extension or MIME type.

string
length ≤ 306
default_variables
array of objects

Optional fallback values for the {{N}} placeholders inside body.

default_variables
buttons
array of objects
required
length between 1 and 4

1–4 interactive buttons.

buttons*
string
enum
required

Button variant. Drives which payload field is required (url for open_url, phone_number for dial_call; postback_data is optional and only used with reply).

Allowed:
string
required
length ≤ 25

Visible button label (max 25 chars).

uri

Required when type = open_url.

string

Required when type = dial_call. E.164 format (e.g. +5511987654321).

string
length ≤ 2048

Optional, only used when type = reply. Echoed back to your webhook when the user taps the button.

Responses

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json