
Research
Shai-Hulud Descends to Hades: Miasma Worm Campaign Spreads with New PyPI Wave
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.
Fully typed TypeScript SDK for the AQI.in Air Quality API.
bun add aqi-in-api
import { createAQIClient } from "aqi-in-api";
const client = createAQIClient();
async function main() {
const ipDetails = await client.getIpDetails();
console.log(ipDetails);
const nearestLocation = await client.getNearestLocation({
lat: ipDetails.lat,
long: ipDetails.lon,
});
console.log(nearestLocation);
const station = nearestLocation[0].location_slug;
const locationDetails = await client.getLocationBySlug({
slug: station,
});
console.log(locationDetails);
const history = await client.getLast24HourHistory({
slug: station,
sensorname: "pm25",
slugType: "locationId",
});
console.log(history);
const history30Days = await client.getLast30DaysHistory({
slug: station,
sensorname: "pm25",
slugType: "locationId",
});
console.log(history30Days);
}
main().catch(console.error);
createAQIClient(config?)| Option | Type | Required | Description |
|---|---|---|---|
token | string | No | JWT authentication token (default provided) |
baseUrl | string | No | API base URL (default: https://apiserver.aqi.in) |
userAgent | string | No | Custom user agent |
| Method | Description |
|---|---|
getNearestLocation(params) | Get nearest monitoring stations by coordinates |
getIpDetails() | Get location from IP address |
getLocationBySlug(params) | Get location details by slug |
search(params) | Search locations by name |
getLast12HourHistory(params) | Get 12-hour sensor history |
getLast24HourHistory(params) | Get 24-hour sensor history with WHO guidelines |
getLast7DaysHistory(params) | Get 7-day sensor history |
getLast30DaysHistory(params) | Get 30-day sensor history |
getRankings(params) | Get city or country pollution rankings |
import type {
Station,
City,
State,
Country,
LocationDetails,
IPDetails,
SearchResults,
RankingEntry,
HistoryData,
HistoryDataWithWHO,
IAQI,
Weather,
SensorName,
SearchType,
SlugType,
RankType,
} from "aqi-in-api";
bun install
bun run build
bun test
bun test:unit
bun test:e2e
MIT
This is an unofficial API client and is not affiliated with, endorsed by, or associated with AQI.in or its parent organization. This package is provided for educational and informational purposes under fair use. Accessing publicly available air quality data is lawful and serves the public interest.
FAQs
Fully typed TypeScript SDK for the AQI.in Air Quality API
The npm package aqi-in-api receives a total of 25 weekly downloads. As such, aqi-in-api popularity was classified as not popular.
We found that aqi-in-api demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.

Security News
RubyGems and Bundler 4.0.13 introduced an opt-in cooldown feature that delays newly published gems during dependency resolution.

Security News
pnpm 11.5 now recognizes npm staged publish approvals in release metadata, preventing those releases from being mistaken for lower-trust package publishes.