API Resources

Transform models into JSON responses

API Resources give you a transformation layer between your Eloquent models and the JSON responses your API returns.

A resource class transforms a model into a JSON-friendly array, controlling which fields appear and how.

Model
Resource
JSON
Model fields
id
name
email
password
remember_token
created_at
updated_at
JSON output
id:1
name:Alice
email:alice@example.com
4 fields hidden by resource
PHP
// app/Http/Resources/UserResource.php
class UserResource extends JsonResource {
    public function toArray($request): array {
        return [
            'id'    => $this->id,
            'name'  => $this->name,
            'email' => $this->email,
        ];
    }
}

return new UserResource($user);