npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

bh-api

v0.3.0

Published

An interface for BeachHead's Call of Duty API

Readme

BeachHead API Client

Installation

npm install bh-api

Description

Make calls against BeachHead's Call of Duty Clan Wars API to retreive information about current Clan Wars.

This package makes requests of a closed API that was reverse engineered. This means that it's subject to change and beyond my control.

Client Behavior

Some functions in this client emulate the behavior of the Advanced Warfare iOS app. The status function's default behavior is to send a large amount of headers in each request and to poll the API for information 31 seconds ago. The endpoint that status and events call takes an epoch timestamp after /since/ which it uses to calculate activity between the present and that timestamp.

//ec2-api.prod.beachheadstudio.com/aw/clan_wars/waric/{clanId}/since/1442348741

Usage

This API inerface uses promises for a more imperative style and easier error handling.

var bhAPI = require('bh-api')(email, password)

bhAPI.done(function(client){
    client.status().then(...).done(fn(status){...}, fn(err){...})
)

bhAPI.done(function(client){
    client.events().done(function(captures){
        console.log(captures)
    }, function(err){
        raise new Error(err)
    })
})

// this module also has a #profile function

Endpoints

URLS where one can request information from BeachHead's Call of Duty API.

Login
Sending JSON credentials info to the following URLs will return a Cookie that is needed to request data from the other URLs

POST https://prod-api.prod.beachheadstudio.com/aw/si/login/
data = {email: "yourEmail", password: "yourPassword"}

Clan War Data
Send a request here to obtain information about an ongoing clan war. There are two dynamic parts to this endpoint; your clan's ID and a timestamp. This time stamp must be in epoch time, in the past, and must only be the first 10 digits of said epoch time.

GET https://ec2-api.prod.beachheadstudio.com/aw/clan_wars/waric/{clanId}/since/{epochTime}

Profile Info
A user id is required to request data from this endpoint

GET https://ec2-api.prod.beachheadstudio.com/aw/user/{userId}/stats

Sample response

Response Wiki

Testing

We're using Mocha with Chai's Expect assertions and Nock for HTTPS response mocking. Nocks should be recorded on the first run and then saved to spec/replies/nocks.json See the Nock documentation for usage.