> 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/api-reference-legacy/sms/sms-api.md).

# SMS API

## Send MT SMS

> Delivers a Mobile Terminated (MT) SMS message to an AnyNet or third party SIM. Provide either text or short\_message. Address the message with one of iccId, simId, eid, or destination.

```json
{"openapi":"3.1.0","info":{"title":"SMS API","version":"1.0.0"},"tags":[{"name":"SMS API"}],"servers":[{"url":"https://messaging.eseye.com"}],"paths":{"/mtsmsapi/index/post":{"post":{"summary":"Send MT SMS","operationId":"post-mt-sms","tags":["SMS API"],"description":"Delivers a Mobile Terminated (MT) SMS message to an AnyNet or third party SIM. Provide either text or short_message. Address the message with one of iccId, simId, eid, or destination.","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["username","password"],"properties":{"username":{"type":"string","description":"The Eseye-assigned SMS API username."},"password":{"type":"string","description":"The Eseye-assigned SMS API password."},"iccId":{"type":"string","description":"Uniquely identifies the SIM, or the eUICC SIM profile."},"simId":{"type":"string","description":"The Eseye SIM reference number."},"eid":{"type":"string","description":"The eUICC identifier, the global serial number that identifies an eUICC for remote SIM provisioning."},"destination":{"type":"string","description":"The MSISDN of the destination SIM."},"text":{"type":"string","description":"The SMS message content (7/8-bit). Supply either text or short_message. Where both are present, text takes priority."},"short_message":{"type":"string","description":"Hex-encoded short message octets. Supply either text or short_message."},"message_id":{"type":"string","description":"A user-generated unique message identifier for tracking responses."},"receipt_url":{"type":"string","description":"The URL where the delivery receipt is sent."},"source":{"type":"string","description":"The source MSISDN. If blank, the AnyNet Messaging Service sends the message."},"mode":{"type":"string","enum":["7","8"],"description":"How text data is transported: 7-bit (default) or 8-bit."},"expiry":{"type":"string","description":"Expiry date/time if undelivered: YYYY-MM-DD hh:mm:ss."},"data_coding":{"type":"string","description":"How short_message data is processed (e.g. 0, 4, 8, F6)."},"pid":{"type":"string","description":"For Eseye use only. Protocol identifier. Default 0."},"esm":{"type":"string","description":"For Eseye use only. User data header attributes (e.g. 40)."},"Replace":{"type":"string","description":"Cancel any queued messages."}}}}}},"responses":{"200":{"description":"Status response","content":{"application/xml":{"schema":{"type":"string"}}}}}}}}}
```

## Cancel SMS

> Cancels a sent or queued MT SMS message. If the message is already delivered, the API cannot cancel it.

```json
{"openapi":"3.1.0","info":{"title":"SMS API","version":"1.0.0"},"tags":[{"name":"SMS API"}],"servers":[{"url":"https://messaging.eseye.com"}],"paths":{"/mtcancelapi/index/post":{"post":{"summary":"Cancel SMS","operationId":"post-mt-cancel","tags":["SMS API"],"description":"Cancels a sent or queued MT SMS message. If the message is already delivered, the API cannot cancel it.","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["username","password","message_id"],"properties":{"username":{"type":"string","description":"The Eseye-assigned SMS API username."},"password":{"type":"string","description":"The Eseye-assigned SMS API password."},"message_id":{"type":"string","description":"The message_id of the message you want to cancel."}}}}}},"responses":{"200":{"description":"Status response","content":{"application/xml":{"schema":{"type":"string"}}}}}}}}}
```

## Get SMS status

> Requests a status update for existing AnyNet Messaging Service messages.

```json
{"openapi":"3.1.0","info":{"title":"SMS API","version":"1.0.0"},"tags":[{"name":"SMS API"}],"servers":[{"url":"https://messaging.eseye.com"}],"paths":{"/mtstatusapi/index/post":{"post":{"summary":"Get SMS status","operationId":"post-mt-status","tags":["SMS API"],"description":"Requests a status update for existing AnyNet Messaging Service messages.","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["username","password","message_id"],"properties":{"username":{"type":"string","description":"The Eseye-assigned SMS API username."},"password":{"type":"string","description":"The Eseye-assigned SMS API password."},"message_id":{"type":"string","description":"The message_id of the message to check."}}}}}},"responses":{"200":{"description":"Status response","content":{"application/xml":{"schema":{"type":"string"}}}}}}}}}
```


---

# 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/api-reference-legacy/sms/sms-api.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.
