Skip to content

Cloud Storage

CloudStorage provides cloud-based key-value storage that syncs across all of the user's devices. Accessed via Telegram.WebApp.CloudStorage.

Limits

ItemLimit
Maximum number of keys1024
Maximum key length128 characters
Maximum value length4096 characters
Key charactersA-Z, a-z, 0-9, _, -

Methods

setItem

javascript
Telegram.WebApp.CloudStorage.setItem(key, value, callback)

Stores a key-value pair in cloud storage.

ParameterTypeRequiredDescription
keyStringYesKey name, 1-128 characters
valueStringYesValue, 0-4096 characters
callbackFunctionNoCallback with (error, success) parameters
javascript
Telegram.WebApp.CloudStorage.setItem('user_settings', JSON.stringify({
  theme: 'dark',
  language: 'en'
}), (error, success) => {
  if (error) {
    console.error('Storage failed:', error);
  } else {
    console.log('Stored successfully');
  }
});

getItem

javascript
Telegram.WebApp.CloudStorage.getItem(key, callback)

Reads the value of a specified key from cloud storage.

ParameterTypeRequiredDescription
keyStringYesKey name
callbackFunctionYesCallback with (error, value) parameters
javascript
Telegram.WebApp.CloudStorage.getItem('user_settings', (error, value) => {
  if (error) {
    console.error('Read failed:', error);
  } else {
    const settings = JSON.parse(value);
    console.log('User settings:', settings);
  }
});

getItems

javascript
Telegram.WebApp.CloudStorage.getItems(keys, callback)

Reads values for multiple keys in batch.

ParameterTypeRequiredDescription
keysArray of StringYesArray of key names
callbackFunctionYesCallback with (error, values) parameters, where values is a key-value object
javascript
Telegram.WebApp.CloudStorage.getItems(['key1', 'key2', 'key3'], (error, values) => {
  if (!error) {
    console.log('key1:', values.key1);
    console.log('key2:', values.key2);
  }
});

removeItem

javascript
Telegram.WebApp.CloudStorage.removeItem(key, callback)

Removes a specified key from cloud storage.

ParameterTypeRequiredDescription
keyStringYesKey name
callbackFunctionNoCallback with (error, success) parameters

removeItems

javascript
Telegram.WebApp.CloudStorage.removeItems(keys, callback)

Removes multiple keys in batch.

ParameterTypeRequiredDescription
keysArray of StringYesArray of key names
callbackFunctionNoCallback with (error, success) parameters

getKeys

javascript
Telegram.WebApp.CloudStorage.getKeys(callback)

Gets all key names in cloud storage.

ParameterTypeRequiredDescription
callbackFunctionYesCallback with (error, keys) parameters, where keys is an array of key names
javascript
Telegram.WebApp.CloudStorage.getKeys((error, keys) => {
  if (!error) {
    console.log('All keys:', keys);
    console.log('Used:', keys.length, '/ 1024');
  }
});

Usage Example

javascript
const storage = Telegram.WebApp.CloudStorage;

// Save user preferences
function savePreferences(prefs) {
  storage.setItem('preferences', JSON.stringify(prefs), (err) => {
    if (err) console.error('Save failed:', err);
  });
}

// Load user preferences
function loadPreferences(callback) {
  storage.getItem('preferences', (err, value) => {
    if (err || !value) {
      callback(null);
    } else {
      callback(JSON.parse(value));
    }
  });
}

// Clear all data
function clearAll() {
  storage.getKeys((err, keys) => {
    if (!err && keys.length > 0) {
      storage.removeItems(keys, (err) => {
        if (!err) console.log('All data cleared');
      });
    }
  });
}