h1. HTTP API message {{>toc}} Sends a message with a text *body* with a *source_number* to a recipient with a *destination_number*. h2. Arguments | *argument* | *mandatory* | *description* | | _login | yes | coincides with a user / company login to a personal account | | _password | yes | matches a user / company password to a personal account | | destination_number | yes | a number of a recipient | | body | no | a body of a message | | source_name | no | a name of a sender | | source_number | no | a number of a sender | | require_dlr | no | require the Delivery Receipt | |stealth_ping|no|aka Silent SMS (0 - no, 1 - yes). An invisible message is sent to a recipient. The recipient doesn't see the message on his device. The sender gets a Delivery receipt, basing on which he can know about availability of the recipient.| |request_id| no | A value, assigned by a client. It will be returned to the client in a response| h2. Returned data The server returns a response in "JSON API":https://jsonapi.org/format/ format. The response will contain one of: * *errors*. Array of errors, occured when processing the request. * *data*. JSON object, which contains request results, in case if request from client contains 1 number. Array of JSON objects, in case if request from client contains several numbers. *errors* and *data* will not be present in 1 response simultaneously. Each response contains either *errors*, or *data*. *data* can contain the following attributes: |*attribute*|*mandatory*|*description*| |id|yes|a response ID assigned by a server| |type|yes|"message"| |destination_number|yes|a number of a recipient| |segments|yes|a number of segments, the original message has been split into (see [[Message billing]])| |status|yes|ок - a message has been successfully sent, the balance has been charged for the message, error - a message hasn't been sent, the balance hasn't been charged for the message| |request_id|yes, if a client has passed the request_id inside a request|an argument that has been passed by the client| *errors* can contain the following attributes: |*attribute*|*mandatory*|*description*| |code|yes|A short error code. It might be used by a client for the conditional error handling. It doesn't depend on a client's locale.| |detail|yes|The error details. They might be used by a client to display a message inside the contents of an error dialog. They may be returned by the server in a locale of a client.| |title|yes|An error title. It might be used by a client to display a message in a header of the error dialog. It may be returned by the server in a locale of a client.| h2. Example h3. Send message to 1 recipient |*request*|POST "https://your.server.name/api/message?_login=LOGIN&_password=PASSWORD&destination_number=12123388100&body=test&require_dlr=1"| |*response*|
{
	"data" : {
		"attributes" : {
			"destination_number" : "12123388100",
			"segments" : 1,
			"status" : "ok"
		},
		"id" : "1561370632513",
		"meta" : {
			"request_id" : "1"
		},
		"type" : "message"
	}
}
| h3. Send message to 2 recipients |*request*|POST "https://your.server.name/api/message?_login=LOGIN&_password=PASSWORD&destination_number=12123388100&body=test&require_dlr=1&destination_number=12123388101&body=test1&require_dlr=1"| |*response*|
{
	"data" : [
		{
			"attributes" : {
				"destination_number" : "12123388100",
				"segments" : 1,
				"status" : "ok"
			},
			"id" : "1561371433517",
			"meta" : {
				"request_id" : "1"
			},
			"type" : "message"
		},
		{
			"attributes" : {
				"destination_number" : "12123388101",
				"segments" : 1,
				"status" : "ok"
			},
			"id" : "1561371433518",
			"meta" : {
				"request_id" : "2"
			},
			"type" : "message"
		}
	]
}
| h3. Error |*request*|POST "https://your.server.name/api/message?_login=LOGIN&_password=PASSWORD&destination_number=12123388100&body=test&require_dlr=1"| |*response*|
{
	"errors" : [
		{
			"code" : "authentication",
			"detail" : "Please check your login and password",
			"title" : "Authentication error"
		}
	]
}
| [[HTTP интерфейс message|Русский перевод]]