# Strapi Documentation - [Account billing details](https://docs.strapi.io/cloud/account/account-billing): Billing details and invoices are managed on the Profile page, where payment methods are updated and invoice history is available. - [Profile settings](https://docs.strapi.io/cloud/account/account-settings): Settings of the Profile page include account details, connected accounts, and account deletion options. - [Database](https://docs.strapi.io/cloud/advanced/database): Default PostgreSQL can be swapped for any supported SQL database by aligning configuration and environment variables. - [Email Provider](https://docs.strapi.io/cloud/advanced/email): Third‑party email services integrate through plugins and environment variables to replace the default sender. - [Upload Provider](https://docs.strapi.io/cloud/advanced/upload): External storage like S3 or Cloudinary requires plugin setup, security middleware, and Cloud variables. - [Command Line Interface (CLI)](https://docs.strapi.io/cloud/cli/cloud-cli): CLI commands handle login, project deploy, linking, listing, and logout without needing a remote repository. - [Caching & Performance](https://docs.strapi.io/cloud/getting-started/caching): Edge caching via Cache-Control headers reduces latency and server load for heavy static content. - [Strapi Cloud fundamentals](https://docs.strapi.io/cloud/getting-started/cloud-fundamentals): Before going any further into this Strapi Cloud documentation, we recommend you to acknowledge the main concepts below. They will help you to understa... - [Strapi Cloud - Dashboard deployment](https://docs.strapi.io/cloud/getting-started/deployment): Learn how to deploy your Strapi application on Strapi Cloud. - [Strapi Cloud - CLI deployment](https://docs.strapi.io/cloud/getting-started/deployment-cli): Learn how to deploy your Strapi application via the CLI. - [Project deployment](https://docs.strapi.io/cloud/getting-started/deployment-options): Learn how to deploy your Strapi application on Strapi Cloud, via the Cloud dashboard or the CLI. - [Welcome to the Strapi Cloud Documentation!](https://docs.strapi.io/cloud/getting-started/intro): The Strapi Cloud documentation contains all technical documentation related to the setup, deployment, update and customization of your Strapi Cloud account and applications. - [Information on billing & usage](https://docs.strapi.io/cloud/getting-started/usage-billing): This page contains general information related to the usage and billing of your Strapi Cloud account and projects. - [Collaboration](https://docs.strapi.io/cloud/projects/collaboration): Project owners invite maintainers through the Share button, manage pending invitations, and revoke access. - [Deployments management](https://docs.strapi.io/cloud/projects/deploys): Deployment triggers can be manual or automatic on git pushes, with the ability to cancel active builds from dashboard or CLI. - [Deployment history & logs](https://docs.strapi.io/cloud/projects/deploys-history): Deployments tab lists every build with status and allows deep inspection of build and runtime logs. - [Notifications](https://docs.strapi.io/cloud/projects/notifications): Bell icon opens a feed of recent deployment events, automatically purged after 30 days. - [Projects overview](https://docs.strapi.io/cloud/projects/overview): Projects page lists all apps with status and quick actions; selecting one opens a dashboard with metrics and controls. - [Runtime logs](https://docs.strapi.io/cloud/projects/runtime-logs): Runtime logs tab streams live server output, though Free plan logs reset when apps scale to zero. - [Project settings](https://docs.strapi.io/cloud/projects/settings): Settings area spans project-level controls (general, billing, plans, invoices) and per-environment configuration. - [Admin panel customization](https://docs.strapi.io/cms/admin-panel-customization): The admin panel can be tailored to match your branding, by editing src/admin/app and using an extensions folder to swap logos, favicon, locales, translations, themes, bundlers, or editors. - [Admin panel bundlers](https://docs.strapi.io/cms/admin-panel-customization/bundlers): Supported JavaScript bundlers influence builds and development flow. - [Admin panel extension](https://docs.strapi.io/cms/admin-panel-customization/extension): Learn more about extending Strapi's admin panel. - [Favicon](https://docs.strapi.io/cms/admin-panel-customization/favicon): Replace the favicon displayed in Strapi's admin panel. - [Homepage customization](https://docs.strapi.io/cms/admin-panel-customization/homepage): The admin panel homepage displays default content and profile widgets and supports custom additions through the app.widgets.register API. - [Locales & translations](https://docs.strapi.io/cms/admin-panel-customization/locales-translations): Configure the admin panel languages by updating the config.locales array and override default or plugin strings with config.translations or custom translation files. - [Logos](https://docs.strapi.io/cms/admin-panel-customization/logos): Customize the logos displayed in Strapi's admin panel. - [Theme extension](https://docs.strapi.io/cms/admin-panel-customization/theme-extension): Extend Strapi's admin panel theme. - [Customizing the rich text editor](https://docs.strapi.io/cms/admin-panel-customization/wysiwyg-editor): Learn more about the various strategies available to customize the WYSIWYG editor in Strapi's admin panel. - [Strapi Client](https://docs.strapi.io/cms/api/client): The Strapi Client library simplifies interactions with your Strapi back end, providing a way to fetch, create, update, and delete content. - [Content API](https://docs.strapi.io/cms/api/content-api): Learn more about Strapi 5's Content API - [Documents](https://docs.strapi.io/cms/api/document): Learn what a Document is in Strapi v5 - [Document Service API](https://docs.strapi.io/cms/api/document-service): The Document Service API is the recommended way to interact with your content from the back-end server or from plugins. - [Using fields with the Document Service API](https://docs.strapi.io/cms/api/document-service/fields): Use Strapi's Document Service API to select the fields to return with your queries. - [Using filters with the Document Service API](https://docs.strapi.io/cms/api/document-service/filters): This document provides information about the filters available in the Document Service API. - [Using the locale parameter with the Document Service API](https://docs.strapi.io/cms/api/document-service/locale): Use Strapi's Document Service API to work with locale versions with your queries. - [Extending the Document Service behavior](https://docs.strapi.io/cms/api/document-service/middlewares): This document provides information about the middlewares in the Document Service API. - [Using Populate with the Document Service API](https://docs.strapi.io/cms/api/document-service/populate): Use Strapi's Document Service API to populate or select some fields. - [Using Sort & Pagination with the Document Service API](https://docs.strapi.io/cms/api/document-service/sort-pagination): Use Strapi's Document Service API to sort and paginate query results - [Using Draft & Publish with the Document Service API](https://docs.strapi.io/cms/api/document-service/status): Use Strapi's Document Service API to return either the draft or the published version of a document - [GraphQL API](https://docs.strapi.io/cms/api/graphql): import DeepFilteringBlogLink from '/docs/snippets/deep-filtering-blog.md' - [OpenAPI specification](https://docs.strapi.io/cms/api/openapi): Learn how to generate OpenAPI specifications for your Strapi applications using the @strapi/openapi package - [REST API reference](https://docs.strapi.io/cms/api/rest): Interact with your Content-Types using the REST API endpoints Strapi generates for you. - [Filters](https://docs.strapi.io/cms/api/rest/filters): Use Strapi's REST API to filter the results of your requests. - [REST API Guides](https://docs.strapi.io/cms/api/rest/guides/intro): Deep dive into some specific REST API topics using guides that extensively explain some use cases or give step-by-step instructions. - [Interactive Query Builder](https://docs.strapi.io/cms/api/rest/interactive-query-builder): Use an interactive tool that leverages the querystring library to build your query URL - [Locale](https://docs.strapi.io/cms/api/rest/locale): Browse the REST API reference for the locale parameter to take advantage of the Internationalization feature through REST. - [Parameters](https://docs.strapi.io/cms/api/rest/parameters): Use API parameters to refine your Strapi REST API queries. - [Populate and Select](https://docs.strapi.io/cms/api/rest/populate-select): Use Strapi's REST API to populate or select certain fields. - [Relations](https://docs.strapi.io/cms/api/rest/relations): Use the REST API to manage the order of relations - [Sort and Pagination](https://docs.strapi.io/cms/api/rest/sort-pagination): Use Strapi's REST API to sort or paginate your data. - [Status](https://docs.strapi.io/cms/api/rest/status): Use Strapi's REST API to work with draft or published versions of your documents. - [Upload files](https://docs.strapi.io/cms/api/rest/upload): Learn how to use the /api/upload endpoints to upload files to Strapi with the REST API. - [Back-end customization](https://docs.strapi.io/cms/backend-customization): Strapi’s back end is a Koa-based server where requests pass through global middlewares, routes, controllers, services, and models before the Document Service returns responses. - [Controllers](https://docs.strapi.io/cms/backend-customization/controllers): Controllers bundle actions that handle business logic for each route within Strapi’s MVC pattern. This documentation demonstrates generating controllers, extending core ones with createCoreController, and delegating heavy logic to services. - [Middlewares](https://docs.strapi.io/cms/backend-customization/middlewares): Middlewares alter the request or response flow at application or API levels. This documentation distinguishes global versus route middlewares and illustrates custom implementations with generation patterns. - [Models](https://docs.strapi.io/cms/backend-customization/models): Models define Strapi’s content structure via content-types and reusable components. This documentation walks through creating these models in the Content-type Builder or CLI and managing schema files with optional lifecycle hooks. - [Policies](https://docs.strapi.io/cms/backend-customization/policies): Policies execute before controllers to enforce authorization or other checks on routes. Instructions in this documentation cover generating global or scoped policies and wiring them into router configs. - [Requests and Responses](https://docs.strapi.io/cms/backend-customization/requests-responses): Koa’s context (ctx) carries request info, state, and response data through every Strapi endpoint. This documentation details ctx.request, ctx.state, and ctx.response, plus a helper for accessing context anywhere. - [Routes](https://docs.strapi.io/cms/backend-customization/routes): Routes map incoming URLs to controllers and ship pre-generated for each content type. This documentation shows how to add or customize core and custom routers and attach policies or middlewares for extra control. - [Services](https://docs.strapi.io/cms/backend-customization/services): Services store reusable functions to keep controllers concise and follow DRY principles. This documentation explains generating or extending services with createCoreService and organizing them for APIs or plugins. - [Webhooks](https://docs.strapi.io/cms/backend-customization/webhooks): Webhooks let Strapi notify external systems when content changes, while omitting the Users type for privacy. Configuration in config/server sets default headers and endpoints to trigger third-party processing. - [Command Line Interface](https://docs.strapi.io/cms/cli): Strapi comes with a full featured Command Line Interface (CLI) which lets you scaffold and manage your project in seconds. - [Configurations](https://docs.strapi.io/cms/configurations): Learn how you can manage and customize the configuration of your Strapi application. - [API calls configuration](https://docs.strapi.io/cms/configurations/api): /config/api centralizes response privacy and REST defaults such as prefix, pagination limits, and max request size. - [CRON jobs](https://docs.strapi.io/cms/configurations/cron): Cron jobs schedule custom functions at specific times via node-schedule, activated through server config and optional task files. - [Database configuration](https://docs.strapi.io/cms/configurations/database): /config/database defines connections, clients, and pooling for supported databases like SQLite, MySQL, and PostgreSQL. - [Environment variables configuration](https://docs.strapi.io/cms/configurations/environment): Strapi-specific environment variables and .env usage enable per-environment configs, with env() helpers for casting values. - [Features configuration](https://docs.strapi.io/cms/configurations/features): Future flags in /config/features toggle experimental Strapi features, allowing early testing at your own risk. - [Lifecycle functions](https://docs.strapi.io/cms/configurations/functions): src/index hosts global register, bootstrap, and destroy functions to run logic during application lifecycle. - [Middlewares configuration](https://docs.strapi.io/cms/configurations/middlewares): /config/middlewares orders global middleware, enables custom names or resolves, and exposes built-in configuration options. - [Plugins configuration](https://docs.strapi.io/cms/configurations/plugins): /config/plugins enables or disables plugins and overrides their settings, with examples for local plugin development. - [Server configuration](https://docs.strapi.io/cms/configurations/server): /config/server manages host, port, URL, proxy, cron, and more; changes require rebuilding the admin panel. - [TypeScript configuration](https://docs.strapi.io/cms/configurations/typescript): TypeScript configuration explains the project’s tsconfig files, output directories, and an optional config/typescript.js|ts that auto-generates types on server restart. This documentation explains which folders store compiled code and how to toggle this experimental feature. - [Customization](https://docs.strapi.io/cms/customization): Learn more about Strapi 5 customization possibilities - [Database migrations](https://docs.strapi.io/cms/database-migrations): Database migrations run one‑time scripts before schema sync to preserve data during upgrades. The experimental API uses alphabetical up() files and warns about missing down migrations and potential table deletions. - [Database transactions](https://docs.strapi.io/cms/database-transactions): Database transactions group several operations so they succeed or roll back as a unit. The experimental strapi.db.transaction helper exposes trx, commit, and rollback utilities for wrapped service calls. - [Deployment](https://docs.strapi.io/cms/deployment): Deployment options cover hardware/software prerequisites, environment variable setup, and building the admin panel before launch. In the documentation: links to provider‑specific and advanced guides to help pick the right hosting strategy. - [Error handling](https://docs.strapi.io/cms/error-handling): Strapi’s APIs return errors in a consistent structure and let backend code throw custom exceptions for controllers, services, policies, or lifecycles. This documentation lists error classes, context helpers, and examples for crafting meaningful responses. - [Admin panel](https://docs.strapi.io/cms/features/admin-panel): The admin panel acts as Strapi’s back office for managing content types, entries, and both administrator and end‑user accounts. This documentation gives an overview of the admin panel before focusing on profile settings that manage interface language and mode, login and personal information, and logo for branding. - [API Tokens](https://docs.strapi.io/cms/features/api-tokens): API tokens provide scoped authentication for REST and GraphQL requests without exposing user credentials. This documentation explains token types, creation, expiration, and secure usage within the admin panel. - [Audit Logs](https://docs.strapi.io/cms/features/audit-logs): Audit Logs captures every administrative action in a searchable, filterable history to aid troubleshooting and compliance. In this documentation, examples show viewing payloads and filtering by user or date. - [Content History](https://docs.strapi.io/cms/features/content-history): Content History stores previous document versions so editors can compare and restore earlier states from the Content Manager. This documentation explains how to browse and restore workflows for quick rollback of mistakes. - [Content Manager](https://docs.strapi.io/cms/features/content-manager): The Content Manager is Strapi’s interface for browsing and editing entries. This documentation gives an overview of the Content Manager and explains the views and how to write content in fields, components, dynamic zones and relational fields. - [Content-type Builder](https://docs.strapi.io/cms/features/content-type-builder): The Content-type Builder is a tool for designing content types and components. This documentation gives an overview of the Content-type Builder and covers field options, relations, component usage, and shares data modeling tips. - [Custom Fields](https://docs.strapi.io/cms/features/custom-fields): Custom Fields extend Strapi with new field types that behave like native fields in the Content‑type Builder and Content Manager. Instructions in this documentation cover building or installing fields via plugins and registering them programmatically. - [Data Management](https://docs.strapi.io/cms/features/data-management): Data Management handles CLI-based import, export, and transfer of content between Strapi instances with partial configuration in the admin panel. Step-by-step commands and prerequisite settings explained in this documentation ensure safe migrations. - [Draft & Publish](https://docs.strapi.io/cms/features/draft-and-publish): Draft & Publish separates drafts from live entries, allowing editors to stage content before release. This documentation shows how to enable it per content type and manage publish or unpublish actions. - [Email](https://docs.strapi.io/cms/features/email): The Email feature sends transactional messages through local SMTP or external providers like SendGrid. Setup guidance in this documentation covers provider configuration and extending delivery via controllers or hooks. - [Internationalization](https://docs.strapi.io/cms/features/internationalization): Internationalization manages content in multiple locales directly from the admin panel. This documentation explains how to add locales, translate entries, and control locale-specific permissions. - [Media Library](https://docs.strapi.io/cms/features/media-library): Media Library centralizes all uploaded assets with search, filters, and folder organization. This documentation includes provider options, upload workflows, and explanations on inserting media into content. - [Preview](https://docs.strapi.io/cms/features/preview): Preview connects the Content Manager to the front end so editors can see changes before publishing. In this documentation: configuration steps to set preview URLs. - [Role-Based Access Control (RBAC)](https://docs.strapi.io/cms/features/rbac): Role-Based Access Control (RBAC) manages administrator roles and granular permissions in the admin panel. This documentation covers creating roles, assigning rights, and securing administrative workflows. - [Releases](https://docs.strapi.io/cms/features/releases): Releases group entries into publishable batches to trigger simultaneous publish or unpublish actions across content types and locales. Instructions in this documentation detail creating releases, adding entries, and understanding plan limitations. - [Review Workflows](https://docs.strapi.io/cms/features/review-workflows): Review Workflows define custom multi-stage pipelines for content review, facilitating collaboration from draft to publication. This documentation walks through creating workflows and assigning stages. - [Single Sign-On (SSO)](https://docs.strapi.io/cms/features/sso): Single Sign-On (SSO) lets administrators authenticate via identity providers such as Azure AD instead of local passwords. Configuration steps in this documentation cover enabling SSO and mapping roles. - [Users & Permissions](https://docs.strapi.io/cms/features/users-permissions): Users & Permissions manages end-user accounts, JWT-based authentication, and role-based access to APIs. This documentation explains how to create roles, configure permissions, and issue API tokens for secure access control. - [Installation](https://docs.strapi.io/cms/installation): Learn many different options to install Strapi and getting started on using it. - [Additional resources for migrating to Strapi 5](https://docs.strapi.io/cms/migration/v4-to-v5/additional-resources/introduction): The following pages cover some dedicated topics for specific use cases when upgrading to Strapi 5. Please ensure you have read the [introduction to up... - [Breaking changes](https://docs.strapi.io/cms/migration/v4-to-v5/breaking-changes): View the list of all breaking changes introduced between Strapi v4 and v5. - [Upgrading to Strapi 5 - Introduction and FAQ](https://docs.strapi.io/cms/migration/v4-to-v5/introduction-and-faq): Learn more about how to upgrade to Strapi 5 - [Step-by-step guide to upgrade to Strapi 5](https://docs.strapi.io/cms/migration/v4-to-v5/step-by-step): Follow this step-by-step guide to upgrade from Strapi v4 to Strapi 5 - [Admin Panel API](https://docs.strapi.io/cms/plugins-development/admin-panel-api): The Admin Panel API exposes register, bootstrap, and registerTrads hooks to inject React components and translations into Strapi’s UI. Menu, settings, injection zone, reducer, and hook APIs let plugins add navigation, configuration panels, or custom actions. - [Content Manager APIs](https://docs.strapi.io/cms/plugins-development/content-manager-apis): Content Manager APIs add panels and actions to list or edit views through addEditViewSidePanel, addDocumentAction, addDocumentHeaderAction, or addBulkAction. Each API accepts component functions with typed contexts, enabling precise control over document-aware UI injections. - [Plugin creation & setup](https://docs.strapi.io/cms/plugins-development/create-a-plugin): The Plugin SDK generates plugins without a Strapi project and links them to an existing app with watch:link and yalc. In this documentation: build and verify commands to bundle the plugin for npm or marketplace publishing, and information for monorepos and local setups. - [Developing plugins](https://docs.strapi.io/cms/plugins-development/developing-plugins): Generation introduction about Strapi plugins development - [How to create components for Strapi plugins](https://docs.strapi.io/cms/plugins-development/guides/create-components-for-plugins): Learn how to create and configure components for your Strapi plugins - [How to pass data from server to admin panel with a Strapi plugin](https://docs.strapi.io/cms/plugins-development/guides/pass-data-from-server-to-admin): Learn how to pass data from server to admin panel with a Strapi plugin - [How to store and access data from a Strapi plugin](https://docs.strapi.io/cms/plugins-development/guides/store-and-access-data): Learn how to store and access data from a Strapi plugin - [Plugin SDK](https://docs.strapi.io/cms/plugins-development/plugin-sdk): Reference documentation for Strapi's Plugin SDK commands - [Plugin structure](https://docs.strapi.io/cms/plugins-development/plugin-structure): Learn more about the structure of a Strapi plugin - [Plugins extension](https://docs.strapi.io/cms/plugins-development/plugins-extension): Existing plugins can be overriden by placing code in /src/extensions or using global register/bootstrap hooks. Instructions in this documentation cover reshaping plugin content-type schemas or server logic — altough upstream updates may break extensions. - [Server API for plugins](https://docs.strapi.io/cms/plugins-development/server-api): Strapi's Server API for plugins allows a Strapi plugin to customize the back end part (i.e. the server) of your application. - [Documentation plugin](https://docs.strapi.io/cms/plugins/documentation): The Documentation plugin auto-generates OpenAPI/Swagger docs for your API by scanning content types and routes. This documentation walks you through installation, customizing settings, and restricting access to the docs. - [GraphQL plugin](https://docs.strapi.io/cms/plugins/graphql): The GraphQL plugin adds a GraphQL endpoint and Apollo-based sandbox for crafting queries and mutations. Options in config/plugins let you tune depth, item limits, and other Apollo Server settings which are explained in this documentation. - [Installing Plugins via the Marketplace](https://docs.strapi.io/cms/plugins/installing-plugins-via-marketplace): The in-app Marketplace lists plugins and providers with badges, search, and “More” links to detailed Strapi Market pages. This documentation outlines browsing cards and following provider-specific instructions to install new integrations. - [Sentry plugin](https://docs.strapi.io/cms/plugins/sentry): The Sentry plugin connects Strapi to Sentry to report errors and attach debugging metadata. This documentation details installation, environment-based configuration, and ways to disable or skip sending events outside production. - [Project structure](https://docs.strapi.io/cms/project-structure): Discover the project structure of any default Strapi application. - [Quick Start Guide - Strapi Developer Docs](https://docs.strapi.io/cms/quick-start): Get ready to get Strapi, your favorite open-source headless cms up and running in less than 3 minutes. - [Templates](https://docs.strapi.io/cms/templates): Templates are full Strapi apps that bootstrap new projects via CLI flags such as --template, --template-path, and --template-branch. Instructions in this documentation cover referencing templates from GitHub and turning any Strapi project into a reusable template. - [Testing](https://docs.strapi.io/cms/testing): Testing relies on Jest and Supertest with an in-memory SQLite database, a patched Strapi test harness that also supports TypeScript configuration files, and helpers that automatically register the /hello route and authenticated role during setup. - [TypeScript](https://docs.strapi.io/cms/typescript): Get started with TypeScript for your Strapi application - [TypeScript development](https://docs.strapi.io/cms/typescript/development): TypeScript development showcases Strapi typings for autocompletion, schema type generation with ts:generate-types, and programmatic server starts via strapi() or strapi.compile(). This documentation addresses plugin builds and managing generated type definitions. - [TypeScript Guides](https://docs.strapi.io/cms/typescript/guides): Learn how you can leverage TypeScript while developing your Strapi project. - [Upgrade tool](https://docs.strapi.io/cms/upgrade-tool): The Strapi upgrade tool is a CLI command that helps automatically upgrading to a new Strapi version.