# @ember-data/serializer

> (Legacy) JSON, JSON:API and REST Implementations of the Serializer Interface for use with @ember-data/store

Latest version **5.9.1** (published 2026-09-05) · MIT license · 0 weekly downloads

## Install

```sh
npm install @ember-data/serializer
pnpm add @ember-data/serializer
yarn add @ember-data/serializer
bun add @ember-data/serializer
```

## Health

**Score 68/100 (B)** — status: active.

Positive: has types package; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 5.9.1 |
| Published | 2026-09-05 |
| First published | 2019-05-01 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/ember-data__serializer) |
| Module format | ESM + CommonJS |
| Dependencies | 5 |
| Unpacked size | 301.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 3156 |
| Maintainers | ember-data-admin, runspired, richgt, hm_krystan, katiegengler |
| Keywords | ember-addon |

## Links

- npm: https://www.npmjs.com/package/@ember-data/serializer
- Repository: https://github.com:warp-drive-data/warp-drive
- npm.io page: https://npm.io/package/@ember-data/serializer

## Dependencies (5)

- [warp-drive](https://npm.io/package/warp-drive.md) 0.2.1
- [@warp-drive/core](https://npm.io/package/@warp-drive/core.md) 5.9.1
- [@embroider/macros](https://npm.io/package/@embroider/macros.md) ^1.20.6
- [@warp-drive/legacy](https://npm.io/package/@warp-drive/legacy.md) 5.9.1
- [@warp-drive/utilities](https://npm.io/package/@warp-drive/utilities.md) 5.9.1

## Recent versions

- 5.9.1 (latest) — 2026-09-05
- 5.10.0-alpha.13 (canary) — 2026-09-29
- 5.9.0-beta.3 (beta) — 2026-09-05
- 4.13.0-alpha.9 (v4-canary) — 2025-05-15
- 5.3.13 (lts) — 2025-04-11
- 4.6.6 (release-4-6) — 2024-08-26
- 4.12.8 (lts-4-12) — 2024-05-08
- 4.4.2 (lts-4-4) — 2023-08-01
- 4.8.8 (lts-4-8) — 2023-02-27
- 3.28.13 (lts-3-28) — 2023-02-25
- 3.13.3 (release-3-13) — 2020-03-04
- 3.13.3-alpha.0 (experimental) — 2020-02-28
- 3.11.5 (release-3-11) — 2019-09-09
- 5.10.0-alpha.12 — 2026-09-25
- 5.10.0-alpha.10 — 2026-09-23
- … 754 more at https://npm.io/package/@ember-data/serializer/versions

## README

<p align="center">
  <img
    class="project-logo"
    src="./logos/logo-yellow-slab.svg"
    alt="WarpDrive"
    width="180px"
    title="WarpDrive"
    />
</p>

![NPM Stable Version](https://img.shields.io/npm/v/ember-data/latest?label=version&style=flat&color=fdb155)
![NPM Downloads](https://img.shields.io/npm/dm/ember-data.svg?style=flat&color=fdb155)
![License](https://img.shields.io/github/license/warp-drive-data/warp-drive.svg?style=flat&color=fdb155)
[![EmberJS Discord Community Server](https://img.shields.io/badge/EmberJS-grey?logo=discord&logoColor=fdb155)](https://discord.gg/zT3asNS
)
[![WarpDrive Discord Server](https://img.shields.io/badge/WarpDrive-grey?logo=discord&logoColor=fdb155)](https://discord.gg/PHBbnWJx5S
)

<p align="center">
  <br>
  <a href="https://warp-drive.io">WarpDrive</a> is the lightweight data library for web apps &mdash;
  <br>
  universal, typed, reactive, and ready to scale.
  <br/><br/>
</p>

---

# @ember-data/serializer

<p align="center">Provides JSON, REST and JSON:API Implementations of the legacy <a href="https://api.emberjs.com/ember-data/release/classes/%3CInterface%3E%20Serializer">Serializer Interface</a></p>

> [!WARNING]
> **⚠️ This is a legacy package** not recommended for new applications.
>
> **This is LEGACY documentation** for a feature that is no longer encouraged to be used.

> If starting a new app or thinking of implementing a new serializer, consider writing a [Handler](https://warp-drive.io/api/@warp-drive/core/request/interfaces/Handler)
> instead to be used with the [RequestManager](https://warp-drive.io/api/@warp-drive/core/classes/RequestManager)

## Installation

This package is currently installed when installing `ember-data`.

If installing `@ember-data/` packages individually install using your javascript package manager of choice. For instance with [pnpm](https://pnpm.io/)

```sh
pnpm add @ember-data/serializer
```

**Tagged Releases**

- ![NPM Canary Version](https://img.shields.io/npm/v/%40ember-data/serializer/canary?label=%40canary&color=FFBF00)
- ![NPM Beta Version](https://img.shields.io/npm/v/%40ember-data/serializer/beta?label=%40beta&color=ff00ff)
- ![NPM Stable Version](https://img.shields.io/npm/v/%40ember-data/serializer/latest?label=%40latest&color=90EE90)
- ![NPM LTS Version](https://img.shields.io/npm/v/%40ember-data/serializer/lts?label=%40lts&color=0096FF)
- ![NPM LTS 4.12 Version](https://img.shields.io/npm/v/%40ember-data/serializer/lts-4-12?label=%40lts-4-12&color=bbbbbb)


## 🚀 Setup

If using `ember-data` no additional setup is necesssary.

> **Note**
> When using [ember-data](https://github.com/warp-drive-data/warp-drive/blob/main/packages/-ember-data) the below
> configuration is handled for you automatically.

To use legacy serializers you will need to have installed and configured the LegacyNetworkHandler from [@ember-data/legacy-compat](https://github.com/warp-drive-data/warp-drive/blob/main/packages/-ember-data)

```sh
pnpm add @ember-data/legacy-compat
```

```ts
import Store, { CacheHandler } from '@ember-data/store';
import RequestManager from '@ember-data/request';
import { LegacyNetworkHandler } from '@ember-data/legacy-compat';

export default class extends Store {
  requestManager = new RequestManager()
    .use([LegacyNetworkHandler])
    .useCache(CacheHandler);
}
```


## Usage

To use as either a per-type or application serializer, export one of the
implementations within the `serializers/` directory of your app as appropriate.

For instance, to configure an application serializer to use `JSON:API`


*app/serializers/application.ts*
```ts
export { default } from '@ember-data/serializer/json-api';
```

By default serializers are resolved by looking for a serializer with the same name in the `serializers/` folder as the `type` given to `store.serializerFor(<type>)`, falling back to looking for a serializer named `application`.

**Overriding Resolution**

If you would like to avoid using resolver semantics and your application has only one or a few serializers, you may ovveride the `serializerFor` hook on the store.

```ts
import Store from '@ember-data/store';
import Serializer from '@ember-data/serializer/json-api';

class extends Store {
  #serializer = new Serializer();

  serializerFor() {
    return this.#serializer;
  }
}
```


For the full list of APIs available read the code documentation for [@ember-data/serializer](https://api.emberjs.com/ember-data/release/modules/@ember-data%2Fserializer). You may also be interested in learning more about *Ember***Data**'s [Serializer Interface](https://api.emberjs.com/ember-data/release/classes/%3CInterface%3E%20Serializer).

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