---
title: "Update a physical eSIM's self-reported MSISDN and/or display name"
method: PATCH
path: "/numbers/esims/{id}"
tags: ["Esims"]
---

# Update a physical eSIM's self-reported MSISDN and/or display name

`PATCH /numbers/esims/{id}`

Updates the eSIM's self-reported msisdn and/or display name. Both fields are optional, but the request body itself is required. Omitting a field leaves it unchanged; setting it to null or an empty string clears it. `name` is capped at 15 characters. Available regardless of the eSIM's current status.

## Path parameters

- `id` string, uuid, required

## Request body

- PatchEsimInput
  - `msisdn` string, nullable — Self-reported E.164 MSISDN for this eSIM's line. Omit to leave unchanged; null/empty clears it. An unverified label — never used for routing.
  - `name` string, nullable — User-defined display label — NFC-normalized, up to 15 GRAPHEMES (not UTF-16 code units; an emoji/flag may span several). Omit to leave unchanged; null/empty/whitespace-only clears it.

## Response `200`

eSIM updated

- object
  - `data` PublicEsim, required
    - `id` string, uuid, required
    - `status` 'in_stock' | 'owned' | 'installing' | 'installed' | 'install_failed' | 'retired', required
    - `source` 'stocked' | 'byo', required
    - `carrierName` string, nullable, required
    - `countryCode` string, nullable, required
    - `iccid` string, nullable, required
    - `subscriptionId` integer, nullable, required
    - `deviceId` string, uuid, nullable, required
    - `deviceUuid` string, nullable, required
    - `msisdn` string, nullable, required
    - `name` string, nullable, required
    - `createdBy` string, nullable, required
    - `networkStatus` 'degraded' | 'null', nullable, required
    - `rentStatus` 'not_applicable' | 'exempt' | 'inactive' | 'awaiting_payment' | 'active' | 'cancel_pending' | 'refund_pending' | 'retiring' | 'billing_error'
    - `checkoutUrl` string, nullable
    - `currentPeriodEnd` string, date-time, nullable
    - `cancellationScheduled` boolean
    - `exempt` boolean
    - `createdAt` string, date-time, nullable, required
    - `updatedAt` string, date-time, nullable, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `500` — Internal Server Error
- `503` — Service Unavailable — esims are disabled for this deployment (see `reason`)

---

[API](https://skmtc.dev/droidrun/apis/droidrun-cloud.md) · [All operations](https://skmtc.dev/droidrun/apis/droidrun-cloud/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/droidrun/droidrun-cloud/revisions/a1453ac769d4/schema)
