# API Platform > API Platform is a framework for building hypermedia REST and GraphQL APIs in PHP, integrated with Symfony and Laravel. This file indexes the current (4.3) documentation for large language models, per the llmstxt.org convention. Full text: https://api-platform.com/docs/llms-full.txt ## API Platform for Symfony - [Getting Started With API Platform with Symfony](https://api-platform.com/docs/symfony/) - [Validation with Symfony](https://api-platform.com/docs/symfony/validation/): API Platform takes care of validating the data sent to the API by the client (usually user data entered through forms). By default, the framework relies on the… - [Security with Symfony](https://api-platform.com/docs/symfony/security/): The API Platform security layer is built on top of the Symfony Security component. All its features, including global access control directives are supported.… - [Testing the API with Symfony](https://api-platform.com/docs/symfony/testing/): For an introduction to testing using API Platform, refer to the Core Testing Documentation, or access the Laravel Testing Guide. - [Debugging with Symfony](https://api-platform.com/docs/symfony/debugging/) - [Configuring the Caddy Web Server with Symfony](https://api-platform.com/docs/symfony/caddy/): The API Platform Symfony variant, when generated with Docker, is shipped with the Caddy web server. The build contains the Mercure and the Vulcain Caddy… - [JWT Authentication with Symfony](https://api-platform.com/docs/symfony/jwt/) - [Symfony Messenger Integration: CQRS and Async Message Processing](https://api-platform.com/docs/symfony/messenger/): API Platform provides an integration with the Symfony Messenger Component. - [User Entity with Symfony](https://api-platform.com/docs/symfony/user/): This documentation is based on the official Symfony Documentation with some API Platform integrations. - [Handling File Upload with Symfony](https://api-platform.com/docs/symfony/file-upload/): As common a problem as it may seem, handling file upload requires a custom implementation in your app. This page will guide you in handling file upload in your… - [Creating Custom Operations and Symfony Controllers](https://api-platform.com/docs/symfony/controllers/) - [NelmioApiDocBundle Integration with Symfony](https://api-platform.com/docs/symfony/nelmio-api-doc/) - [Migrate From FOSRestBundle with Symfony](https://api-platform.com/docs/symfony/migrate-from-fosrestbundle/): FOSRestBundle is a popular bundle to rapidly develop RESTful APIs with Symfony. This page provides a guide to help developers migrate from FOSRestBundle to API… - [FOSUserBundle Integration with Symfony](https://api-platform.com/docs/symfony/fosuser-bundle/) ## API Platform for Laravel - [API Platform for Laravel Projects](https://api-platform.com/docs/laravel/): API Platform is the easiest way to create state-of-the-art web APIs using Laravel! - [Testing the API with Laravel](https://api-platform.com/docs/laravel/testing/): For an introduction to testing using API Platform, refer to the Core Testing Documentation, or access the Symfony Testing Guide. - [Parameters and Filters](https://api-platform.com/docs/laravel/filters/): API Platform is great for Rapid Application Development and provides lots of functionalities out of the box such as collection filtering with Eloquent. Most of… - [Security with Laravel](https://api-platform.com/docs/laravel/security/) - [Validation with Laravel](https://api-platform.com/docs/laravel/validation/): API Platform simplifies the validation of data sent by clients to the API, typically user inputs submitted through forms. - [JWT Authentication with Laravel](https://api-platform.com/docs/laravel/jwt/) ## Core - [The API Platform Core Library](https://api-platform.com/docs/core/): API Platform Core is an easy-to-use and powerful library for creating hypermedia-driven REST APIs. It is a component of the API Platform framework. - [Getting started](https://api-platform.com/docs/core/getting-started/) - [Upgrade Guide](https://api-platform.com/docs/core/upgrade-guide/) - [General Design Considerations](https://api-platform.com/docs/core/design/): Since you only need to describe the structure of the data to expose, API Platform is both a "design-first" and "code-first" API framework. However, the… - [Extending API Platform](https://api-platform.com/docs/core/extending/): Because it handles the complex, tedious and repetitive task of creating an API infrastructure for you, API Platform lets you focus on what matters the most for… - [Testing the API](https://api-platform.com/docs/core/testing/): Once your API is up and running, it's crucial to write tests to ensure it is bug-free and to prevent future regressions. A good practice is to follow a… - [Operations](https://api-platform.com/docs/core/operations/): API Platform relies on the concept of operations. Operations can be applied to a resource exposed by the API. From an implementation point of view, an… - [GraphQL Support](https://api-platform.com/docs/core/graphql/): GraphQL is a query language made to communicate with an API and therefore is an alternative to REST. - [State Providers](https://api-platform.com/docs/core/state-providers/): To retrieve data exposed by the API, API Platform uses classes called state providers. - [State Processors](https://api-platform.com/docs/core/state-processors/): To mutate the application states during POST, PUT, PATCH or DELETE operations, API Platform uses classes called state processors. State processors receive an… - [Parameters and Filters](https://api-platform.com/docs/core/filters/): For documentation on the specific filter implementations available for your persistence layer, please refer to the following pages: - [Elasticsearch & OpenSearch Filters](https://api-platform.com/docs/core/elasticsearch-filters/) - [Doctrine ORM and MongoDB ODM Filters](https://api-platform.com/docs/core/doctrine-filters/) - [Subresources](https://api-platform.com/docs/core/subresources/): A Subresource is another way of declaring a resource that usually involves a more complex URI. In API Platform you can declare as many ApiResource as you want… - [The Serialization Process](https://api-platform.com/docs/core/serialization/): For documentation on how to expose PHP 8.1+ Enums as API resources, refer to the Enums documentation. - [Validation](https://api-platform.com/docs/core/validation/): API Platform takes care of validating the data sent to the API by the client (usually user data entered through forms). - [Security](https://api-platform.com/docs/core/security/): API Platform provides advanced authentication and authorization features to secure your API. - [Content Negotiation](https://api-platform.com/docs/core/content-negotiation/): The API system has built-in content negotiation capabilities. - [JSON:API](https://api-platform.com/docs/core/jsonapi/): API Platform supports the JSON:API format. When a client sends a request with an Accept: application/vnd.api+json header, API Platform serializes responses… - [Pagination](https://api-platform.com/docs/core/pagination/) - [Deprecating Resources and Properties (Alternative to Versioning)](https://api-platform.com/docs/core/deprecations/): A best practice regarding web API development is to apply the evolution strategy to indicate to client applications which resource types, operations and fields… - [Overriding Default Order](https://api-platform.com/docs/core/default-order/): API Platform provides an easy way to override the default order of items in your collection. - [Performance and Cache](https://api-platform.com/docs/core/performance/) - [Extensions for Doctrine, Eloquent and Elasticsearch](https://api-platform.com/docs/core/extensions/): API Platform provides a system to extend queries on items and collections. - [Using Data Transfer Objects (DTOs)](https://api-platform.com/docs/core/dto/) - [OpenAPI Specification Support (formerly Swagger)](https://api-platform.com/docs/core/openapi/): API Platform natively supports the OpenAPI API specification format. - [JSON Schema Support](https://api-platform.com/docs/core/json-schema/): JSON Schema is a popular vocabulary to describe the shape of JSON documents. A variant of JSON Schema is also used in OpenAPI specifications. - [MCP: Exposing Your API to AI Agents](https://api-platform.com/docs/core/mcp/): API Platform integrates with the Model Context Protocol (MCP) to expose your API as tools and resources that AI agents (LLMs) can discover and interact with. - [Using AI Coding Agents with API Platform](https://api-platform.com/docs/core/ai-agents/): AI coding agents — Claude Code, Cursor, GitHub Copilot, OpenAI Codex, Gemini, and others — are trained on snapshots of public code. Those snapshots lag behind… - [Creating Async APIs using the Mercure Protocol](https://api-platform.com/docs/core/mercure/): API Platform can automatically push the modified version of the resources exposed by the API to the currently connected clients (webapps, mobile apps...) using… - [Pushing Related Resources Using HTTP/2](https://api-platform.com/docs/core/push-relations/) - [Errors Handling](https://api-platform.com/docs/core/errors/): API Platform comes with a powerful error system. It handles expected (such as faulty JSON documents sent by the client or validation errors) as well as… - [Using External Vocabularies](https://api-platform.com/docs/core/external-vocabularies/): JSON-LD allows to define classes and properties of your API with open vocabularies such as Schema.org and Good Relations. - [Operation Path Naming](https://api-platform.com/docs/core/operation-path-naming/): With API Platform Core, you can configure the default resolver used to generate operation paths. Pre-registered resolvers are available and can easily be… - [URL Generation Strategy](https://api-platform.com/docs/core/url-generation-strategy/): By default, API Platform generates all URLs as absolute paths to the base URL. - [Extending JSON-LD AND Hydra Contexts](https://api-platform.com/docs/core/extending-jsonld-context/) - [Identifiers](https://api-platform.com/docs/core/identifiers/): Every item operation has an identifier in its URL. Although this identifier is usually a number, it can also be an UUID, a date, or the type of your choice. To… - [MongoDB Support](https://api-platform.com/docs/core/mongodb/) - [Elasticsearch & OpenSearch Support](https://api-platform.com/docs/core/elasticsearch/) - [The Event System](https://api-platform.com/docs/core/events/) - [JWT Authentication](https://api-platform.com/docs/core/jwt/) - [Accept `application/x-www-form-urlencoded` Form Data](https://api-platform.com/docs/core/form-data/): API Platform only supports raw documents as request input (encoded in JSON, XML, YAML...). This has many advantages including support of types and the ability… - [Bootstrapping the Core Library](https://api-platform.com/docs/core/bootstrap/): You may want to run a minimal version of API Platform. This one file runs API Platform (without GraphQL, Eloquent, Doctrine MongoDB...). It requires the… - [Configuration Reference](https://api-platform.com/docs/core/configuration/) - [Client Integrations](https://api-platform.com/docs/core/client-integration/) ## Schema Generator - [The Schema Generator](https://api-platform.com/docs/schema-generator/): schema is a command-line tool part of the API Platform framework that instantly generates a set of PHP classes from RDF vocabularies such as (but not limited… - [Getting Started](https://api-platform.com/docs/schema-generator/getting-started/) - [Configuration](https://api-platform.com/docs/schema-generator/configuration/): The following options can be used in the configuration file. ## Admin - [The API Platform Admin](https://api-platform.com/docs/admin/) - [Getting Started](https://api-platform.com/docs/admin/getting-started/) - [Customizing the Schema](https://api-platform.com/docs/admin/schema/): Both HydraAdmin and OpenApiAdmin leverage introspection of the API schema to discover its capabilities, like filtering and sorting. - [Customizing the Guessers](https://api-platform.com/docs/admin/customizing/): Using or directly is a great way to quickly get started with API Platform Admin. They will introspect your API schema (using… - [Customizing the Admin](https://api-platform.com/docs/admin/advanced-customization/): In the previous sections, we have seen how to customize the generated Admin by updating the schema, and by customizing the guesser components. - [Handling Relations](https://api-platform.com/docs/admin/handling-relations/): API Platform Admin handles one-to-one, many-to-one and one-to-many relations automatically. - [Validation](https://api-platform.com/docs/admin/validation/): API Platform Admin manages automatically two types of validation: client-side validation and server-side (or submission) validation. - [Real-time Updates With Mercure](https://api-platform.com/docs/admin/real-time-mercure/): API Platform Admin support real-time updates by using the Mercure protocol. - [Authentication Support](https://api-platform.com/docs/admin/authentication-support/): API Platform Admin delegates the authentication support to React Admin. - [Handling File Upload](https://api-platform.com/docs/admin/file-upload/): If you need to handle the file upload in the server part, please follow the related documentation. - [Performance Tips](https://api-platform.com/docs/admin/performance/): To make the admin faster and greener, you can make some changes to your API. - [Components Reference](https://api-platform.com/docs/admin/components/) ## Create Client - [API Platform Create Client](https://api-platform.com/docs/create-client/): Create Client is the fastest way to scaffold fully featured webapps and native mobile apps from APIs supporting the Hydra or OpenAPI format. - [Next.js Generator](https://api-platform.com/docs/create-client/nextjs/) - [Nuxt Generator](https://api-platform.com/docs/create-client/nuxt/): Bootstrap a Nuxt 3 application: - [Vuetify Generator](https://api-platform.com/docs/create-client/vuetify/): Bootstrap a Vuetify 3 application using create-vuetify: - [Quasar Framework Generator](https://api-platform.com/docs/create-client/quasar/): Create a Quasar Framework application using Quasar CLI: - [React Generator](https://api-platform.com/docs/create-client/react/) - [React Native generator](https://api-platform.com/docs/create-client/react-native/) - [Vue.js Generator](https://api-platform.com/docs/create-client/vuejs/): Bootstrap a Vue 3 application using create-vue: - [TypeScript Interfaces](https://api-platform.com/docs/create-client/typescript/): The TypeScript Generator allows you to create TypeScript interfaces that you can embed in any TypeScript-enabled project (React, Vue.js, Angular..). - [Custom Generator](https://api-platform.com/docs/create-client/custom/): Create Client provides support for many of the popular JS frameworks, but you may be using another framework or language and may need a solution adapted to… - [Troubleshooting](https://api-platform.com/docs/create-client/troubleshooting/) ## Deployment - [Deploying API Platform Applications](https://api-platform.com/docs/deployment/): API Platform apps are super easy to deploy in production thanks to the Docker Compose definition and to the Kubernetes chart we provide. - [Deploying with Docker Compose](https://api-platform.com/docs/deployment/docker-compose/): While Docker Compose is mainly known and used in a development environment, it can be used in production too. This is especially suitable for prototyping or… - [Deploying to a Kubernetes Cluster](https://api-platform.com/docs/deployment/kubernetes/): Kubernetes has become the most popular way to deploy, run and manage containers in production. Google Cloud Platform, Microsoft Azure and Amazon Web Services… - [Deploying to minikube](https://api-platform.com/docs/deployment/minikube/) - [Deploying an API Platform App on Heroku](https://api-platform.com/docs/deployment/heroku/): Heroku is a popular, fast, scalable and reliable Platform As A Service (PaaS). As Heroku offers a free plan including database support through Heroku Postgres,… - [Implement Træfik Into API Platform Dockerized](https://api-platform.com/docs/deployment/traefik/) ## General Information - [API Platform's Philosophy](https://api-platform.com/docs/extra/philosophy/): In 25 years of PHP, the web changed dramatically and is now evolving faster than ever: - [The Release Process](https://api-platform.com/docs/extra/releases/): API Platform follows the Semantic Versioning strategy. A new minor version is released every six months, and a new major version is released every two years,… - [API Platform for Enterprise](https://api-platform.com/docs/extra/enterprise/): API Platform is available as part of the Tidelift Subscription. - [Security Policy](https://api-platform.com/docs/extra/security/): This document explains how API Platform security issues are handled by the API Platform core team (API Platform being the code hosted in the api-platform… - [Troubleshooting](https://api-platform.com/docs/extra/troubleshooting/): This is a list of common pitfalls while using API Platform, and how to avoid them. - [Contribution Guides](https://api-platform.com/docs/extra/contribution-guides/) - [Contributor Code of Conduct](https://api-platform.com/docs/extra/conduct/): As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who…