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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@lycoristech/azurapi

v0.0.5

Published

Azur Lane local database API with full ship, equipment, and chapter data

Readme

LycorisTech/AzurAPI

A self-maintained, current Azur Lane data library. Drop-in replacement for the @azurapi/azurapi package.

Why?

The older and amazing @azurapi/azurapi ecosystem is now 3+ years stale. I have fond memories starting off my computer science hobby building a discord bot using that API. Recently, when revisiting my old discord bot, I noticed that the azurapi package was years out of date, likely due to the wiki scraper method no longer being viable. This AzurAPI builds on the AzurLaneTools/AzurLaneData and nobbyfix/AzurLane-AssetDownloader repos so our data stays fresh within hours of each game patch.

Installation

npm install @lycoristech/azurapi

Usage

import { AzurData } from "@lycoristech/azurapi";

const azur = new AzurData();

// Get a ship by name, ID, or fuzzy search
const belfast = azur.ships.get("Belfast");
const byId    = azur.ships.get("20212");
const byCode  = azur.ships.get("115");

// Get all ships
const all = azur.ships.getAll();
console.log(`${azur.ships.count()} ships loaded`);

// Fuzzy search
const results = azur.ships.search("Enterp", 5); // top 5 matches

Migrating from @azurapi/azurapi

- import { AzurAPI } from "@azurapi/azurapi";
+ import { AzurData as AzurAPI } from "@lycoristech/azurapi";

That's it. The ships.get() API is compatible. Ship objects match the same schema!

Relationship to the original AzurAPI project

This library is a schema-compatible successor to @azurapi/azurapi (GPL-3.0) and its sister data repo AzurAPI/azurapi-js-setup (AGPL-3.0).

This project is not a fork and does not contain any code from those repositories. It is an independent rewrite built from scratch against the decompiled game data from AzurLaneTools/AzurLaneData, which is a completely separate data source.

The output JSON schema (field names, structure, rarity values, etc.) is deliberately kept shape-compatible with the original so existing devs can migrate with a single import change.

Data Freshness

Data is auto-refreshed weekly (every Monday) via GitHub Actions from AzurLaneTools/AzurLaneData (EN + CN + JP regions). The refresh pipeline:

  1. Sparse-clones the upstream repo
  2. Normalizes raw game tables into AzurAPI-compatible JSON
  3. Runs sanity checks (schema validation, field coverage)
  4. Commits updated data/*.json only if data changed

You can also trigger a refresh manually from the Actions tab, or run npm run build:data locally.

Current data version: see data/version.json.

Ship Schema

Ships have the full AzurAPI-compatible shape including:

  • Identity: id, names, rarity, class, hullType, nationality
  • Stats: level 100/120, with and without retrofit
  • Equipment slots with min/max efficiency
  • Skills with max-rank substituted descriptions
  • Limit breaks, construction info, fleet tech
  • Skins with metadata
  • And more — see src/schema/output/ship.ts

Raw JSON Access

The committed data/ships.json is fetchable via GitHub raw URL:

https://raw.githubusercontent.com/iujab/Lycoris-AzurAPI/main/data/ships.json

Also available: ship-list.json (minimal index), id-map.json (name→id lookup), version.json.

Development

# Install deps
npm install

# Build data from upstream (requires upstream/ sparse checkout)
npm run build:data

# Verify data integrity
npm run verify

# Run tests
npm test

# Type check
npm run typecheck

Asset Images

Ship paintings and thumbnails are hosted in a separate GitHub repo: iujab/azurlane-images. Image URLs in ship data point to raw GitHub URLs from that repo:

  • Paintings — skin art in WebP format (paintings/{asset_name}.webp)
  • Thumbnails — shipyard icons in PNG format (thumbnails/{group_type}.png)

License and Rights

This is an unofficial, non-commercial, community-maintained fan project. It is not developed, endorsed, sponsored, or in any way affiliated with Manjuu, Yongshi, Yostar, or any of their subsidiaries.

Acknowledgments