REST API v1
Base URL, authentication, request format, pagination and errors for the Wire2Air REST API v1.
The REST API v1 sends messages, lists received messages and manages campaigns. It authenticates with an API key and answers in JSON.
Base URL
https://msgapi.wire2air.com/rest/v1
Every path in this section is relative to it: /message means https://msgapi.wire2air.com/rest/v1/message.
Endpoints
| Method | Path | Does |
|---|---|---|
POST | /message | Send an SMS to one number or many |
GET | /messages/inbox | List received messages |
GET | /campaign | List campaigns |
GET | /campaign/{ID} | Get one campaign |
POST | /campaign | Create a campaign |
POST | /campaign/{ID} | Edit a campaign |
DELETE | /campaign/{ID} | Delete a campaign |
Authentication
Send your API key in the apikey header of every request. See Authentication.
apikey: YOUR_API_KEY
Request format
Send parameters as application/x-www-form-urlencoded: in the body for POST, in the query string for GET. Every example in these docs does this.
Responses
Responses are JSON. A created resource carries its ID and a relative URI:
{
"Response": "Message Queued successfully",
"URI": "v1/message/outbox/85582790",
"ID": "85582790",
"Type": "Out"
}
Pagination
List endpoints take PageNo (default 1) and PageSize (default 10) and wrap the results in a page envelope:
| Field | Meaning |
|---|---|
PageNo | The page returned. |
PageSize | Results per page. |
TotalPages | Number of pages. Returned as a number with a decimal point (12.0); read it as a whole number. |
TotalRecords | Number of results across all pages. |
RowStart, RowEnd | Position of the first and last result on this page. |
ListItems | The results. |
To read everything, request PageNo 1, 2, 3 … until PageNo equals TotalPages.
Errors
| Status | Meaning |
|---|---|
200 | Success |
201 | Created (a message was queued) |
400 | Bad request; the JSON body says what is wrong |
401 | Missing or incorrect API key |
429 | API calls quota exceeded (rate limits) |
500 | Internal server error; contact support |
A 400 body looks like {"StatusCode": 712, "StatusMessage": "Campaign Id required."}. See Errors.

