Platform

A customer messaging API, inbox and agent platform

Connect customer messages to your application with a REST API and signed webhooks, or use Comms inbox and agent controls. Start with one tested conversation before scaling a production deployment.

Build on the API

Send and receive customer messages, inspect capabilities, manage eligible lines, and subscribe to message events. Keys have explicit scopes; use separate credentials for each integration rather than sharing a broad administrative key.

const response = await fetch("https://osis.co/api/v1/comms/messages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.COMMS_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": "appointment-4242-confirm"
  },
  body: JSON.stringify({
    to: process.env.COMMS_TEST_TO,
    body: "Your appointment is confirmed.",
    channel: "auto"
  })
});
if (!response.ok) throw new Error(`Comms returned ${response.status}`);
const result = await response.json();
console.log(result.message.id); // acceptance is not delivery

Route by capability

RCS requires a supported dedicated line, carrier enablement, and a compatible recipient. Sending currently supports one plain-text message to an E.164 phone number.

Auto routing selects an available channel for the sending line and recipient, moving to another channel only after a confirmed pre-send rejection. RCS fallback supports plain text. An uncertain result does not trigger another send. An explicit channel never falls back.

Acceptance is not delivery. Delivery and read events depend on the channel, line, recipient, and available receipts. SMS does not provide read receipts.

RouteRequirementsBehavior
iMessageSupported line and recipientRich messaging capabilities vary by line and recipient. Not Apple Messages for Business.
RCSSupported dedicated line, carrier enablement, compatible recipientPlain text to one E.164 number. Check line and recipient capabilities.
SMSSMS-capable line and supported destinationCarrier messaging. No read receipts; regional registration requirements may apply.
AutoEligible routes for the selected line and contentAuto routing selects an available channel for the sending line and recipient, moving to another channel only after a confirmed pre-send rejection. RCS fallback supports plain text. An uncertain result does not trigger another send. An explicit channel never falls back.

Agents and humans share conversation context

Use agent instructions and knowledge for recurring work, with human handoff when a conversation needs a person. For your own AI responder, keep thread ownership, opt-outs and retry state in your application rather than relying on model memory.

AI usage is billed separately from messaging plans, through prepaid Comms credits or a connected customer OpenRouter account. No messaging plan includes AI usage. Review credit-purchase fees and model costs before enabling a hosted agent.

Connect an assistant through hosted MCP

The hosted MCP endpoint is https://comms.osis.co/api/v1/comms/mcp. It supports OAuth or a scoped API key. Inspect tools/list for the current tool inventory; use webhooks for event-driven inbound processing.

Plan a production rollout

API line claiming requires workspace approval and available inventory. A denied claim returns line_claim_not_allowed; unavailable inventory returns no_available_line.

Porting requires approval and a supported number. Confirm port-in, port-out, geographic availability, fees, and timing before planning a migration. You can cancel replacement setup before submitting the transfer; a submitted transfer cannot be canceled from the setup panel.

Payment requests use checkout links only when the global Payments product and workspace payments are enabled and merchant requirements are met. Native in-thread Apple Pay is coming soon; checkout links are not native Apple Pay in Messages.