# internetarchive-sdk-js

> NodeJS / Typescript SDK for Internet Archive APIs

Latest version **1.0.46** (published 2026-08-18) · MIT license · 0 weekly downloads

## Install

```sh
npm install internetarchive-sdk-js
pnpm add internetarchive-sdk-js
yarn add internetarchive-sdk-js
bun add internetarchive-sdk-js
```

## Health

**Score 55/100 (C)** — status: active.

Positive: no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 1.0.46 |
| Published | 2026-08-18 |
| First published | 2022-01-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 8 |
| Author | Max Stein |
| Maintainers | mxwllstn |
| Keywords | archive, internet archive, archive.org, sdk, api, typescript |

## Links

- npm: https://www.npmjs.com/package/internetarchive-sdk-js
- Repository: https://github.com/mxwllstn/internetarchive-sdk-js
- Homepage: https://github.com/mxwllstn/internetarchive-sdk-js#readme
- Issues: https://github.com/mxwllstn/internetarchive-sdk-js/issues
- npm.io page: https://npm.io/package/internetarchive-sdk-js

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 1.0.46 (latest) — 2026-08-18
- 1.0.45 — 2026-01-02
- 1.0.44 — 2026-01-02
- 1.0.43 — 2025-07-21
- 1.0.42 — 2025-06-05
- 1.0.41 — 2025-06-05
- 1.0.40 — 2025-05-31
- 1.0.39 — 2025-05-31
- 1.0.38 — 2025-05-07
- 1.0.37 — 2024-07-29
- 1.0.37-beta.1 — 2024-07-29
- 1.0.36 — 2024-07-21
- 1.0.35 — 2024-07-20
- 1.0.34 — 2024-07-20
- 1.0.33 — 2024-07-20
- … 33 more at https://npm.io/package/internetarchive-sdk-js/versions

## README

# Internet Archive SDK for Node.js / Typescript
[![Version](https://img.shields.io/npm/v/internetarchive-sdk-js.svg)](https://www.npmjs.org/package/internetarchive-sdk-js)

NodeJS / Typescript SDK for Internet Archive APIs

## Internet Archive APIs
https://archive.org/services/docs/api/

## Install
Use `pnpm` to install the module
```bash
pnpm install internetarchive-sdk-js
```
Or use `npm` to install the module
```bash
npm install internetarchive-sdk-js
```
Or use `yarn` to install the module
```bash
yarn add internetarchive-sdk-js
```

## Library Documentation
https://mxwllstn.github.io/internetarchive-sdk-js/classes/InternetArchive.html

## Usage
### Get Items
```javascript
import InternetArchive from 'internetarchive-sdk-js'
const ia = new InternetArchive()

void (async () => {
  const filters = {
    collection: 'library_of_congress',
    subject: 'basketball'
  }
  const options = {
    rows: 10,
    fields: 'identifier'
  }
  const items = await ia.getItems({ filters, options })
  console.log(items.response.docs)
})()
```
### Create Item (Requires ["S3-Like API Key"](https://archive.org/account/s3.php))
```javascript
import InternetArchive from 'internetarchive-sdk-js'
const { IA_TOKEN } = process.env || {}
const ia = new InternetArchive(IA_TOKEN, { testmode: true })

void (async () => {
  const filePath = './generic-image.jpg'
  await ia.createItem({
    identifier: `generic-image-${Date.now()}`,
    collection: 'opensource_image',
    mediatype: 'image',
    upload: {
      filename: 'generic-image.jpg',
      path: filePath,
    },
    metadata: {
      title: 'Generic image',
      creator: 'Generic creator',
      subject: 'generic',
    },
  })
})()
```

### Update Item (Requires ["S3-Like API Key"](https://archive.org/account/s3.php))
```javascript
import InternetArchive from 'internetarchive-sdk-js'
const { IA_TOKEN } = process.env || {}
const ia = new InternetArchive(IA_TOKEN, { testmode: true })

void (async () => {
  const itemId = 'internetarchive-test-item-id'
  try {
    const response = await ia.updateItem(itemId, { title: 'new title' })
    console.log(response)
  } catch (err) {
    console.log(err.message)
  }
})()
```

---
_Source: https://npm.io/package/internetarchive-sdk-js · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
