> For the complete documentation index, see [llms.txt](https://docs.fylr.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fylr.io/for-developers.md).

# FOR DEVELOPERS

- [Concepts](https://docs.fylr.io/for-developers/concepts.md)
- [Records and objecttypes](https://docs.fylr.io/for-developers/concepts/records-and-objecttypes.md)
- [Files and assets](https://docs.fylr.io/for-developers/concepts/files-and-assets.md)
- [The datamodel](https://docs.fylr.io/for-developers/concepts/the-datamodel.md)
- [Hierarchies and polyhierarchies](https://docs.fylr.io/for-developers/concepts/hierarchies-and-polyhierarchies.md)
- [Nested and reverse-nested tables](https://docs.fylr.io/for-developers/concepts/nested-and-reverse-nested.md)
- [Pools](https://docs.fylr.io/for-developers/concepts/pools.md)
- [Masks](https://docs.fylr.io/for-developers/concepts/masks.md)
- [Permissions](https://docs.fylr.io/for-developers/concepts/permissions.md)
- [Tags and transitions](https://docs.fylr.io/for-developers/concepts/tags-and-transitions.md)
- [Collections and publishing](https://docs.fylr.io/for-developers/concepts/collections-and-publishing.md)
- [Search and events](https://docs.fylr.io/for-developers/concepts/search-and-events.md)
- [White papers](https://docs.fylr.io/for-developers/concepts/white-papers.md)
- [Execserver slot broker](https://docs.fylr.io/for-developers/concepts/white-papers/execserver-slot-broker.md)
- [Plugin marketplace and secure delivery](https://docs.fylr.io/for-developers/concepts/white-papers/secure-plugin-delivery.md)
- [API](https://docs.fylr.io/for-developers/api.md): This article gives an overview of the fylr API. The API specification is available in OpenAPI format and can be individually generated by your own fylr instance.
- [OAuth2](https://docs.fylr.io/for-developers/api/oauth2.md): fylr uses OAuth2 and OpenID Connect for authentication.
- [Endpoints](https://docs.fylr.io/for-developers/api/endpoints.md)
- [/api/v1/collection](https://docs.fylr.io/for-developers/api/endpoints/collection.md)
- [/list](https://docs.fylr.io/for-developers/api/endpoints/collection/list.md)
- [/objects](https://docs.fylr.io/for-developers/api/endpoints/collection/objects.md)
- [/push](https://docs.fylr.io/for-developers/api/endpoints/collection/push.md)
- [/remove](https://docs.fylr.io/for-developers/api/endpoints/collection/remove.md)
- [/splice](https://docs.fylr.io/for-developers/api/endpoints/collection/splice.md)
- [/api/v1/config](https://docs.fylr.io/for-developers/api/endpoints/config.md)
- [/list](https://docs.fylr.io/for-developers/api/endpoints/config/list.md)
- [/api/v1/db](https://docs.fylr.io/for-developers/api/endpoints/api-db.md)
- [/api/v1/db\_info](https://docs.fylr.io/for-developers/api/endpoints/api-db_info.md)
- [/api/v1/eas](https://docs.fylr.io/for-developers/api/endpoints/eas.md)
- [/download](https://docs.fylr.io/for-developers/api/endpoints/eas/download.md)
- [/iiif](https://docs.fylr.io/for-developers/api/endpoints/eas/iiif.md)
- [/produce](https://docs.fylr.io/for-developers/api/endpoints/eas/produce.md)
- [/put](https://docs.fylr.io/for-developers/api/endpoints/eas/put.md)
- [/rput](https://docs.fylr.io/for-developers/api/endpoints/eas/rput.md)
- [/rput/bulk](https://docs.fylr.io/for-developers/api/endpoints/eas/rput-bulk.md)
- [/zoom](https://docs.fylr.io/for-developers/api/endpoints/eas/zoom.md)
- [/api/v1/event](https://docs.fylr.io/for-developers/api/endpoints/api-event.md)
- [/api/v1/export](https://docs.fylr.io/for-developers/api/endpoints/api-export.md)
- [/api/v1/group](https://docs.fylr.io/for-developers/api/endpoints/api-group.md)
- [/api/v1/hotfolder](https://docs.fylr.io/for-developers/api/endpoints/api-hotfolder.md)
- [/api/v1/l10n](https://docs.fylr.io/for-developers/api/endpoints/api-l10n.md)
- [/api/v1/mask](https://docs.fylr.io/for-developers/api/endpoints/api-mask.md)
- [/api/v1/message](https://docs.fylr.io/for-developers/api/endpoints/api-message.md)
- [/api/v1/oai](https://docs.fylr.io/for-developers/api/endpoints/api-oai.md)
- [/api/v1/objects](https://docs.fylr.io/for-developers/api/endpoints/api-objects.md)
- [/api/v1/objecttype](https://docs.fylr.io/for-developers/api/endpoints/api-objecttype.md)
- [/api/v1/plugin](https://docs.fylr.io/for-developers/api/endpoints/plugin.md)
- [/manage](https://docs.fylr.io/for-developers/api/endpoints/plugin/manage.md)
- [/api/v1/pool](https://docs.fylr.io/for-developers/api/endpoints/api-pool.md)
- [/api/v1/publish](https://docs.fylr.io/for-developers/api/endpoints/api-publish.md)
- [/api/v1/right](https://docs.fylr.io/for-developers/api/endpoints/api-right.md)
- [/api/v1/schema](https://docs.fylr.io/for-developers/api/endpoints/api-schema.md)
- [/api/v1/search](https://docs.fylr.io/for-developers/api/endpoints/api-search.md)
- [/api/v1/settings](https://docs.fylr.io/for-developers/api/endpoints/api-settings.md)
- [/api/v1/suggest](https://docs.fylr.io/for-developers/api/endpoints/api-suggest.md)
- [/api/v1/system](https://docs.fylr.io/for-developers/api/endpoints/system.md)
- [/sendmail](https://docs.fylr.io/for-developers/api/endpoints/system/sendmail.md)
- [/sendmail/test](https://docs.fylr.io/for-developers/api/endpoints/system/sendmail-test.md)
- [/share\_link](https://docs.fylr.io/for-developers/api/endpoints/system/share_link.md)
- [/api/v1/tags](https://docs.fylr.io/for-developers/api/endpoints/api-tags.md)
- [/api/v1/task](https://docs.fylr.io/for-developers/api/endpoints/api-task.md)
- [/api/v1/transitions](https://docs.fylr.io/for-developers/api/endpoints/api-transitions.md)
- [/api/v1/user](https://docs.fylr.io/for-developers/api/endpoints/api-user.md)
- [/api/v1/WebDAV](https://docs.fylr.io/for-developers/api/endpoints/api-webdav.md)
- [/api/v1/xmlmapping](https://docs.fylr.io/for-developers/api/endpoints/api-xmlmapping.md)
- [/api/oauth2](https://docs.fylr.io/for-developers/api/endpoints/api-oauth2.md)
- [/.well-known](https://docs.fylr.io/for-developers/api/endpoints/api-well-known.md)
- [/inspect](https://docs.fylr.io/for-developers/api/endpoints/api-inspect.md): The whitelisted /inspect JSON endpoints — the backend console's machine-readable projection, used by the test suite and by monitoring.
- [Anatomy of a Record](https://docs.fylr.io/for-developers/record-json.md): The anatomy of a record in the /api/v1/db JSON — the system fields every record carries, the difference between \_id / \_system\_object\_id / \_global\_object\_id, and how field values (linked, nested, local
- [Building a Search Request](https://docs.fylr.io/for-developers/search-requests.md): How to build a POST /api/v1/search request — the top-level parameters, the search array element types, bool contexts and boost, and aggregations (facets).
- [Events and Webhooks](https://docs.fylr.io/for-developers/events-and-webhooks.md): Build integrations on fylr — pull the event stream, receive a real-time WebSocket push, get an outbound workflow webhook, or run a synchronous plugin callback. When to use each.
- [Schema](https://docs.fylr.io/for-developers/mask.md)
- [System Data Types](https://docs.fylr.io/for-developers/system-data-types.md)
- [pool](https://docs.fylr.io/for-developers/system-data-types/pool.md)
- [file](https://docs.fylr.io/for-developers/system-data-types/file.md)
- [user](https://docs.fylr.io/for-developers/system-data-types/user.md)
- [group](https://docs.fylr.io/for-developers/system-data-types/group.md)
- [collection](https://docs.fylr.io/for-developers/system-data-types/collection.md)
- [message](https://docs.fylr.io/for-developers/system-data-types/message.md)
- [publish](https://docs.fylr.io/for-developers/system-data-types/publish.md)
- [event](https://docs.fylr.io/for-developers/system-data-types/event.md)
- [User Data Types](https://docs.fylr.io/for-developers/user-data-types.md)
- [text, text\_oneline](https://docs.fylr.io/for-developers/user-data-types/text-text_oneline.md)
- [string](https://docs.fylr.io/for-developers/user-data-types/string.md)
- [text\_l10n, text\_l10n\_oneline](https://docs.fylr.io/for-developers/user-data-types/text_l10n-text_l10n_oneline.md)
- [boolean](https://docs.fylr.io/for-developers/user-data-types/boolean.md)
- [number](https://docs.fylr.io/for-developers/user-data-types/number.md)
- [integer.2](https://docs.fylr.io/for-developers/user-data-types/integer.2.md)
- [double](https://docs.fylr.io/for-developers/user-data-types/double.md)
- [date, datetime](https://docs.fylr.io/for-developers/user-data-types/date-datetime.md)
- [daterange](https://docs.fylr.io/for-developers/user-data-types/daterange.md)
- [geojson](https://docs.fylr.io/for-developers/user-data-types/geojson.md)
- [files](https://docs.fylr.io/for-developers/user-data-types/files.md)
- [in progress](https://docs.fylr.io/for-developers/user-data-types/in-progress.md)
- [Custom Data](https://docs.fylr.io/for-developers/customdata.md)
- [Emails](https://docs.fylr.io/for-developers/emails.md)
- [Export](https://docs.fylr.io/for-developers/export.md)
- [File Worker](https://docs.fylr.io/for-developers/file-worker.md): A technical walk-through of how the fylr file worker turns an uploaded file into a stored original and its rendered versions — the upload entry points, the queue and worker pools, the state machine, r
- [Exec server](https://docs.fylr.io/for-developers/execserver.md)
- [File versions](https://docs.fylr.io/for-developers/fileversions.md)
- [Recipes available via URL](https://docs.fylr.io/for-developers/fileversions/recipes-available-via-url.md)
- [WebDAV](https://docs.fylr.io/for-developers/webdav.md)
- [Plugin](https://docs.fylr.io/for-developers/plugin.md): Plugins extend fylr with custom data types, custom API endpoints, custom frontend snippets and callbacks into fylr's own API calls.
- [manifest.yml](https://docs.fylr.io/for-developers/plugin/manifest.md): The manifest.yml that describes a fylr plugin — its keys, the exec map, and the URL replacements a plugin program receives.
- [Extensions](https://docs.fylr.io/for-developers/plugin/extensions.md): Plugin extensions add custom HTTP API endpoints to fylr, served under the plugin's base URL.
- [Callbacks](https://docs.fylr.io/for-developers/plugin/callbacks.md): Callback reference for fylr plugins — the hooks fylr runs during its own API calls, how a callback program is executed, and how data flows in and out.
- [The callback contract](https://docs.fylr.io/for-developers/plugin/callbacks/contract.md): The unified callback contract — the info map every callback receives, the access tokens to call back into the fylr API, the plugin\_user mechanism, and the error format.
- [db\_pre\_save](https://docs.fylr.io/for-developers/plugin/callbacks/db-pre-save.md): The db\_pre\_save callback — validate or modify objects on every POST /api/v1/db save, before they are written. Steps, filters, the object payload, the response rules, skip\_plugins.
- [transition\_db\_pre\_save](https://docs.fylr.io/for-developers/plugin/callbacks/transition-db-pre-save.md): The transition\_db\_pre\_save callback — a plugin action inside a workflow transition. Registering callbacks, wiring them into a transition, the payload, and error behavior.
- [Collection upload](https://docs.fylr.io/for-developers/plugin/callbacks/collection-upload.md): The collection-upload callback — a plugin participates when files are uploaded into a collection via hotfolder, WebDAV or the API, modifying the created objects and logging per-file results.
- [export](https://docs.fylr.io/for-developers/plugin/callbacks/export.md): The export callback — post-process an export with a plugin. Trigger via produce\_options.plugin, the payload, the write-back rules, plugin-produced files, and events.
- [export\_transport](https://docs.fylr.io/for-developers/plugin/callbacks/export-transport.md): The export\_transport callback — deliver a finished export with a plugin. Transports on the export, the payload with decrypted options, the response, and events.
- [Plugin Conventions and Standards](https://docs.fylr.io/for-developers/plugin/conventions.md): Conventions and standards for building, naming, localizing, and releasing fylr plugins, including README requirements.
- [Packaging and Release](https://docs.fylr.io/for-developers/plugin/release.md): Plugins can be uploaded to fylr using the Plugin Manager in a specific ZIP archive. This page describes how to build the ZIP and how to integrate this into a github release workflow.
- [Collection Pin Code](https://docs.fylr.io/for-developers/collection_pin_code.md)
- [easydb 5](https://docs.fylr.io/for-developers/changes-easydb5-fylr.md)
- [Localization](https://docs.fylr.io/for-developers/localization.md): The fylr frontend can be used in multiple languages. Therefor, in the code are only keys used and the translations are stored in different Google Sheets.
- [Access private Repositories](https://docs.fylr.io/for-developers/access-private-repositories.md): Partners and customers may gain this access for their plugin development and security review. This page shows how to then actually access the repositories.
