# Strapi > Documentation for Strapi ## Pages - [Strapi Documentation](strapi-documentation.md) - [Account billing details](account-billing-details.md) - [Account billing & invoices](account-billing-invoices.md): Through the *Profile* page, accessible by clicking on your profile picture on the top right hand corner of the interf... - [Profile settings](profile-settings.md) - [Profile settings](profile-settings-2.md): The *Profile* page enables you to manage your account details and preferences. It is accessible by clicking on your p... - [Database](database.md): Strapi Cloud provides a pre-configured PostgreSQL database by default. However, you can also configure it to utilize ... - [Email Provider](email-provider.md): Strapi Cloud comes with a basic email provider out of the box. However, it can also be configured to utilize another ... - [Upload Provider](upload-provider.md): Strapi Cloud comes with a local upload provider out of the box. However, it can also be configured to utilize a third... - [Command Line Interface (CLI)](command-line-interface-cli.md) - [Command Line Interface (CLI)](command-line-interface-cli-2.md): Strapi Cloud comes with a Command Line Interface (CLI) which allows you to log in and out, and to deploy a local proj... - [Caching & Performance](caching-performance.md) - [Caching & Performance](caching-performance-2.md): For Strapi Cloud applications with large amounts of cacheable content, such as images, videos, and other static asset... - [Strapi Cloud fundamentals](strapi-cloud-fundamentals.md) - [Strapi Cloud fundamentals](strapi-cloud-fundamentals-2.md): Before going any further into this Strapi Cloud documentation, we recommend you to acknowledge the main concepts belo... - [Strapi Cloud - Dashboard deployment](strapi-cloud-dashboard-deployment.md) - [Project deployment with the Cloud dashboard](project-deployment-with-the-cloud-dashboard.md): This is a step-by-step guide for deploying your project on Strapi Cloud for the first time, using the Cloud dashboard. - [Strapi Cloud - CLI deployment](strapi-cloud-cli-deployment.md) - [Project deployment with the Command Line Interface (CLI)](project-deployment-with-the-command-line-interface-cli.md): This is a step-by-step guide for deploying your project on Strapi Cloud for the first time, using the Command Line In... - [Project deployment](project-deployment.md) - [Project deployment with Strapi Cloud](project-deployment-with-strapi-cloud.md): You have 2 options to deploy your project with Strapi Cloud: - [Welcome to the Strapi Cloud Documentation!](welcome-to-the-strapi-cloud-documentation.md) - [Welcome to the Strapi Cloud Documentation!](welcome-to-the-strapi-cloud-documentation-2.md): --> - [Information on billing & usage](information-on-billing-usage.md) - [Information on billing & usage](information-on-billing-usage-2.md): This page contains general information related to the usage and billing of your Strapi Cloud account and projects. - [Collaboration](collaboration.md) - [Collaboration on projects](collaboration-on-projects.md): Projects are created by a user via their Strapi Cloud account. Strapi Cloud users can share their projects to anyone ... - [Deployments management](deployments-management.md) - [Deployments management](deployments-management-2.md): The creation of a new Strapi Cloud project automatically trigger the deployment of that project. After that, deployme... - [Deployment history & logs](deployment-history-logs.md) - [Deployment history and logs {#deploy-history-and-logs}](deployment-history-and-logs-deploy-history-and-logs.md): For each Strapi Cloud project, you can access the history of all deployments that occurred and their details includin... - [Notifications](notifications.md) - [Notifications](notifications-2.md): The Notification center can be opened by clicking the bell icon in the top navigation of the Cloud dashboard. - [Projects overview](projects-overview.md) - [Projects overview](projects-overview-2.md): The *Projects* page displays a list of all your Strapi Cloud projects. From here you can manage your projects and acc... - [Runtime logs](runtime-logs.md) - [Runtime logs](runtime-logs-2.md): From a chosen project's dashboard, the *Runtime logs* tab displays the live logs of the project. - [Project settings](project-settings.md) - [Project settings](project-settings-2.md): From a chosen project's dashboard, the **Settings** button, located in the header, enables you to manage the configu... - [Admin panel customization](admin-panel-customization.md) - [Admin panel customization](admin-panel-customization-2.md): The **front-end part of Strapi** is called the admin panel. The admin panel presents a graphical user interface to h... - [Admin panel bundlers](admin-panel-bundlers.md) - [Admin panel bundlers](admin-panel-bundlers-2.md): Strapi's [admin panel](/cms/admin-panel-customization) is a React-based single-page application that encapsulates all... - [Admin panel extension](admin-panel-extension.md) - [Admin panel extension](admin-panel-extension-2.md): Strapi's [admin panel](/cms/admin-panel-customization) is a React-based single-page application that encapsulates all... - [Favicon](favicon.md) - [Favicon](favicon-2.md): Strapi's [admin panel](/cms/admin-panel-customization) displays its branding on various places, including the [logo](... - [Homepage customization](homepage-customization.md) - [Homepage customization](homepage-customization-2.md): The - [Locales & translations](locales-translations.md) - [Locales & translations](locales-translations-2.md): The Strapi [admin panel](/cms/admin-panel-customization) ships with English strings and supports adding other locales... - [Logos](logos.md) - [Logos](logos-2.md): Strapi's [admin panel](/cms/admin-panel-customization) displays its branding on both the login screen and in the main... - [Theme extension](theme-extension.md) - [Theme extension](theme-extension-2.md): Strapi's [admin panel](/cms/admin-panel-customization) can be displayed either in light or dark mode (see [profile se... - [Customizing the rich text editor](customizing-the-rich-text-editor.md) - [Change the default rich text editor](change-the-default-rich-text-editor.md): Strapi's [admin panel](/cms/admin-panel-customization) comes with a built-in rich text editor. To change the default ... - [Strapi Client](strapi-client.md): The Strapi Client library simplifies interactions with your Strapi back end, providing a way to fetch, create, update... - [Strapi APIs to access your content](strapi-apis-to-access-your-content.md): Once you've created and configured a Strapi project, created a content structure with the [Content-Type Builder](/cms... - [Documents](documents.md) - [Documents](documents-2.md): A **document** in Strapi 5 is an API-only concept. A document represents all the different variations of content for ... - [Document Service API](document-service-api.md) - [Document Service API](document-service-api-2.md): The Document Service API is built on top of the **Query Engine API** and is used to perform CRUD (create,... - [Using fields with the Document Service API](using-fields-with-the-document-service-api.md) - [Document Service API: Selecting fields](document-service-api-selecting-fields.md): By default the [Document Service API](/cms/api/document-service) returns all the fields of a document but does not po... - [Using filters with the Document Service API](using-filters-with-the-document-service-api.md) - [Document Service API: Filters](document-service-api-filters.md): The [Document Service API](/cms/api/document-service) offers the ability to filter results. - [Using the locale parameter with the Document Service API](using-the-locale-parameter-with-the-document-service-api.md) - [Document Service API: Using the `locale` parameter](document-service-api-using-the-locale-parameter.md): By default the [Document Service API](/cms/api/document-service) returns the default locale version of documents (whi... - [Extending the Document Service behavior](extending-the-document-service-behavior.md) - [Document Service API: Middlewares](document-service-api-middlewares.md): The [Document Service API](/cms/api/document-service) offers the ability to extend its behavior thanks to middlewares. - [Using Populate with the Document Service API](using-populate-with-the-document-service-api.md) - [Document Service API: Populating fields](document-service-api-populating-fields.md): By default the [Document Service API](/cms/api/document-service) does not populate any relations, media fields, compo... - [Using Sort & Pagination with the Document Service API](using-sort-pagination-with-the-document-service-api.md) - [Document Service API: Sorting and paginating results](document-service-api-sorting-and-paginating-results.md): The [Document Service API](/cms/api/document-service) offers the ability to sort and paginate query results. - [Using Draft & Publish with the Document Service API](using-draft-publish-with-the-document-service-api.md) - [Document Service API: Usage with Draft & Publish](document-service-api-usage-with-draft-publish.md): By default the [Document Service API](/cms/api/document-service) returns the draft version of a document when the [Dr... - [GraphQL API](graphql-api.md): The GraphQL API allows performing queries and mutations to interact with the [content-types](/cms/backend-customizati... - [in - returns restaurants with category either "pizza" or "burger"](in-returns-restaurants-with-category-either-pizza-or-burger.md): { - [notIn - returns restaurants whose category is neither "pizza" nor "burger"](notin-returns-restaurants-whose-category-is-neither-pizza-nor-burger.md): { - [null - returns restaurants where description is null](null-returns-restaurants-where-description-is-null.md): { - [notNull - returns restaurants where description is not null](notnull-returns-restaurants-where-description-is-not-null.md): { - [and - both category must be "pizza" AND averagePrice must be < 20](and-both-category-must-be-pizza-and-averageprice-must-be-20.md): { - [or - category is "pizza" OR category is "burger"](or-category-is-pizza-or-category-is-burger.md): { - [not - category must NOT be "pizza"](not-category-must-not-be-pizza.md): { - [OpenAPI specification generation](openapi-specification-generation.md): Strapi provides a command-line tool to generate - [REST API reference](rest-api-reference.md): The REST API allows accessing the [content-types](/cms/backend-customization/models) through API endpoints. Strapi au... - [REST API: Filters](rest-api-filters.md): The [REST API](/cms/api/rest) offers the ability to filter results found with its ["Get entries"](/cms/api/rest#get-a... - [REST API Guides](rest-api-guides.md) - [REST API Guides](rest-api-guides-2.md): The [REST API reference](/cms/api/rest) documentation is meant to provide a quick reference for all the endpoints and... - [Interactive Query Builder](interactive-query-builder.md) - [Build your query URL with Strapi's interactive tool](build-your-query-url-with-strapis-interactive-tool.md): A wide range of parameters can be used and combined to query your content with the [REST API](/cms/api/rest), which c... - [REST API: `locale`](rest-api-locale.md): The [Internationalization (i18n) feature](/cms/features/internationalization) adds new abilities to the [REST API](/c... - [REST API parameters](rest-api-parameters.md): API parameters can be used with the [REST API](/cms/api/rest) to filter, sort, and paginate results and to select fie... - [Populate and Select](populate-and-select.md) - [REST API: Population & Field Selection](rest-api-population-field-selection.md): The [REST API](/cms/api/rest) by default does not populate any relations, media fields, components, or dynamic zones.... - [Managing relations with API requests](managing-relations-with-api-requests.md): Defining relations between content-types (that are designated as entities in the database layers) is connecting entit... - [Sort and Pagination](sort-and-pagination.md) - [REST API: Sort & Pagination](rest-api-sort-pagination.md): Entries that are returned by queries to the [REST API](/cms/api/rest) can be sorted and paginated. - [REST API: `status`](rest-api-status.md): The [REST API](/cms/api/rest) offers the ability to filter results based on their status, draft or published. - [REST API: Upload files](rest-api-upload-files.md): The [Media Library feature](/cms/features/media-library) is powered in the back-end server of Strapi by the`upload`... - [Back-end customization](back-end-customization.md) - [Backend customization](backend-customization.md): :::strapi Disambiguation: Strapi back end - [Controllers](controllers.md) - [Controllers](controllers-2.md): Controllers are JavaScript files that contain a set of methods, called actions, reached by the client according to th... - [Middlewares](middlewares.md) - [Middlewares customization](middlewares-customization.md): Globally scoped custom middlewares should be added to the [middlewares configuration file](/cms/configurations/middle... - [Models](models.md) - [Models](models-2.md): As Strapi is a headless Content Management System (CMS), creating a content structure for the content is one of the m... - [Policies](policies.md) - [Policies](policies-2.md): Policies are functions that execute specific logic on each request before it reaches the [controller](/cms/backend-cu... - [Requests and Responses](requests-and-responses.md) - [Requests and Responses](requests-and-responses-2.md): The Strapi back end server is based on . When you send requests through the [REST API](/cms/api/rest), a context obje... - [Routes](routes.md) - [Routes](routes-2.md): Requests sent to Strapi on any URL are handled by routes. By default, Strapi generates routes for all the content-typ... - [Services](services.md) - [Services](services-2.md): Services are a set of reusable functions. They are particularly useful to respect the "don’t repeat yourself" (DRY) p... - [Webhooks](webhooks.md) - [Webhooks](webhooks-2.md): Webhook is a construct used by an application to notify other applications that an event occurred. More precisely, we... - [Command Line Interface (CLI)](command-line-interface-cli-3.md): Strapi comes with a full featured Command Line Interface (CLI) which lets you scaffold and manage your project in sec... - [Configuration](configuration.md): The configuration of a Strapi project lives in the`/config`folder: - [API calls configuration](api-calls-configuration.md) - [API configuration](api-configuration.md): General settings for API calls can be set in the`./config/api.js`file: - [Cron jobs](cron-jobs.md): :::prerequisites - [Database configuration](database-configuration.md) - [Database configuration](database-configuration-2.md): The`/config/database.js|ts`file is used to define database connections that will be used to store the application c... - [Create a new database user with a secure password](create-a-new-database-user-with-a-secure-password.md): $ CREATE USER my_strapi_db_user WITH PASSWORD 'password'; - [Connect to the database as the PostgreSQL admin](connect-to-the-database-as-the-postgresql-admin.md): $ \c my_strapi_db_name admin_user - [Grant schema privileges to the user](grant-schema-privileges-to-the-user.md): $ GRANT ALL ON SCHEMA public TO my_strapi_db_user; - [Environment variables configuration](environment-variables-configuration.md) - [Environment configuration and variables](environment-configuration-and-variables.md): Strapi provides specific environment variable names. Defining them in an environment file (e.g.,`.env`) will make th... - [Features configuration](features-configuration.md) - [Features configuration](features-configuration-2.md): The`config/features.js|ts`file is used to enable feature flags. Currently this file only includes a`future`object... - [Lifecycle functions](lifecycle-functions.md) - [Functions](functions.md): The`./src/index.js`file (or`./src/index.ts`file in a [TypeScript-based](/cms/typescript) project) includes global... - [Middlewares configuration](middlewares-configuration.md) - [Middlewares configuration](middlewares-configuration-2.md): :::tip - [Plugins configuration](plugins-configuration.md) - [Plugins configuration](plugins-configuration-2.md): Plugin configurations are stored in`/config/plugins.js|ts`(see [project structure](/cms/project-structure)). Each p... - [Server configuration](server-configuration.md) - [Server configuration](server-configuration-2.md): The`/config/server.js`file is used to define the server configuration for a Strapi application. - [TypeScript configuration](typescript-configuration.md) - [TypeScript configuration](typescript-configuration-2.md): [TypeScript](/cms/typescript)-enabled Strapi projects have a specific project structure and handle TypeScript project... - [Customization](customization.md): Strapi includes 2 main components: - [Database migrations](database-migrations.md) - [Database migrations](database-migrations-2.md): Database migrations exist to run one-time queries against the database, typically to modify the tables structure or t... - [Database transactions](database-transactions.md) - [Database transactions](database-transactions-2.md): :::caution - [Deployment](deployment.md): Strapi provides many deployment options for your project or application. Your Strapi applications can be deployed on ... - [Error handling](error-handling.md): Strapi is natively handling errors with a standard format. - [Administration panel](administration-panel.md): The admin panel is the back office of your Strapi application. From the admin panel, you will be able to manage conte... - [API Tokens](api-tokens.md): API tokens allow users to authenticate REST and GraphQL API queries (see [APIs introduction](/cms/api/content-api)). - [Audit Logs](audit-logs.md): The Audit Logs feature provides a searchable and filterable display of all activities performed by users of the Strap... - [Content History](content-history.md) - [Content History](content-history-2.md): The Content History feature, in the - [Content Manager](content-manager.md) - [Content Manager](content-manager-2.md): From the - [Content-type Builder](content-type-builder.md) - [Content-type Builder](content-type-builder-2.md): From the - [Custom Fields](custom-fields.md) - [Custom Fields](custom-fields-2.md): Custom fields extend Strapi’s capabilities by adding new types of fields to content-types and components. Once create... - [Data Management](data-management.md) - [Data Management](data-management-2.md): The Data Management feature can be used to import, export, or transfer data. Data Management is CLI-based only, but ... - [Draft & Publish](draft-publish.md) - [Draft & Publish](draft-publish-2.md): The Draft & Publish feature allows to manage drafts for your content. - [Email](email.md): The Email feature enables Strapi applications to send emails from a server or an external provider. - [Internationalization](internationalization.md) - [Internationalization (i18n)](internationalization-i18n.md): The Internationalization feature allows to manage content in different languages, called "locales". - [Media Library](media-library.md) - [Media Library](media-library-2.md): The - [Preview](preview.md): With the Preview feature, you can preview your front end application directly from Strapi's admin panel. This is help... - [Role-Based Access Control (RBAC)](role-based-access-control-rbac.md) - [Role-Based Access Control (RBAC)](role-based-access-control-rbac-2.md): The Role-Based Access Control (RBAC) feature allows the management of the administrators, who are the users of the ad... - [Releases](releases.md): The Releases feature enables content managers to organize entries into containers that can perform publish and unpubl... - [Review Workflows](review-workflows.md) - [Review Workflows](review-workflows-2.md): The Review Workflows feature allows you to create and manage workflows for your various content-types. Each workflow ... - [Single Sign-On (SSO)](single-sign-on-sso.md): The Single Sign-On (SSO) feature can be made available on a Strapi application to allow administrators to authenticat... - [Users & Permissions](users-permissions.md) - [Users & Permissions](users-permissions-2.md): The Users & Permissions feature allows the management of the end-users of a Strapi project. It provides a full authe... - [Installation](installation.md): Strapi projects can be installed either locally on a computer or on a remote server. The following installation guide... - [Additional resources for migrating to Strapi 5](additional-resources-for-migrating-to-strapi-5.md) - [Additional resources for upgrading to Strapi 5](additional-resources-for-upgrading-to-strapi-5.md): The following pages cover some dedicated topics for specific use cases when upgrading to Strapi 5. Please ensure you ... - [Breaking changes](breaking-changes.md) - [Strapi v4 to Strapi 5 breaking changes](strapi-v4-to-strapi-5-breaking-changes.md): The present page lists all the breaking changes introduced in Strapi 5. - [Upgrading to Strapi 5 - Introduction and FAQ](upgrading-to-strapi-5-introduction-and-faq.md) - [Upgrading to Strapi 5: Introduction and FAQ](upgrading-to-strapi-5-introduction-and-faq-2.md): The latest major version of Strapi is Strapi 5. Strapi v4 is still supported until April 2026. - [Step-by-step guide to upgrade to Strapi 5](step-by-step-guide-to-upgrade-to-strapi-5.md) - [Step-by-step guide to upgrade to Strapi 5](step-by-step-guide-to-upgrade-to-strapi-5-2.md): The latest major version of Strapi is Strapi 5. - [Admin Panel API](admin-panel-api.md) - [Admin Panel API for plugins](admin-panel-api-for-plugins.md): A Strapi plugin can interact with both the [back end](/cms/plugins-development/server-api) and the front end of a Str... - [Content Manager APIs](content-manager-apis.md) - [Content Manager APIs](content-manager-apis-2.md): Content-Manager APIs are part of the [Admin Panel API](/cms/plugins-development/admin-panel-api). They are a way to a... - [Plugin creation & setup](plugin-creation-setup.md) - [Plugin creation](plugin-creation.md): There are many ways to create a Strapi 5 plugin, but the fastest and recommended way is to use the Plugin SDK. - [Developing plugins](developing-plugins.md) - [Developing Strapi plugins](developing-strapi-plugins.md): Strapi allows the development of plugins that work exactly like the built-in plugins or 3rd-party plugins available f... - [How to create admin permissions from plugins](how-to-create-admin-permissions-from-plugins.md) - [How to create admin permissions from plugins](how-to-create-admin-permissions-from-plugins-2.md): When [developing a Strapi plugin](/cms/plugins-development/developing-plugins), you might want to create admin permis... - [How to create components for Strapi plugins](how-to-create-components-for-strapi-plugins.md) - [How to create components for Strapi plugins](how-to-create-components-for-strapi-plugins-2.md): When [developing a Strapi plugin](/cms/plugins-development/developing-plugins), you might want to create reusable com... - [How to pass data from server to admin panel with a Strapi plugin](how-to-pass-data-from-server-to-admin-panel-with-a-strapi-plugin.md) - [How to pass data from server to admin panel with a Strapi plugin](how-to-pass-data-from-server-to-admin-panel-with-a-strapi-plugin-2.md): Strapi is **headless** . The admin panel is completely separate from the server. - [How to store and access data from a Strapi plugin](how-to-store-and-access-data-from-a-strapi-plugin.md) - [How to store and access data from a Strapi plugin](how-to-store-and-access-data-from-a-strapi-plugin-2.md): The generator CLI is interactive and asks a few questions about the content-type and the attributes it will contain. ... - [Plugin SDK](plugin-sdk.md) - [Plugin SDK reference](plugin-sdk-reference.md): The Plugin SDK is set of commands provided by the package orientated around developing plugins to use them as local ... - [Plugin structure](plugin-structure.md) - [Plugin structure](plugin-structure-2.md): When [creating a plugin with Plugin SDK](/cms/plugins-development/create-a-plugin), Strapi generates the following bo... - [Plugins extension](plugins-extension.md) - [Plugins extension](plugins-extension-2.md): Strapi comes with plugins that can be installed from the [Marketplace](/cms/plugins/installing-plugins-via-marketplac... - [Server API for plugins](server-api-for-plugins.md) - [Server API for plugins](server-api-for-plugins-2.md): A Strapi plugin can interact with both the back end and the [front end](/cms/plugins-development/admin-panel-api) of ... - [Documentation plugin](documentation-plugin.md) - [Documentation plugin](documentation-plugin-2.md): The Documentation plugin automates your API documentation creation. It basically generates a swagger file. It follows... - [GraphQL plugin](graphql-plugin.md): By default Strapi create [REST endpoints](/cms/api/rest#endpoints) for each of your content-types. The GraphQL plugin... - [Document's Type definition](documents-type-definition.md): input DocumentFiltersInput { - [Queries to retrieve one or multiple restaurants.](queries-to-retrieve-one-or-multiple-restaurants.md): type Query { - [Mutations to create, update or delete a restaurant.](mutations-to-create-update-or-delete-a-restaurant.md): type Mutation { - [Installing Plugins via the Marketplace](installing-plugins-via-the-marketplace.md) - [Using the Marketplace](using-the-marketplace.md): Strapi comes with built-in plugins such as [Documentation](/cms/plugins/documentation), [GraphQL](/cms/plugins/graphq... - [Sentry plugin](sentry-plugin.md): This plugin enables you to track errors in your Strapi application using Sentry. - [Project structure](project-structure.md) - [Project structure](project-structure-2.md): The structure of a Strapi project depends on whether the project was created with [TypeScript](/cms/typescript) (whic... - [Quick Start Guide - Strapi Developer Docs](quick-start-guide-strapi-developer-docs.md) - [Quick Start Guide](quick-start-guide.md): Strapi offers a lot of flexibility. Whether you want to go fast and quickly see the final result, or would rather div... - [Templates](templates.md): Templates in Strapi 5 are standalone, pre-made Strapi applications designed for specific use cases. - [Unit and integration testing guide](unit-and-integration-testing-guide.md): The present guide provides a hands-on approach to configuring - [TypeScript](typescript.md): - Add TypeScript support to an existing Strapi project using the provided [conversion](/cms/typescript/adding-support... - [TypeScript development](typescript-development.md) - [TypeScript development with Strapi](typescript-development-with-strapi.md): While developing a [TypeScript](/cms/typescript)-based application with Strapi, you can: - [TypeScript Guides](typescript-guides.md) - [TypeScript guides](typescript-guides-2.md): The following guides will help you on specific aspects of a [Typescript-based](/cms/typescript) Strapi project. - [Upgrade tool](upgrade-tool.md): The upgrade tool assists Strapi users in upgrading their Strapi application dependencies and code to a specific version.