Skip to Content
RCS Panel APIOverview & Authentication

RCS Panel API

The RCS Panel (rcs.msgai.in) is the self-service surface for RCS-only customers — separate from the partner API and the app panel. If you signed up at the RCS Panel you can use this API to do everything the UI does: design templates, upload contact lists, run broadcasts, recharge your wallet, and pull dashboard stats.

Base URL: https://api.msgai.in Route: /api/v1/rcs/* Auth: Authorization: Bearer <jwt>

Authentication

RCS Panel auth is JWT-based and separate from the partner pk_live_… keys. You exchange your email + password for a JWT and pass it on every subsequent request.

Sign in

POST /api/v1/rcs/auth/login Content-Type: application/json { "email": "you@yourbrand.com", "password": "your-password" }

Response:

{ "success": true, "token": "eyJhbGciOiJIUzI1Ni...", "expires_in": 604800 }

The token is valid for 7 days. Re-login any time before it expires; there is no refresh-token endpoint.

Using the token

All endpoints under /api/v1/rcs/* (except /auth/*) require:

Authorization: Bearer eyJhbGciOiJIUzI1Ni...

A missing or expired token returns 401 with {"success": false, "message": "unauthorized"}.

Account status gates

Some endpoints will return 403 until your account is fully provisioned:

StateTrigger
pendingSigned up, awaiting Route Mobile credentials
activeAdmin has assigned your bot name + credentials
suspendAccount suspended by admin

Broadcasts are blocked until your account is active AND your wallet has enough balance to cover the first message.

Errors

Every error response is shaped as:

{ "success": false, "message": "human-readable explanation" }

HTTP codes used:

CodeMeaning
400Bad request (invalid body, missing field, garbage values)
401Missing / expired / invalid JWT
403Account state or wallet check failed
404Resource not found or not owned by you
409Conflict (e.g. starting a broadcast that’s already running)
500Server error — open a support ticket with the response body

What’s next