# json-api/json-api

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/json-api-json-api).**

7,708 stars · 937 forks · CSS · CC0-1.0

## Links

- GitHub: https://github.com/json-api/json-api
- Homepage: https://jsonapi.org
- awesome-repositories: https://awesome-repositories.com/repository/json-api-json-api.md

## Description

JSON API is a set of industry standards for RESTful APIs that defines uniform protocols for resource serialization, error responses, and query parameters. It provides a specification for request and response payloads in JSON-based APIs to ensure consistency across endpoints.

The specification focuses on reducing network requests through a structured resource serialization format and a standardized mechanism for embedding related resources into a single response. It utilizes a custom JSON media type for content negotiation and supports the definition of custom profiles to provide specialized information beyond the base technical standard.

The standard covers resource management by mapping HTTP methods to lifecycle operations and employs a uniform error object structure for predictable failure handling. It also includes a standardized query protocol for filtering, sorting, and paginating resource collections.

## Tags

### Networking & Communication

- [Resource Serialization Formats](https://awesome-repositories.com/f/networking-communication/json-serialization/resource-serialization-formats.md) — Implements a structured JSON format that separates primary data from relationships and metadata to minimize network requests.

### Software Engineering & Architecture

- [REST API Specifications](https://awesome-repositories.com/f/software-engineering-architecture/rest-api-specifications.md) — Defines a consistent format for requests and responses in REST APIs to ensure consistency across endpoints.
- [API Error Handling Patterns](https://awesome-repositories.com/f/software-engineering-architecture/api-error-handling-patterns.md) — Implements standardized patterns for returning uniform error objects with unique identifiers for predictable failure management.
- [Structured Error Responses](https://awesome-repositories.com/f/software-engineering-architecture/api-error-handling-patterns/structured-error-responses.md) — Implements a uniform error object format containing unique identifiers, status codes, and detail fields.
- [Declarative Data Fetching](https://awesome-repositories.com/f/software-engineering-architecture/declarative-data-fetching.md) — Reduces network round trips by embedding related resources into a single JSON response.
- [Uniform Error Objects](https://awesome-repositories.com/f/software-engineering-architecture/error-handling/error-object-creation/uniform-error-objects.md) — Returns failures in a consistent object format containing a unique identifier and a descriptive detail.
- [Resource-Relationship Separations](https://awesome-repositories.com/f/software-engineering-architecture/resource-relationship-separations.md) — Structures JSON payloads by separating core resource attributes from their relationships and metadata.
- [RESTful Resource Management](https://awesome-repositories.com/f/software-engineering-architecture/restful-resource-management.md) — Performs create, read, update, and delete operations on data collections using standard HTTP methods and uniform JSON structures.
- [API Profile Definitions](https://awesome-repositories.com/f/software-engineering-architecture/api-profile-definitions.md) — Allows the definition of custom profiles to deliver specialized information beyond the base technical specification. ([source](https://jsonapi.org))

### Data & Databases

- [Client-Requested Resource Inclusions](https://awesome-repositories.com/f/data-databases/data-resource-management/relational-resource-mapping/client-requested-resource-inclusions.md) — Enables bundling linked data into a single response when explicitly requested via query parameters to minimize network requests. ([source](https://cdn.jsdelivr.net/gh/json-api/json-api@gh-pages/README.md))
- [Resource Serialization Formats](https://awesome-repositories.com/f/data-databases/data-serialization-formats/resource-serialization-formats.md) — Provides a structured JSON format that separates primary resource data, relationships, and metadata for consistent client parsing.
- [Compound Document Embeddings](https://awesome-repositories.com/f/data-databases/document-embedding/compound-document-embeddings.md) — Includes related resources alongside primary data in a single response using a reserved includes parameter.
- [HTTP Query Protocols](https://awesome-repositories.com/f/data-databases/http-query-protocols.md) — Provides a standardized method for filtering, sorting, and paginating resource collections using uniform query parameters.

### Development Tools & Productivity

- [Resource Type-ID Pairs](https://awesome-repositories.com/f/development-tools-productivity/identifier-generators/uri-resource-identifiers/resource-type-id-pairs.md) — Ensures every resource object carries a mandatory type and id pair for consistent referencing and traversal.

### DevOps & Infrastructure

- [Query Parameter Filters](https://awesome-repositories.com/f/devops-infrastructure/resource-visibility-filters/query-parameter-filters.md) — Provides standardized query parameters for filtering, sorting, and paginating resource collections at API endpoints.

### Web Development

- [HTTP Verb Lifecycle Mapping](https://awesome-repositories.com/f/web-development/api-resource-mapping/http-verb-lifecycle-mapping.md) — Maps standard HTTP methods like GET, POST, PATCH, and DELETE directly to resource lifecycle operations.
- [HTTP Verb Lifecycle Mapping](https://awesome-repositories.com/f/web-development/http-endpoint-mapping/http-verb-lifecycle-mapping.md) — Maps standard HTTP methods directly to create, read, update, and delete operations.
- [Response Structure Standardization](https://awesome-repositories.com/f/web-development/rest-apis/api-response-validation/response-structure-standardization.md) — Provides a standardized structure for API error objects, ensuring consistent failure responses across all endpoints.
- [REST API Specifications](https://awesome-repositories.com/f/web-development/restful-apis/rest-api-specifications.md) — Defines a standard format for request and response payloads in JSON-based REST APIs to ensure consistency.
- [Content Negotiation](https://awesome-repositories.com/f/web-development/content-negotiation.md) — Utilizes a custom JSON media type with profile parameters for server and client content negotiation.
