Skip to main content
Question

I am trying to work with Storage API via backend but it's not working

  • September 28, 2025
  • 4 replies
  • 148 views

  • Participating Frequently

So I know 

```

import mondaySdk from "monday-sdk-js";

```

 

mondaySdk has these fuctions

 

async getItem(key: string): Promise<{ data?: { value?: string } }> {

return await this.mondaySdkClient.storage.getItem(key);

}

 

async setItem(key: string, value: string): Promise<any> {

return await this.mondaySdkClient.storage.setItem(key, value);

}

and they work fine in Browser env but I am have app which needs to update the storage from my server env

so for this

```
 

class MondayRestStorage implements StorageBackend {

private mondayToken: string;

 

constructor(token: string) {

this.mondayToken = token;

}

 

async getItem(key: string): Promise<{ data?: { value?: string } }> {

const url = `https://apps-storage.monday.com/app_storage_api/v2/${key}?shareGlobally=false`;

 

const response = await fetch(url, {

method: "GET",

headers: {

Authorization: this.mondayToken,

"Content-Type": "application/json",

"User-Agent": "monday-apps-sdk",

},

});

 

if (!response.ok) {

console.warn(`Storage get failed: ${response.status}`);

return {};

}

 

const result = await response.json();

return {

data: {

value:

typeof result.value === "string"

? result.value

: JSON.stringify(result.value),

},

};

}

 

async setItem(key: string, value: string): Promise<any> {

const url = `https://apps-storage.monday.com/app_storage_api/v2/${key}?shareGlobally=false`;

 

const response = await fetch(url, {

method: "POST",

headers: {

Authorization: this.mondayToken,

"Content-Type": "application/json",

"User-Agent": "monday-apps-sdk",

},

body: JSON.stringify({ value }),

});

 

if (!response.ok) {

console.error("Storage set request failed:", {

status: response.status,

statusText: response.statusText,

url,

body: JSON.stringify({ value }),

});

throw new Error(`Storage set failed: ${response.status}`);

}

 

return response.json();

}

 

async deleteItem(key: string): Promise<any> {

// For deletion, we set an empty value (Monday API doesn't have DELETE)

return this.setItem(key, "");

}

}

```

so her get function works fine 
even set function fine as well if I want to add a new 
“Key” 

but if I want to update a specific Key I get 
Error saving cached timeline data: Error: Storage set failed: 409

please team can you help me with what’s going on and how to fix this
I tried to use PUT request as well but no success

yes my token has all the permissions because get storage works and and also set storage works if i use the new the key

but my use case is to update the specific key values

so let say if I already have storage like = {MASTER:VALUE}
I want to update
{MASTER: NEW_VALUE}

 

4 replies

dvdsmpsn
Forum|alt.badge.img+1
  • Participating Frequently
  • October 1, 2025

On the server side, if you’re using monday code, you need to use…


```

import { Storage } from '@mondaycom/apps-sdk';
...

const storageKey = 'abc.123';
const storage = new Storage(shortLivedToken);
...
// get
const storageData = await storage.get(storageKey, { shared: true });
...
// set
const { version } = await storage.set(storageKey, JSON.stringify(payload), { shared: true });


```

The docs are [here](https://developer.monday.com/apps/docs/get-started#storage-api)


  • Author
  • Participating Frequently
  • October 1, 2025

Yeah that’s the issue I am not using monday code and after so many failed attempt seems like what I want to do is not even possible 

GET Possible

POST possible (if you want to create new key value pair)

PUT/PATCH (update not possible) I get 409 status code with this 

with this urls 

`https://apps-storage.monday.com/app_storage_api/v2/${key}?shareGlobally=false`

 

I posted here so there dev team can help but I don’t think they care about this (or they just want us to switch to monday code) and that will be a lot of work 


OmerK
Forum|alt.badge.img+1
  • monday.com Team Member
  • October 5, 2025

Hey @AnishJ 👋
Thanks for sharing this.

It’s definitely not that we don’t care, quite the opposite! Some of these cases require a deeper technical review, which we can only conduct properly through a support ticket. That way, one of our engineers can take a close look at your specific setup and help resolve the issue as quickly as possible.

Appreciate you taking the time to post here 🙏


  • Author
  • Participating Frequently
  • October 5, 2025

Hey @AnishJ 👋
Thanks for sharing this.

It’s definitely not that we don’t care, quite the opposite! Some of these cases require a deeper technical review, which we can only conduct properly through a support ticket. That way, one of our engineers can take a close look at your specific setup and help resolve the issue as quickly as possible.

Appreciate you taking the time to post here 🙏
​​​​​​

 

I’m sorry, Omer, if that came out the wrong way. But I actually raised the same topic months ago in the Developer Slack channel and never got a response from anyone on the Monday technical team.

Would it be possible to have someone from the API technical team active in the Slack channel? In many other tech product communities, there’s at least one person from the dev team available. Of course, I’m not expecting 24/7 support just someone who can listen and help clarify things.

Because right now, this issue feels really inconsistent. Some parts of the Monday SDK work on the client side but not on the server side. Even in the example apps, the usage of the npm package differs between frontend and backend, which makes things quite confusing, to be honest.