User Endpoints

The Mashery Proxy has several call limiting mechanisms and levels of limiting the number of incoming calls, frequency of calls or type of call being made.

  • Service Level Call Limiting
  • User Level Call Limiting
  • Method Level Call Limiting
  • Endpoint Level Call Limiting

Service Level Limiting

Default calls per period and queries per second (QPS) can be set on broadest level in the Service configuration.  For example, the Service maximum calls in a period could be set to 5000 a day and 2qps.  This will, by default be applied to all of the keys within this service.  You can also select whether or not you would like to allow for User Level Override of these settings.

User Level Call Limiting

If allowed within the service definition the default Call maximum and QPS can be overridden at the developer level.  On a key by key basis the developer can have their calls per period or QPS increased or exempted from call limits.

Method Limiting

Method limiting - the ability to limit the number of times a method is called within a specified period - is available as it applies to a service across all developers. For example, if you have a resource intensive call or a call with a very large response that you would only like to be called at most once per minute you can set the limit to 1 call per minute on this method, after doing so this call can only be made once per minute, any other requests will receive an overlimit error.

Endpoint Level Call Limiting

Within a service many different endpoints can be configured.  Within each endpoint there is the opportunity to set call and QPS limits. These limits act a little bit differently than Service or User level limiting. Imagine that the service that contains these endpoints allows for 1k calls per day. Endpoint A has no override set.  Endpoint B is set at a maximum of 500 calls/day.  If a developer makes 500 calls to endpoint A they will no longer be able to call endpoint B as the developer would be over the endpoint B limit even though they possibly did not make any calls to endpoint B.  The hit counts are against the service as a whole and not against an endpoint.