Attention
TYPO3 v12 has reached end-of-life as of April 30th 2026 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.
Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v12 here: TYPO3 ELTS.
API A-Z
The TYPO3 APIs are first and foremost documented inside of the source scripts. It would be impossible to maintain documentation at more than one location given the fact that things change and sometimes fast. This chapter describes the most important elements of the API.
Note
The source is the documentation! (General wisdom)
Contents:
- Assets
- Authentication
- Autoloading
-
Backend APIs
- Access control
- Backend modules API
- JavaScript
- Ajax
- Backend layout
- Backend routing
- Backend user object
- Broadcast channels
- Button components
- Clipboard
- Context menus
- Custom Permissions
- LoginProvider
- UriBuilder
- Bitsets & Enumerations
- Caching
- System categories
- Commands
- Content Elements & Plugins
- Content Security Policy
- Context API and aspects
- Country API
- Cropping images
- Database
- Database records
- DataHandler
- Debugging
- Dependency injection
- Deprecation Handling
- Environment
- Error and exception handling
-
Events and hooks
- Extending the TYPO3 Core
- Event dispatcher (PSR-14 events)
-
Event list
-
Backend
- AfterBackendPageRenderEvent
- AfterFormEnginePageInitializedEvent
- AfterHistoryRollbackFinishedEvent
- AfterPageColumnsSelectedForLocalizationEvent
- AfterPagePreviewUriGeneratedEvent
- AfterPageTreeItemsPreparedEvent
- AfterRecordSummaryForLocalizationEvent
- BeforeFormEnginePageInitializedEvent
- BeforeHistoryRollbackStartEvent
- BeforeModuleCreationEvent
- BeforePagePreviewUriGeneratedEvent
- BeforeSearchInDatabaseRecordProviderEvent
- CustomFileControlsEvent
- IsContentUsedOnPageLayoutEvent
- IsFileSelectableEvent
- ModifyAllowedItemsEvent
- ModifyButtonBarEvent
- ModifyClearCacheActionsEvent
- ModifyDatabaseQueryForContentEvent
- ModifyDatabaseQueryForRecordListingEvent
- ModifyEditFormUserAccessEvent
- ModifyFileReferenceControlsEvent
- ModifyFileReferenceEnabledControlsEvent
- ModifyGenericBackendMessagesEvent
- ModifyImageManipulationPreviewUrlEvent
- ModifyInlineElementControlsEvent
- ModifyInlineElementEnabledControlsEvent
- ModifyLinkExplanationEvent
- ModifyLinkHandlersEvent
- ModifyNewContentElementWizardItemsEvent
- ModifyPageLayoutContentEvent
- ModifyPageLayoutOnLoginProviderSelectionEvent
- ModifyQueryForLiveSearchEvent
- ModifyRecordListHeaderColumnsEvent
- ModifyRecordListRecordActionsEvent
- ModifyRecordListTableActionsEvent
- ModifyResultItemInLiveSearchEvent
- PageContentPreviewRenderingEvent
- RenderAdditionalContentToRecordListEvent
- SwitchUserEvent
- SystemInformationToolbarCollectorEvent
-
Core
- Authentication
- Cache
-
Configuration
- AfterFlexFormDataStructureIdentifierInitializedEvent
- AfterFlexFormDataStructureParsedEvent
- AfterTcaCompilationEvent
- BeforeFlexFormDataStructureIdentifierInitializedEvent
- BeforeFlexFormDataStructureParsedEvent
- ModifyLoadedPageTsConfigEvent
- SiteConfigurationBeforeWriteEvent
- SiteConfigurationLoadedEvent
- Core
- Database
- DataHandling
- Domain
- Html
- Package
- Page
- Password policy
-
Resource
- AfterDefaultUploadFolderWasResolvedEvent
- AfterFileAddedEvent
- AfterFileAddedToIndexEvent
- AfterFileCommandProcessedEvent
- AfterFileContentsSetEvent
- AfterFileCopiedEvent
- AfterFileCreatedEvent
- AfterFileDeletedEvent
- AfterFileMarkedAsMissingEvent
- AfterFileMetaDataCreatedEvent
- AfterFileMetaDataDeletedEvent
- AfterFileMetaDataUpdatedEvent
- AfterFileMovedEvent
- AfterFileProcessingEvent
- AfterFileRemovedFromIndexEvent
- AfterFileRenamedEvent
- AfterFileReplacedEvent
- AfterFileUpdatedInIndexEvent
- AfterFolderAddedEvent
- AfterFolderCopiedEvent
- AfterFolderDeletedEvent
- AfterFolderMovedEvent
- AfterFolderRenamedEvent
- AfterResourceStorageInitializationEvent
- AfterVideoPreviewFetchedEvent
- BeforeFileAddedEvent
- BeforeFileContentsSetEvent
- BeforeFileCopiedEvent
- BeforeFileCreatedEvent
- BeforeFileDeletedEvent
- BeforeFileMovedEvent
- BeforeFileProcessingEvent
- BeforeFileRenamedEvent
- BeforeFileReplacedEvent
- BeforeFolderAddedEvent
- BeforeFolderCopiedEvent
- BeforeFolderDeletedEvent
- BeforeFolderMovedEvent
- BeforeFolderRenamedEvent
- BeforeResourceStorageInitializationEvent
- EnrichFileMetaDataEvent
- GeneratePublicUrlForResourceEvent
- ModifyFileDumpEvent
- ModifyIconForResourcePropertiesEvent
- SanitizeFileNameEvent
- Security
- Tree
- TypoScript
- Extbase
- ExtensionManager
- Filelist
-
Frontend
- AfterCacheableContentIsGeneratedEvent
- AfterCachedPageIsPersistedEvent
- AfterLinkIsGeneratedEvent
- AfterPageAndLanguageIsResolvedEvent
- AfterPageWithRootLineIsResolvedEvent
- BeforePageIsResolvedEvent
- FilterMenuItemsEvent
- ModifyCacheLifetimeForPageEvent
- ModifyHrefLangTagsEvent
- ModifyPageLinkConfigurationEvent
- ModifyResolvedFrontendGroupsEvent
- ShouldUseCachedPageDataIfAvailableEvent
- FrontendLogin
- Impexp
- Info
- Install
- Linkvalidator
- Lowlevel
- Redirects
- Seo
- Setup
- Workspaces
-
Backend
- Hooks
- JavaScript Event API
- File abstraction
- Feature toggle API
- Custom file processors
- Flash messages
- FlexForms
- Fluid
- FormEngine
- Form protection tool
- Global values
- Icon API
- Link handling
- Localization
- Locking API
- Logging
- Mail API
- Message bus
- Mount points
- Namespaces
- Page types
- Pagination
- Parsing HTML
- Password hashing
- Password policies
- Requests
- Routing
- RTE
- SEO
- Services
- Sessions
- Site handling
- Soft references
- Symfony expression language
- System Overview
- System registry
- TSFE
- TYPO3 information
- Webhooks and reactions
- Versioning and Workspaces
- XCLASSes