Sending is limited with quotas. The controls are:
Sending to all followers: Daily/weekly/monthly limits for sending to all followers are enforced. In TES sendmsgserv, requests with recipienttype 1 go through this control. Exceeding the quota returns resultcode 312 (You have reached the sending quota).
Filtered quota: Daily/weekly/monthly limits for sending to a user list are enforced. Requests to TES sendmsgservlist go through this control. Exceeding the quota returns resultcode 312.
One-to-one: Requests where recipienttype is 0 or 2 in sendmsgserv, and requests to sendmultiusermulticontent, go through this control. These APIs send a user-specific message. To send one-to-one, the user must have initiated a session to the service; otherwise resultcode 312 is returned.
When the user performs an action toward the service (sending a message / following the service / opening chat history), a session is started between the user and the service. With this session, services can send a certain number of messages within a set time. When the time expires or the message count is reached, the session is deleted. For the service to send a new message, the user must send another message to the service.