Storage API

The monday apps infrastructure includes a persistent, key-value database storage that developers can leverage to store data without having to create their own backend and maintain their own database. You can use the software development kit (SDK) method to interact with it.

The database currently offers instance-level storage only, meaning that each application instance (i.e. a single board view or a dashboard widget) maintains its own storage. Apps cannot share storage across accounts or even across apps installed in the same location.

When interacting with the database, it is important to take note of the following limits:

  • Key length limit: 256
  • Storage limit per key: 6MB


MethodDescription a stored value from the database under key. a stored value from the database under key., value)Stores value under key in the database.


All methods return a Promise which will be resolved to the Storage API's response.


You may face cases where multiple users will be working on the same app instance and writing to the same key in an unsynchronized fashion. If you're storing a compound data structure (like JSON) in that key, such operations may overwrite each other.

The getItem() and setItem() each return a version identifier which can be used to identify which value is currently stored in a key. Whenever a write that changes the value occurs, the version identifier in the database changes. This allows you to identify whether a value was already changed from another location and prevent that from being overwritten.


Versioning'serialKey').then(res => {
  const { value, version } =;
  sleep(10000); // someone may overwrite serialKey during this time'serialKey', { previous_version: version }).then(res => {
// => '{ "success": false, "reason": "version_conflict" }'

Get a value in the database'mykey').then(res => {
// => 'Lorem Ipsum'

Set a new value in the database'mykey', 'Lorem Ipsum').then(res => {
// => { "success": true }

Delete an item in the database'mykey').then(res => {
// => { "success": true, "value": null }