> For the complete documentation index, see [llms.txt](https://docs.eseye.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eseye.com/api-reference/sim-api/sim/update-a-specific-sim.md).

# Update a specific SIM

Updates a SIM. Send only the fields you want to change.

Do not send `null` or an empty string. Any `iccMnoId`, `iccSpecId`, or `iccTypeId` you send must already exist in the system.

You cannot change a suspended SIM. Unsuspend it first.

```json
{"openapi":"3.1.0","info":{"title":"AnyNet SIM API","version":"2.0.0"},"tags":[{"name":"SIM"}],"servers":[{"url":"https://sim.api.anynetiot.com","description":"Production"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"An OAuth 2.0 client credentials access token, sent as `Authorization: Bearer <token>`.\n\nRequest the token from `https://eseye-idp-prod.auth.eu-west-1.amazoncognito.com/oauth2/token` using the client ID and client secret Eseye supplied. Tokens expire after one hour."}},"parameters":{"iccId":{"name":"iccId","in":"path","required":true,"description":"The ICC ID of the SIM.","schema":{"type":"string"}}},"schemas":{"Sim":{"type":"object","properties":{"iccId":{"type":"string","maxLength":20,"description":"The Integrated Circuit Card Identifier that uniquely identifies the SIM, or the eUICC SIM profile."},"simId":{"type":"string","maxLength":32,"description":"The Eseye SIM reference number, printed on the physical SIM card."},"iccMnoId":{"type":"string","description":"Identifies the mobile network operator that provides the IMSI."},"iccSpecId":{"type":"integer","description":"The SIM manufacturing batch number, which identifies the SIM specification."},"iccTypeId":{"type":"integer","description":"The SIM part number, which identifies the form factor, such as plug-in, embedded, or eSIM."},"adminSuspend":{"allOf":[{"$ref":"#/components/schemas/YesNo"}],"description":"An Eseye administrator has suspended the SIM. Only Eseye can unsuspend it. Service charges continue while a SIM is suspended."},"systemSuspend":{"allOf":[{"$ref":"#/components/schemas/YesNo"}],"description":"The Eseye system has suspended the SIM under your alert rules. It unsuspends automatically at the start of the next billing cycle. Service charges continue while a SIM is suspended."},"customerSuspend":{"allOf":[{"$ref":"#/components/schemas/YesNo"}],"description":"You have suspended the SIM. You can unsuspend it at any time. Service charges continue while a SIM is suspended."},"dataSuspend":{"allOf":[{"$ref":"#/components/schemas/YesNo"}],"description":"Whether the device is blocked from using data."},"messagingSuspend":{"allOf":[{"$ref":"#/components/schemas/YesNo"}],"description":"Whether the device is blocked from sending and receiving SMS."},"voiceSuspend":{"allOf":[{"$ref":"#/components/schemas/YesNo"}],"description":"Whether the device is blocked from making and receiving voice calls."},"eId":{"type":"string","maxLength":32,"description":"The eUICC identifier. This is the global serial number that identifies an eUICC for remote SIM provisioning."},"pin1":{"type":"string","maxLength":5,"description":"The primary PIN, used to unlock the SIM. Eseye advises against enabling a PIN on IoT devices."},"pin2":{"type":"string","maxLength":5,"description":"The secondary PIN, used to unlock advanced SIM services. Eseye advises against enabling a PIN on IoT devices."},"puk1":{"type":"string","maxLength":8,"description":"The unblocking key that resets `pin1` after too many incorrect attempts."},"puk2":{"type":"string","maxLength":8,"description":"The unblocking key that resets `pin2` after too many incorrect attempts."},"rspId":{"type":"integer","description":"Identifies the remote SIM provisioning platform the SIM uses."},"platformId":{"type":"integer","description":"Identifies the platform the SIM is provisioned on."},"activatedDate":{"type":"string","format":"date-time","description":"When the SIM was first activated. All times are UTC."},"terminatedDate":{"type":["string","null"],"format":"date-time","description":"When the SIM was terminated. `null` if the SIM has not been terminated."},"status":{"$ref":"#/components/schemas/SimStatus"},"attributes":{"type":"array","description":"The attributes attached to the SIM. Omitted if the SIM has none.","items":{"$ref":"#/components/schemas/SimAttribute"}},"portfolioPackage":{"$ref":"#/components/schemas/PortfolioPackage"}},"description":"A SIM on your account, identified by its ICC ID."},"YesNo":{"type":"string","description":"A yes or no flag.\n\n| Value | Meaning |\n| --- | --- |\n| `yes` | The service or object is disabled. |\n| `no` | The service or object is not disabled. |","enum":["yes","no"]},"SimStatus":{"type":"string","description":"The status of the SIM.\n\n| Value | Meaning |\n| --- | --- |\n| `available` | The SIM exists on your account and has a package, but cannot connect to a network. No service charges apply. |\n| `active` | The SIM is provisioned and ready to use on the network. Standard service charges and usage charges apply. |\n\nSet `status` to `active` to activate a SIM, or to `available` to deactivate it.","enum":["available","active"]},"SimAttribute":{"type":"object","properties":{"iccAttributeId":{"type":"integer","description":"The unique identifier for the attribute."},"iccId":{"type":"string","maxLength":20,"description":"The SIM the attribute belongs to."},"attribute":{"type":"string","maxLength":48,"description":"The attribute name. Names cannot contain spaces."},"value":{"type":"string","maxLength":255,"description":"The attribute value. Can be an empty string, but not `null`."},"status":{"$ref":"#/components/schemas/RecordStatus"}},"description":"A name/value pair attached to a SIM."},"RecordStatus":{"type":"string","description":"Whether the record is still attached to its parent object.\n\n| Value | Meaning |\n| --- | --- |\n| `active` | The record is attached to the parent object. |\n| `deleted` | The record is no longer attached to the parent object. |","enum":["active","deleted"]},"PortfolioPackage":{"type":"object","description":"The portfolio and package a SIM is assigned to, and its contract dates.","properties":{"icc2PortfolioPackageId":{"type":"integer","description":"The unique identifier for this portfolio and package assignment."},"iccId":{"type":"string","description":"The SIM the assignment belongs to.","maxLength":20},"portfolioId":{"type":"string","maxLength":32,"description":"The portfolio the SIM is assigned to. A portfolio is the account that owns the SIM and controls who can access it."},"portfolioStartDate":{"type":"string","format":"date-time","description":"When the SIM joined the portfolio."},"packageId":{"type":"integer","description":"The package applied to the SIM. A package holds the contract, pricing, and allowance details."},"packageStartDate":{"type":"string","format":"date-time","description":"When the package took effect."},"contractStartDate":{"type":["string","null"],"format":"date-time","description":"When the contract began, which is when the SIM first became active."},"contractEndDate":{"type":["string","null"],"format":"date-time","description":"When the contract ends, calculated from the contract start date and the contract period in the package."},"commsProfileId":{"type":"integer","description":"The communications profile applied to the SIM, which defines its network configuration."},"status":{"$ref":"#/components/schemas/RecordStatus"}}},"Error":{"type":"object","properties":{"errorCode":{"type":"integer","description":"The Eseye error code.\n\n| Code | Meaning |\n| --- | --- |\n| `6001` | Your service account does not have permission for this operation. |\n| `6002` | An object referenced in the request does not exist. |\n| `6003` | The request method is wrong or missing. |\n| `6004` | The server could not be reached. Check the request URL and your connection. |\n| `6006` | The request is malformed. A mandatory field is missing, a data type is wrong, a value is too long, or the JSON is invalid. |\n| `6007` | You do not have permission to make this status transition. |"},"errorTag":{"type":"string","description":"A short error name. Contains no spaces."},"message":{"type":"string","description":"A short description of the error."},"additionalDetails":{"type":"object","description":"Names the object that could not be resolved, or lists the fields that failed validation."}},"description":"An error returned by the API."}},"responses":{"BadRequest":{"description":"The request contained an invalid parameter. `additionalDetails` lists the fields that failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"The token is valid, but the service account does not have permission for this operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"An entity referenced in the request does not exist. The `message` and `additionalDetails` name what could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/sim/{iccId}":{"patch":{"summary":"Update a specific SIM","operationId":"update-specific-sim","tags":["SIM"],"parameters":[{"$ref":"#/components/parameters/iccId"}],"responses":{"200":{"description":"The updated SIM.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sim"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"description":"Updates a SIM. Send only the fields you want to change.\n\nDo not send `null` or an empty string. Any `iccMnoId`, `iccSpecId`, or `iccTypeId` you send must already exist in the system.\n\nYou cannot change a suspended SIM. Unsuspend it first.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"iccMnoId":{"type":"string","description":"The mobile network operator the SIM belongs to."},"iccSpecId":{"type":"string","description":"The specification the SIM was manufactured to."},"iccTypeId":{"type":"string","description":"The type of SIM."},"adminSuspend":{"allOf":[{"$ref":"#/components/schemas/YesNo"}],"description":"Suspend or unsuspend the SIM as an Eseye administrator."},"systemSuspend":{"allOf":[{"$ref":"#/components/schemas/YesNo"}],"description":"Suspend or unsuspend the SIM at system level."},"customerSuspend":{"allOf":[{"$ref":"#/components/schemas/YesNo"}],"description":"Suspend or unsuspend the SIM as the customer."},"voiceSuspend":{"allOf":[{"$ref":"#/components/schemas/YesNo"}],"description":"Block or unblock voice calls."},"dataSuspend":{"allOf":[{"$ref":"#/components/schemas/YesNo"}],"description":"Block or unblock data."},"messagingSuspend":{"allOf":[{"$ref":"#/components/schemas/YesNo"}],"description":"Block or unblock SMS."},"pin1":{"type":"string","description":"The first PIN for the SIM."},"pin2":{"type":"string","description":"The second PIN for the SIM."},"puk1":{"type":"string","description":"The first PUK code for the SIM."},"puk2":{"type":"string","description":"The second PUK code for the SIM."},"eId":{"type":"string","description":"The eUICC identifier of the SIM."},"platformId":{"type":"string","description":"The platform the SIM is provisioned on."},"activatedDate":{"type":"string","description":"The date the SIM was activated."},"terminatedDate":{"type":"string","description":"The date the SIM was terminated."},"status":{"$ref":"#/components/schemas/SimStatus"},"rspId":{"type":"string","description":"The remote SIM provisioning platform the SIM uses."}}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.eseye.com/api-reference/sim-api/sim/update-a-specific-sim.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
