# spatie/laravel-data

Powerful data objects for Laravel

Repository: https://github.com/spatie/laravel-data
Canonical: https://ross.abutalabs.com/products/laravel-data
Homepage: https://spatie.be/docs/laravel-data/
Language: PHP
License: MIT
License Family: permissive
Topics: laravel, php
Last push: 2026-06-26T09:48:48+00:00

## Health v2 (maintenance only)
Score: 89/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 89, release rhythm 83, longevity 100
- inputs: {"age_days": 1937, "days_push": 68, "days_rel": 117, "gap_med": 13, "n_releases_24m": 28}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1782, forks 288 (observed 2026-08-28T04:05:35.691141+00:00)

## What it is
A Laravel package for creating rich, typed data objects that can replace form requests, API transformers, and TypeScript definitions. Data is described once and can be validated, transformed into resources, constructed from request data, and exported as TypeScript.

## Use cases
- create typed data transfer objects in Laravel
- replace Laravel form requests with data objects
- generate TypeScript definitions from PHP classes
- validate request data automatically in Laravel
- transform data objects into API resources
- avoid duplicating properties across DTOs, resources, and validation

## When to choose
- you build Laravel APIs and want typed data flowing in and out
- you're tired of writing the same properties in form requests, transformers, and DTOs
- you want automatic validation rules derived from PHP types
- you share data structures between a Laravel backend and a TypeScript frontend

## When to avoid
- you don't use Laravel or PHP 8.1+
- you prefer lightweight DTOs without magic transformation behavior
- your project sticks to plain Laravel form requests and API resources

## Facets
- artifact type: library
- maturity: stable
- function: serialization, form-handling, middleware, api-framework, type-system
- domain: web-development, backend, developer-tools, apis
- platform: php
- tags: data-transfer-objects, laravel-package, validation, typescript-generation, eloquent, dto, api-resources, laravel

## Member repositories
- spatie/laravel-data (main) score 89

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:35.691141+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:24:23.407850+00:00, confidence not recorded.
  - readme: https://github.com/spatie/laravel-data (fetched 2026-08-28T04:05:35.691141+00:00, sha 300b77dabd89)
  - homepage: https://spatie.be/docs/laravel-data/ (fetched 2026-08-29T11:03:11.370349+00:00, sha 3e9bd86ff7f6)
  - site_page: https://spatie.be/docs/laravel-data/v2 (fetched 2026-08-29T11:03:11.386537+00:00, sha 63f1f849ecbf)
  - site_page: https://spatie.be/docs/laravel-data/v1 (fetched 2026-08-29T11:03:11.388241+00:00, sha 429a7c6ca108)
  - site_page: https://spatie.be/docs (fetched 2026-08-29T11:03:11.379360+00:00, sha 08e024d86d95)
  - site_page: https://spatie.be/about-us (fetched 2026-08-29T11:03:11.381158+00:00, sha d3cb88e4b34c)
  - site_page: https://spatie.be/docs/laravel-data/v4 (fetched 2026-08-29T11:03:11.383167+00:00, sha 3e9bd86ff7f6)
  - site_page: https://spatie.be/docs/laravel-data/v3 (fetched 2026-08-29T11:03:11.384850+00:00, sha 90e6420404bb)
  - site_page: https://spatie.be/docs/laravel-data/v4/support-us (fetched 2026-08-29T11:03:11.389980+00:00, sha 6616cb52aab0)
  - site_page: https://spatie.be/docs/laravel-data/v4/requirements (fetched 2026-08-29T11:03:11.392314+00:00, sha cea42177b977)
- Data as of 2026-08-30T08:39:29.467469+00:00.
