Limitations

Rate limiting

Rate limiting is applied to each API key and control the number of calls or messages per time window (e.g. 1 call per second). Depending on the offer, a rate limiting configuration may be applied to http interface, mqtt interface or both.

Http interface

Each response of the web controller contains 3 headers giving additional information on the status of the current request regarding rate limitation:

X-RateLimit-Limit: 5
X-RateLimit-Remaining: 3
X-RateLimit-Reset: 1479745936295
  • X-Rate-Limit-Limit is the rate limit ceiling per second

  • X-Rate-Limit-Remaining is the number of requests left for this time window

  • X-RateLimit-Reset is the ending date of the current time window (expressed in epoch milliseconds).

When receiving a request that would exceed authorized traffic limit, the web application returns a 429 Too Many Requests error with an empty body.

Note that all X-RateLimit headers are present in the response, as they would in a successful response.

Mqtt limits

Live Objects enforces limits for connections and traffic. Refer to the limit table. When a MQTT client tries to connect to Live Objects, connection limits are enforced according to the connection mode ( Device, Application, Connector ). If a limit is reached, the connection is refused. When a MQTT client sends traffic to Live Objects ( publish, subscribe ), traffic limits are enforced according to the connection mode ( Device, Application, Connector ). Refer to the following section for trafic limit policies.

Mqtt trafic limits with Device Mode

Devices using MQTT are subject to the subscribed offer traffic limits. The limits are at the account level and at the connection level. Refer to the limit table for details.

If a limit is reached for a MQTT/publish then the published message will be dropped and a warning will be available in Audit Log.

If a limit is reached for a MQTT/subscribe then the subscribe message will be rejected and a warning will be available in Audit Log.

Mqtt trafic limits with Application and Connector Mode

If a traffic ( subscribe, publish ) limit is reached, then the MQTT session will be closed. If an API key is used for several MQTT sessions at the same time, the API key quotas are computed with the overall API key traffic.

As MQTT 3.11 protocol does not provide a way to give disconnection reasons; you should use the AuditLog service to retrieve additional information. The client is expected to reconnect with a back off policy and re-send its data, as traffic will be allowed again in the next time window.

Resources limitation

Resource rate limiting is applied to each API Key and limit the search request.

X-ResourceLimit-Limit : 100
X-ResourceLimit-Remaining : 10
X-ResourceLimit-Reset : 1568707112000
X-ResourceLimit-Resource :SEARCH_DSL_QUERY
  • X-ResourceLimit-Limit is the rate limit ceiling of the authorized traffic limit (number of requests) for this time window

  • X-ResourceLimit-Remaining is the number of requests left for this time window

  • X-ResourceLimit-Reset is the ending date of the current time window (expressed in epoch milliseconds).

  • X-ResourceLimit-Resource is the resource identifier (SEARCH_DSL_QUERY)

When receiving a request that would exceed authorized traffic limit, the web application returns a 429 Too Many Requests error with an empty body.