# Twilio SMS Message

> Twilio SMS message with status, direction, pricing, and segment tracking.

- Name: `twilio-sms-message`
- Categories: twilio
- Detail page: https://open-types.dev/types/twilio-sms-message

## Install

```bash
# Types only
npx shadcn add @open-types/twilio-sms-message

# Types + Zod v4 validators
npx shadcn add @open-types/twilio-sms-message-zod

# Types + real-world examples
npx shadcn add @open-types/twilio-sms-message-examples
```

## Types

```typescript
export type TwilioSMSStatus =
  | "queued"
  | "sending"
  | "sent"
  | "delivered"
  | "failed"
  | "undelivered";

export type TwilioSMSDirection =
  | "inbound"
  | "outbound-api"
  | "outbound-call"
  | "outbound-reply";

export interface TwilioSMSMessage {
  sid: string;
  account_sid: string;
  from: string;
  to: string;
  body: string;
  status: TwilioSMSStatus;
  direction: TwilioSMSDirection;
  date_created: string;
  date_updated: string;
  date_sent: string | null;
  num_segments: string;
  num_media: string;
  price: string | null;
  price_unit: string;
}
```

## Zod validator

```typescript
import * as z from "zod";
import type {
  TwilioSMSDirection,
  TwilioSMSMessage,
  TwilioSMSStatus,
} from "../types/twilio-sms-message";

export const twilioSMSStatusSchema = z.enum([
  "queued",
  "sending",
  "sent",
  "delivered",
  "failed",
  "undelivered",
]) satisfies z.ZodType<TwilioSMSStatus>;

export const twilioSMSDirectionSchema = z.enum([
  "inbound",
  "outbound-api",
  "outbound-call",
  "outbound-reply",
]) satisfies z.ZodType<TwilioSMSDirection>;

export const twilioSMSMessageSchema = z.object({
  sid: z.string(),
  account_sid: z.string(),
  from: z.string(),
  to: z.string(),
  body: z.string(),
  status: twilioSMSStatusSchema,
  direction: twilioSMSDirectionSchema,
  date_created: z.string(),
  date_updated: z.string(),
  date_sent: z.string().nullable(),
  num_segments: z.string(),
  num_media: z.string(),
  price: z.string().nullable(),
  price_unit: z.string(),
}) satisfies z.ZodType<TwilioSMSMessage>;

export type {
  TwilioSMSDirection,
  TwilioSMSMessage,
  TwilioSMSStatus,
} from "../types/twilio-sms-message";
```

## Examples

```typescript
// Source: https://www.twilio.com/docs/sms/api/message-resource
// Captured: 2026-05
import type {
  TwilioSMSStatus,
  TwilioSMSDirection,
  TwilioSMSMessage,
} from "../types/twilio-sms-message";

export const twilioSMSStatusExamples = {
  queued: "queued",
  sending: "sending",
  sent: "sent",
  delivered: "delivered",
  failed: "failed",
  undelivered: "undelivered",
} as const satisfies Record<string, TwilioSMSStatus>;

export const twilioSMSDirectionExamples = {
  inbound: "inbound",
  outboundApi: "outbound-api",
  outboundCall: "outbound-call",
  outboundReply: "outbound-reply",
} as const satisfies Record<string, TwilioSMSDirection>;

const delivered = {
  sid: "SMabcdef0123456789abcdef0123456789",
  account_sid: "ACabcdef0123456789abcdef0123456789",
  from: "+14155551234",
  to: "+14155555678",
  body: "Your verification code is 4827",
  status: "delivered",
  direction: "outbound-api",
  date_created: "Tue, 13 Apr 2026 18:00:00 +0000",
  date_updated: "Tue, 13 Apr 2026 18:00:02 +0000",
  date_sent: "Tue, 13 Apr 2026 18:00:01 +0000",
  num_segments: "1",
  num_media: "0",
  price: "-0.00750",
  price_unit: "USD",
} as const satisfies TwilioSMSMessage;

export const twilioSMSMessageExamples = {
  delivered,
  queued: {
    ...delivered,
    sid: "SMqueued12345678901234567890123456",
    status: "queued",
    date_sent: null,
    price: null,
  } satisfies TwilioSMSMessage,
  failed: {
    ...delivered,
    sid: "SMfailed12345678901234567890123456",
    status: "failed",
    date_sent: null,
    price: null,
  } satisfies TwilioSMSMessage,
  inbound: {
    ...delivered,
    sid: "SMinbound1234567890123456789012345",
    direction: "inbound",
    from: "+14155555678",
    to: "+14155551234",
    body: "STOP",
  } satisfies TwilioSMSMessage,
  mms: {
    ...delivered,
    sid: "SMmms123456789012345678901234567890",
    body: "See attached.",
    num_segments: "1",
    num_media: "2",
    price: "-0.02000",
  } satisfies TwilioSMSMessage,
  longSegmented: {
    ...delivered,
    sid: "SMlong12345678901234567890123456789",
    body: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. ".repeat(6),
    num_segments: "3",
    price: "-0.02250",
  } satisfies TwilioSMSMessage,
} as const;
```
