Is there a usage limit for the cloudBit API?

Hi

I have a simple question: Is there some sort of usage limit (e.g. number of requests per minute) for the BitCloud API?

The longer story, i.e. where does this question come from:

I am making an application that could translate words to Morse code and then send it to my cloudBit which makes the bright led flash.

The setup is as follows: p3_usb_power ==> w20_cloud ==> o14_bright_led

What I am actually doing is sending a sequence of requests to /devices/{device_id}/output with duration_ms set to -1 and percent set to 100 or 0. This successfully allows me to toggle the light on and off again. By playing with the interval between requests I can then display letters in Morse code (sequence of long and short flashes).

This works correctly, but after a few letters it stops toggling (the cloudBit’s output signal remains at 100 or 0 depending on the state it was previously in). It appears as if some of my requests to the /devices/{device_id}/output API are swallowed after a certain threshold of requests per minute (it appears 30) has been reached, despite being acknowledged by your API server.

Note that:

  • the cloudbit’s status light remains green
  • my http client (Java) keeps getting HTTP 200 responses
  • the requests just have no effect to the output voltage of the cloudBit

Is my assumption correct? If so what can I do about it, if not…
…what other problem could describe these symptoms?

All help is appreciated! Kind regards

Simon

Hi Simon,

Yes, there’s a limit of 30 requests per minute. However, when you hit that limit, you should be receiving a different HTTP Status Code, 429 with the message “Rate limit exceeded.”. Can you confirm this is not the case?

Pires

Hi Pires

thanks for the swift response!

I stand corrected. Adding some logs has shown me that I did indeed receive 429 status codes but without them triggering an exception in my program. The lack of exceptions made me incorrectly assume that I got status code 200 back.

Is there any way in which this limit can be increased or omitted?

I could halve the number of requests I need by setting a timeout on the toggle ON requests and therefore could skip the toggle OFF requests but I guess I would still need more than 30 requests per minute for a morse application that way…

Kind regards

Simon

Hi Simon,

For the moment, you’ll have to work with that limit.

In the future, we’ll have a revamped Stream API, awesome documentation and libraries and then you’ll be able to do it in real-time with no limits. Unfortunately, I do not have an ETA for when that will happen.

Thank you for understanding,
Pires