API Rate Limit clarification request

panze97

Hi everyone,

I'm currently building a custom application that interfaces with the Netatmo Smart Home API. The app is designed to monitor the state of light switches and thermostats in near real-time, using a single polling call (homestatus) every few seconds to update the device status.

To test the official API rate limits, I created a brand new app, authorized it via OAuth with only one Netatmo account, and ensured only one refresh_token was active at any time. The access_token is refreshed at launch, and no other clients or users are connected.

Despite the statement found in this thread:

"If an app is used by ONLY one user is the limit per hour 2000 or 500? <= in this case, the limit will be 2000 calls per hour"

…I consistently hit a 429 Too Many Requests error once the app crosses ~500 API calls per hour, even when:

  • The app is used exclusively by one user

  • Calls are made within a single "solar hour", as defined by Netatmo's own rate limiting window (i.e. reset occurs at the top of each hour, not on a rolling 60-minute basis)

Can someone from the Netatmo team clarify:

  • Is the 2000 requests/hour per user limit still valid?

  • Or is 500/hour now a hard cap for all apps regardless of user count?

I’d love to optimize my app properly while staying within allowed limits — but right now the behavior doesn't match the published information.

Thanks in advance!

0

Comments

3 comments

  • Comment author
    Leslie Community moderator

    Hello,

    Sorry for the delay in my answer 

    We recently put in place some fixes to really apply the quotas limits. Now :

    • if the app ONLY HAVE 1 user : the user limit is applied (500 calls/h)
    • starting from 2+ users : the app limits are applied

    Have a good day,

    Leslie - Community Manager

    0
  • Comment author
    maxonthenet

    Hi,

    I am in a totally similar condition:

    • I am also using a single, custom-developed application to check the status of (and control) a Smarther2 thermostat
    • The application requests a new OAuth2 token at startup; the token is automatically refreshed upon expiration
    • The application normally queries the homestatus API endpoint; the only exception is when commands need to be sent to the thermostat, which has never happened in the last months anyway
    • Two subsequent queries are spaced by a 15 seconds wait time (that is, ~240 requests per hour)

    Apparently, since September the 16th this operational scenario ceased to be seamlessly supported, as I am frequently receiving the following error a few hours after restarting the application:

    429 Client Error: ConcurrencyLimitTimedOut for url: https://api.netatmo.com/api/homestatus?home_id=<INTENTIONALLY_OBFUSCATED>
    {
      "error": {
        "code": 11,
        "message": "Failed to enter concurrency limited section"
      }
    }

    There is of course a single such application running, leveraging a single user (myself).

    I have tried to raise the wait time between two subsequent queries to 30 seconds (~120 requests per hour), but I got the same error again after just ~90 minutes since the application restart, after sending less than 180 requests: this means less than 60 requests in the most recent "solar hour" before the API refused to proceed further, yet 120 flawless requests in the preceding "solar hour". I must be missing something.

    The same application has been working uninterruptedly for 3 months using the 15 seconds wait time without any quota errors ever occurring and without any single failures of the token refresh cycles.

    I am not sure whether this should be legitimately ascribed to the new quota handling mechanisms or not. I may definitely just be doing something wrong, but at this point some help would be welcome to shed light on this newly emerged condition, which may impair this API use case altogether.

    Thank you very much.

    0
  • Comment author
    maxonthenet

    I have just started a new thread as a place to share additional findings about the issue I am experiencing.

    0

Please sign in to leave a comment.