# @newskit-render/api

> helper package for accessing MAIN and NK API data

Latest version **1.20.0** (published 2026-04-23) · UNLICENSED license · 0 weekly downloads

## Install

```sh
npm install @newskit-render/api
pnpm add @newskit-render/api
yarn add @newskit-render/api
bun add @newskit-render/api
```

## Health

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

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 1.20.0 |
| Published | 2026-04-23 |
| First published | 2021-11-08 |
| Weekly downloads | 0 |
| License | UNLICENSED |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=20.19 |
| Dependencies | 4 |
| Unpacked size | 94.7 KB |
| Known vulnerabilities | 0 (+2 in 2 direct dependencies) |
| Install scripts | no |
| Maintainers | newskit |

## Links

- npm: https://www.npmjs.com/package/@newskit-render/api
- npm.io page: https://npm.io/package/@newskit-render/api

## Dependencies (4)

- [cookie](https://npm.io/package/cookie.md) 0.5.0
- [graphql](https://npm.io/package/graphql.md) 16.6.0
- [cross-fetch](https://npm.io/package/cross-fetch.md) 3.1.5
- [@apollo/client](https://npm.io/package/@apollo/client.md) 3.7.4

## Recent versions

- 1.20.0 (latest) — 2026-04-23
- 1.20.1-186ee290.37 (unstable) — 2026-06-29
- 1.16.0-alpha.0 (alpha) — 2025-05-21
- 1.20.1-c0e9536b.37 — 2026-06-15
- 1.20.1-02e07176.35 — 2026-06-03
- 1.20.1-45c0cc0f.33 — 2026-05-20
- 1.20.1-e786700a.31 — 2026-05-19
- 1.20.1-a31255a4.28 — 2026-05-14
- 1.20.1-7e666295.28 — 2026-05-14
- 1.20.1-016e3838.22 — 2026-05-08
- 1.20.1-9340e798.23 — 2026-05-07
- 1.20.1-c4766590.23 — 2026-05-07
- 1.20.1-ee257e05.17 — 2026-05-05
- 1.20.1-dbe8ac6c.1 — 2026-05-05
- 1.20.1-e512eb32.13 — 2026-05-05
- … 432 more at https://npm.io/package/@newskit-render/api/versions

## README

# @newskit-render/api

Helper package to make setting up and using Apollo Client with CPS (formerly Main) or NewsKit API easier.

## Usage

# createApolloClient

```
import { createApolloClient, ClientTypes } from '@newskit-render/api'

// MAIN with cookies
const mainApolloClient = await createApolloClient(
  ClientTypes.main,
  context.req.headers.cookie
)

// NKAPI with cookies
const nkApiApolloClient = await createApolloClient(
  ClientTypes.nkapi,
  context.req.headers.cookie
)

// NKAPI without cookies
const apolloClient = await createApolloClient(ClientTypes.nkapi)

// pass custom set up
const apolloClient = await createApolloClient({
  initialState: {},
  uri: process.env.NEWSKIT_API_ENV_URL,
  headers: {
    'x-api-key': process.env.NEWSKIT_API_X_API_KEY,
  },
  addTypename: false,
})
```

# getApolloClient

```
import { getApolloClient } from '@newskit-render/api'

const shouldUseNewskitApi = true

const apolloClient = await getApolloClient(
  shouldUseNewskitApi,
  req.headers.cookie
)
```

# helpers

1. getHeaders - creates header for MAIN
2. getAccessToken - access header used by MAIN
3. getMainSession - get MAIN session from cookie
4. sessionParser - decodes session id

# Authentication environment variables

For MAIN and NewsKit API authentication see [MAIN](https://github.com/newscorp-ghfb/ncu-newskit-render/tree/master/packages/my-account#authentication) and [NewsKit API](https://github.com/newscorp-ghfb/ncu-newskit-render/tree/master/packages/core#running).
For Step-up MFA see [@newskit-render/my-account](https://github.com/newscorp-ghfb/ncu-newskit-render/tree/master/packages/my-account#step-up-mfa)

---
_Source: https://npm.io/package/@newskit-render/api · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
