Recommended Posts

So for the past month I've been working with a friend to look into the Halo 4 Stats website on http://app.halowaypoint.com/. And finally, after a lot of work, we're ready to release the Source Code, how to access and use the internal API and a small example website to show off basics of what can be done.

Developers

- We have a wiki of information on how to Authenticate Endpoints, and send requests

- We have examples on how to use the API

Users

- We have a couple of examples that are ready for users to use

- http://auntiedot.net/ - http://leafapp.co/

For more information, visit: http://auntiedot.net

(Also, if you could upvote it on reddit (http://www.reddit.com/r/halo/comments/17qkz5/halo_4_stats_with_api_finally/) that would be awesome, so that the Halo Community can start using it.

  • Like 1
Link to comment
https://www.neowin.net/forum/topic/1134274-halo-4-stats-with-api-finally/
Share on other sites

Really? You're going to take credit for this? I, and many others, have had access to this API since it launched on November 4th. We've specifically avoided releasing the information to the public because people do not understand how to use APIs. Now - thanks to your efforts - the API will be restricted as it get's slammed by sloppy programmers with useless applications. I've been working with HaloTracker in order to get stats working on that site (which has over 100,000 registered gamertags) and now they're at risk of being blocked because of other people abusing the API.

Please be more responsible next time you decide to release a private API. Do so from a closed environment. Provide developers with access through a proxy, not direct access. Say goodbye to the API.

Really? You're going to take credit for this? I, and many others, have had access to this API since it launched on November 4th. We've specifically avoided releasing the information to the public because people do not understand how to use APIs. Now - thanks to your efforts - the API will be restricted as it get's slammed by sloppy programmers with useless applications. I've been working with HaloTracker in order to get stats working on that site (which has over 100,000 registered gamertags) and now they're at risk of being blocked because of other people abusing the API.

Please be more responsible next time you decide to release a private API. Do so from a closed environment. Provide developers with access through a proxy, not direct access. Say goodbye to the API.

Sorry, did we knock you from your Ivory Tower? Some people believe sharing is caring. And lets face it, 343 know people have been doing this. If they cared, they would of taken action already.

Sorry, did we knock you from your Ivory Tower? Some people believe sharing is caring. And lets face it, 343 know people have been doing this. If they cared, they would of taken action already.

The most responsible developers in the community have had access for a while. We know sharing is caring. There's a right, and a wrong way of doing it. (See http://halocharts.com JSON service) By releasing this source code, you've allowed anyone to hit the service with a million requests. 343i already have tightened the API - my guess is that you didn't notice since you didn't get access right away. Next step is an IP whitelist.

The most responsible developers in the community have had access for a while. We know sharing is caring. There's a right, and a wrong way of doing it. (See http://halocharts.com JSON service) By releasing this source code, you've allowed anyone to hit the service with a million requests. 343i already have tightened the API - my guess is that you didn't notice since you didn't get access right away. Next step is an IP whitelist.

IP Whitelist? Please. Stop.

Really? You're going to take credit for this? I, and many others, have had access to this API since it launched on November 4th. We've specifically avoided releasing the information to the public because people do not understand how to use APIs. Now - thanks to your efforts - the API will be restricted as it get's slammed by sloppy programmers with useless applications. I've been working with HaloTracker in order to get stats working on that site (which has over 100,000 registered gamertags) and now they're at risk of being blocked because of other people abusing the API.

Please be more responsible next time you decide to release a private API. Do so from a closed environment. Provide developers with access through a proxy, not direct access. Say goodbye to the API.

With all due respect they MUST have expected this to happen.

They can't release an API to a bunch of people outside their organisation and expect it not to be passed around.

FYI - I'm the other developer/researcher of this stuff.

The most responsible developers in the community have had access for a while. We know sharing is caring. There's a right, and a wrong way of doing it. (See http://halocharts.com JSON service) By releasing this source code, you've allowed anyone to hit the service with a million requests. 343i already have tightened the API - my guess is that you didn't notice since you didn't get access right away. Next step is an IP whitelist.

Do you actually know what you're talking about?

It is a JSON API, which is accessed by the HWP website through AJAX. Each user makes their own requests to it - therefore IP whitelisting would be impossible.

The security on it is extremely basic at present, so I'm not sure what you mean by "343i already have tightened the API" since it's really not in the slightest bit difficult to authenticate to it.

An intermediate service (rather than documenting how to access directly) would be an incredibly stupid thing to do for several reasons:

  • It would be painfully obvious since a ridiculous number of requests to different accounts would be coming from the same IP
  • It would be incredibly easy to block
  • It would require working around, rather than with, the authentication system. Our docs & client conform fully to the way the auth system was intended to work and, as such, there are no security issues in terms of phishing & no reason for 343/MS to get ****ed off about it

If anyone does use our library to send millions of requests or make an intermediate service, they're an idiot, but luckily it's easy for 343 to block. The research/library should only be used (& will only work long term) as part of a client application executing on the user's computer - whether that be with JavaScript or a compiled app.

Additionally, this is not an internal API. A private one, maybe, but every time you visit HWP you directly call it 20-100 times (ish), so it's not exactly hidden.

Sorry, is that hard for you to believe? That's actually just one line they would have to add to block 100% of the unwanted access. Are you kidding me?

No, no. Are you kidding me? **** off and come back when you actually know what AJAX is and how you build a Javascript based client side web app.

With all due respect they MUST have expected this to happen.

They can't release an API to a bunch of people outside their organisation and expect it not to be passed around.

Well they're using the best authentication they can get - so my guess is that they're trying to provide their users with the best possible experience at the expense of data security. Now they're just going to clamp down on it. It's nothing to them. Of course they expected it to happen - but they weren't going to do anything about it if it was just a few community sites accessing the information. Now this is a real problem, and they'll find a solution.

Well they're using the best authentication they can get - so my guess is that they're trying to provide their users with the best possible experience at the expense of data security. Now they're just going to clamp down on it. It's nothing to them. Of course they expected it to happen - but they weren't going to do anything about it if it was just a few community sites accessing the information. Now this is a real problem, and they'll find a solution.

Tbh, I don't think they're bothered. The programme manager of the Halo web team followed Xerax & I on Twitter. I messaged him letting him know we're more than happy to work with them if they don't like what we're doing or want us to do something for them.

FYI - I'm the other developer/researcher of this stuff.

Do you actually know what you're talking about?

It is a JSON API, which is accessed by the HWP website through AJAX. Each user makes their own requests to it - therefore IP whitelisting would be impossible.

The security on it is extremely basic at present, so I'm not sure what you mean by "343i already have tightened the API" since it's really not in the slightest bit difficult to authenticate to it.

An intermediate service (rather than documenting how to access directly) would be an incredibly stupid thing to do for several reasons:

  • It would be painfully obvious since a ridiculous number of requests to different accounts would be coming from the same IP
  • It would be incredibly easy to block
  • It would require working around, rather than with, the authentication system. Our docs & client conform fully to the way the auth system was intended to work and, as such, there are no security issues in terms of phishing & no reason for 343/MS to get ****ed off about it

If anyone does use our library to send millions of requests or make an intermediate service, they're an idiot, but luckily it's easy for 343 to block. The research/library should only be used (& will only work long term) as part of a client application executing on the user's computer - whether that be with JavaScript or a compiled app.

Additionally, this is not an internal API. A private one, maybe, but every time you visit HWP you directly call it 20-100 times (ish), so it's not exactly hidden.

No, no. Are you kidding me? **** off and come back when you actually know what AJAX is and how you build a Javascript based client side web app.

Alright, so I guess the fact that I have been doing this for seven years doesn't mean anything. Apparently you don't understand AJAX. You cannot make requests to the API clientside from your users' computer (through a web browser), because of cross-origin access policies. You are forced to send connections through your server, which means it's one IP to block all requests you want to make from your site. What you're describing, and the API you provided, works great for desktop applications, but will completely **** over websites like HaloTracker, which is where the majority of the calls are coming from, not desktop applications.

And as I've already stated, I had access to this API the same day it was released and was able to fully authenticate without problems. When it was first released, they did not require any data-scraping, it was 100% header based. They've locked it down more by embedding it within the page.

Alright, so I guess the fact that I have been doing this for seven years doesn't mean anything. Apparently you don't understand AJAX. You cannot make requests to the API clientside from your users' computer, because of cross-origin access policies. You are forced to send connections through your server, which means it's one IP to block all requests you want to make from your site. What you're describing, and the API you provided, works great for desktop applications, but will completely **** over websites like HaloTracker, which is where the majority of the calls are coming from, not desktop applications.

And as I've already stated, I had access to this API the same day it was released and was able to fully authenticate without problems. When it was first released, they did not require any data-scraping, it was 100% header based. They've locked it down more by embedding it within the page.

'Tis a good point which I hadn't considered, but regardless, going through a server is never going to be a sustainable way of accessing an API like this.

Also, I've been doing this for more than seven years, so ;)

'Tis a good point which I hadn't considered, but regardless, going through a server is never going to be a sustainable way of accessing an API like this.

Also, I've been doing this for more than seven years, so ;)

Not long enough then if you hadn't considered that, so... ;) And for most uses, that's the only way of accessing the API, which is why everyone with a big site is extremely ticked off at you two right now.

Not long enough then if you hadn't considered that, so... ;) And for most uses, that's the only way of accessing the API, which is why everyone with a big site is extremely ticked off at you two right now.

To be fair, anyone with a big site wouldn't have lasted long anyway. Us doing this is unlikely to make much difference.

To be fair, anyone with a big site wouldn't have lasted long anyway. Us doing this is unlikely to make much difference.

Like I said, HaloTracker is running thousands of queries daily. My guess is that 343i is fully aware and they are turning a blind eye. You've put HTR in the spotlight and now 343i will be forced to act because of all the extra incoming requests - and they'll be blocking any and all outside websites sending a sufficient amount of requests. Next time provide an unauthenticated throttled JSON service like Firestream has, and save the authenticated requests for Microsoft, 3rd parties, and people who have figured it out on their own.

The most responsible developers in the community have had access for a while. We know sharing is caring. There's a right, and a wrong way of doing it. (See http://halocharts.com JSON service) By releasing this source code, you've allowed anyone to hit the service with a million requests. 343i already have tightened the API - my guess is that you didn't notice since you didn't get access right away. Next step is an IP whitelist.

Unless I'm an idiot. Which is entirely possible. That "public" halocharts JSON has 2 endpoints. Which sure left a lot of room for creativity -_-

No one here is trying to make another HaloTracker. The only tone I'm getting from you, is that you want to remain the only stat tracking website. The problem is though, everyone likes their stats differently. I don't want an over-bloated and what I think poor design. I want stats in a quick and modern design, which is why I started Leaf. HaloWaypoint is too flashy for my consumption, and unless halo.junk.ws made a H4 version I have no where to go.

I wonder, were you one of the developers who were invited to the private Bungie API as it was made? I don't recognize your username from the 20ish of us that were there. That group of developers shared knowledge and we all worked together to create better applications for all. There was a HaloTracker dev in that group, but I don't think it was you. Point being, we were all friends working for the end user. Which you are forgetting. So as you continue to pull your "special responsible" developer card, I will simply work on Leaf.

<3 peaches

I'm not sure which group you are referring to, I was not apart of that. I'm also not a developer for HaloTracker, but I did help xorth get the site working with regards to the Halo 4 API - which is why HTR never skipped a beat. I'm going to assume the Reach API group you're referring to was created after the announcement of the closing of Bungie's API. My response is that I had access to 343i's API about a month prior to that all happening so I would have had no use for that group. My position is the same as everyone else's in here: open stats for everybody. There's a reason they aren't though, and that's because there are plenty of people with ill intent that will use the service to do harm (namely just slam it with requests) and so I've never released anything to the public. It only makes sense.

I'm not sure which group you are referring to, I was not apart of that. I'm also not a developer for HaloTracker, but I did help xorth get the site working with regards to the Halo 4 API - which is why HTR never skipped a beat. I'm going to assume the Reach API group you're referring to was created after the announcement of the closing of Bungie's API. My response is that I had access to 343i's API about a month prior to that all happening so I would have had no use for that group. My position is the same as everyone else's in here: open stats for everybody. There's a reason they aren't though, and that's because there are plenty of people with ill intent that will use the service to do harm (namely just slam it with requests) and so I've never released anything to the public. It only makes sense.

Some people will do bad things, so punish everyone who won't.

This is why people can't have nice things.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • The fact that memory in general is so high I have to take a loan out to build a computer now is just beyond stupid. Who's really to blame here? Low supply or high demand?
    • Display Driver Uninstaller (DDU) 18.1.5.5 by Razvan Serea Display Driver Uninstaller (DDU) is a utility for completely removing AMD/NVIDIA/INTEL graphics drivers and related packages from your system, attempting to eliminate all leftovers (including registry entries, folders and files, driver store). Though AMD/NVIDIA/INTEL drivers can usually be removed via the Windows Control Panel, this uninstaller tool was created for situations where standard uninstall fails, or when you need to fully remove NVIDIA or ATI graphics card drivers. After using this driver cleaner, your system will behave as though it’s the first time you’re installing a new driver—similar to a fresh Windows installation. As with all such tools, we recommend creating a restore point beforehand, allowing you to undo changes if issues arise. If you're having trouble installing an older or newer driver, try it—there are reports that it resolves such problems. Recommended usage: The tool can be used in Normal mode but for absolute stability when using DDU, Safemode is always the best. Make a backup or a system restore (but it should normally be pretty safe). It is best to exclude the DDU folder completely from any security software to avoid issues. You do NOT need to uninstall the driver prior using DDU. Requirements: .NET Framework 4.8 Compatible with Windows 7, 8, 8.1, 10, and 11 (32-bit or 64-bit) Note: Using on Insider Preview builds is at your own risk. Display Driver Uninstaller (DDU) 18.1.5.5 changelog: Added 'Reset to recommended' button for the Options. General fixes and improvements. Download: Display Driver Uninstaller (DDU) 18.1.5.5 | 1.7 MB (Freeware) Download: DDU Portable | 1.2 MB Links: Display Driver Uninstaller Home Page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • WACUP 1.99.51.24568 Preview by Razvan Serea WACUP (WinAmp Community Update Project) is a modern, enhanced version of the classic Winamp music player, designed for better stability, performance, and compatibility. Built for Windows, WACUP retains the familiar Winamp interface while adding 64-bit support, bug fixes, and new features like improved audio format support, customizable skins, and optimized playlist management. Unlike bloated alternatives, WACUP focuses on lightweight performance and regular updates, making it the best choice for fans of the classic Winamp experience. Basically, if you miss the good old days of Winamp and want a modern upgrade that doesn’t mess things up, WACUP is for you! WACUP key features: Classic Winamp Feel – Keeps the familiar interface and functionality. Bug Fixes & Stability – Fixes old Winamp issues and improves performance. 64-Bit Support – Works better on modern systems. More Formats & Plugins – Supports additional audio formats and third-party plugins. Customizable UI – Skins and tweaks for a personalized look. Better Library Management – Improved playlists, media organization, and search. No Bloat – Focuses on performance without unnecessary extras. Regular Updates – Community-driven development with new features and fixes. WACUP 1.99.51.24568 Preview changelog: Fixed a deadlock seen from the recent crash reports when doing some of the drag + drop actions within the media library window Fixed a loading crash seen related to a problem with some of the artwork cache image files being restored which should now be better handled allowing for the bad image to be removed without it failing Fixed a deadlock seen from the recent crash reports when the internal metadata cache clearing is triggered which could block the main ui thread for too long with this now being moved to a background thread Fixed some performance issues with some of the methods related to determining artwork support which mainly affected the local library import / refresh (this is still slower for some compared to other players because there's more data & artwork aspects being checked for which means doing more processing on a single file despite the best of attempts to reduce duplicate / heavy processing where possible) Fixed a crash with the JTFE based missing files hotkey which no one seems to have used for an age for this to appear (maybe it's time to seriously consider stripping out features that aren't being used) Fixed how some of the file types which use extra information to reference their sub-songs is handled which was preventing some from being correctly resolved back to their base file (noticed fixing above) Fixed an issue with the handling of files with underscores in their filepath which wasn't being correctly handled causing some of the filename to be lost when shown as the title if title reading is delayed Fixed a few things that might be behind NotSoDirect not being stable for some setups though am still not certain that the changes done for this are going to fully resolve the problem from the crash reports Fixed the OS toast handling when there's no prior shortcut in the OS start menu to now create the shortcut (needed to allow the yes/no buttons for the new build / post-release toast) to be done as a hidden one so it's less likely to cause annoyance for those not wanting to see it whilst still allowing this less than ideal OS api implementation requirement to be met to avoid toasts without the needed buttons Fixed a regression when moving from taglib1 to taglib2 which broke some of the handling in place to allow for external programs to still access files when wacup has a held open cached instance of the file Everything else Updated cppwinrt (gen_win10shell.dll) to 3.0.260520.1 (26 May 2026) Updated libcurl (libcurl.dll) to 8.2.1 (24 Jun 2026) Updated Monkey's Audio (in_ape.dll) to 13.15 (28 Jun 2026) Updated mpg123 (mpg123.dll) to 1.33.6 (6 Jun 2026) Updated OpenSSL (libcurl.dll) to 3.5.7 (9 Jun 2026) Updated pugixml to 1.16 (16 Jun 2026) Updated taglib (tag2.dll) to 2.3.0 (11 May 2026) Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 28 Jun 2026 Download: WACUP 64-bit | 9.6 MB (Freeware) Download: WACUP 32-bit View: WACUP Website | Screenshots Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • "over a thousand engineering hours" and started selling it but could not take a couple of minuets to send an AI email to ask permission. What an expensive lesson.
    • just tested it yesterday, a simple page with autoloading ADS takes 60mb....just 1 page for 60 megabytes.   poor people with a limited internet never will visit neolose
  • Recent Achievements

    • Week One Done
      Collagen Project earned a badge
      Week One Done
    • Reacting Well
      Wakeen1966 earned a badge
      Reacting Well
    • Rookie
      Almohandis went up a rank
      Rookie
    • Apprentice
      jahara21 went up a rank
      Apprentice
    • Reacting Well
      NovaEdgeX earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      526
    2. 2
      +Edouard
      265
    3. 3
      PsYcHoKiLLa
      146
    4. 4
      Steven P.
      99
    5. 5
      macoman
      55
  • Tell a friend

    Love Neowin? Tell a friend!