API request limit?

Is there a limit on the amount of times you can request a given endpoint?

For example, I’m trying to use this API:
Halo Wars 2 - Game Objects

I can call it through the official portal just fine, I can also use Postman to call the API just fine. But when I do it from my web app (in development) I get:
https://www.haloapi.com/metadata/hw2/game-objects?startAt=0 403 (Forbidden)

And I’m just stuck, I can’t continue development because this API fails, it worked 2 times, but now it keeps giving me this error. The only thing I can think of is that there’s a limit to the amount of calls you can make from a web app. Which would be annoying but understandable given how heavy this request is, I’m currently doing the request and planning on caching the relevant data, but since it keeps failing I can’t continue.

Please help.

Ok, so this API returns the objects with pagination. So I was doing three requests too fast right after the other, I guess that’s what’s forbidden. I put some Sleep timers in between and the issue went away.

Hello? Any official word on this?

Now the MAPS API is giving me this error, I’m going to end up caching every single request :frowning:

Funny thing, no amount of Sleep is making this API come back! Stuck currently.

Hi ll Blaky ll! Normally, you’ll get an HTTP 429 - Too Many Requests if you exceed your request quota. I just tried the Halo Wars 2 Maps and was able to successfully getting an HTTP 200. Are you still experiencing issues?

> 2533274803816431;4:
> Hi ll Blaky ll! Normally, you’ll get an HTTP 429 - Too Many Requests if you exceed your request quota. I just tried the Halo Wars 2 Maps and was able to successfully getting an HTTP 200. Are you still experiencing issues?

I haven’t tested since then, I actually requested the API through postman and created a JSON manually with the data I needed and saved it to my browser local storage so now I don’t need to request it anymore from the app which gave me the error. I will try tomorrow to see if the request goes through.

Wondering what’s the request limit? I’ve been using the Game Events API like crazy and it’s been flawless for the moment. It seems the error happens only with the Metadata APIs.

Thanks!

You can find the rate limit in the developer portal by logging in and clicking on “Products”. The default developer access rate limit, which I’m assuming is what you’re currently using, is 10 calls per 10 seconds. Once you have launched your website/application, you can apply for a higher rate limit using the instructions found here.

> 2533274803816431;6:
> You can find the rate limit in the developer portal by logging in and clicking on “Products”. The default developer access rate limit, which I’m assuming is what you’re currently using, is 10 calls per 10 seconds. Once you have launched your website/application, you can apply for a higher rate limit using the instructions found here.

Hello! sorry for bringing up an old thread, I’ve tried again and it seems all the Metadata endpoints have the exact same behavior, they work a few times at first but then it completely stops working. It keeps throwing 403 forbidden. I’m caching metadata calls, but this one is for the seasons and I need this one to be dynamic so I can’t cache it.

I need help with this please, I’m literally doing the calls the exact same way as I do them for the Stats endpoints and they’ve worked all the time without problems…

EDIT: I removed the language header and it has started working again, I will check that with the rest of the metadata calls, I’m confused as to why they worked before…

Apologies for spamming this thread, but the API is no longer working anymore, even after the language header removal. This keeps happening with the Metadata APIs, and they work fine through Postman, I can paste here the network output from Chrome if you need me to.

Hi there! I think I was too late seeing this thread so I wasn’t able to see 403’s returned from the API.

However, since you’ve hit this issue multiple times now, there’s clearly a transient issue on our side that you’re running in to. I think what you’re seeing is that an HTTP 403 response is being cached and returned to you for an extended period of time. I’ve tweaked the cache policy so that this shouldn’t happen. You might still continue to see occasional HTTP 403’s, but they shouldn’t be persistent like you’ve been seeing.

Please let us know if you continue to see issues. If you have to report an issue in the future, please let us know what particular operation is causing the problem or attack a network trace of some sort.

Thanks!

> 2533274803816431;9:
> Hi there! I think I was too late seeing this thread so I wasn’t able to see 403’s returned from the API.
>
> However, since you’ve hit this issue multiple times now, there’s clearly a transient issue on our side that you’re running in to. I think what you’re seeing is that an HTTP 403 response is being cached and returned to you for an extended period of time. I’ve tweaked the cache policy so that this shouldn’t happen. You might still continue to see occasional HTTP 403’s, but they shouldn’t be persistent like you’ve been seeing.
>
> Please let us know if you continue to see issues. If you have to report an issue in the future, please let us know what particular operation is causing the problem or attack a network trace of some sort.
>
> Thanks!

Hi thanks a lot for the response. I tried and still no success. I’m attaching the network tab output from Google Chrome:

GeneralRequest URL:https://www.haloapi.com/metadata/hw2/seasons
Request Method:GET
Status Code:403 Forbidden
Remote Address:104.46.109.89:443
Referrer Policy:no-referrer-when-downgrade

Response HeadersAccess-Control-Allow-Origin:*
Content-Length:0
Date:Mon, 19 Jun 2017 18:52:33 GMT
E2EActivity:ejY4Qql/gketwjMrxSaxhw==
Strict-Transport-Security:max-age=157680000; includeSubDomains
X-Content-Type-Options:nosniff

Request HeadersAccept:application/json, text/plain, /
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-US,en;q=0.8,gl;q=0.6
Connection:keep-alive
Host:www.haloapi.com
Ocp-Apim-Subscription-Key:xxxxxxxxxxxxx
Origin:http://localhost:8000
Referer:http://localhost:8000/main
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

Please let me know if you find something out of place.

Hello! I just wanted to close the loop on this. Thanks to Blaky’s help we were able to narrow this down to an issue with CORS and the Halo Wars 2 Metadata Operations. This issue should be resolved now. Thanks again to Blaky for his assistance in debugging the problem.

Remember, as mentioned in previous threads about CORS, please take care to avoid using CORS in your production/final application. Remember that each developer is responsible for maintaining the security of your API key, per the Halo Game Data Terms of Use.