Skip to content

Datastores (v1)

OpenCloud v1 reference for Datastores.

Base URL: https://apis.roblox.com/datastores

MethodPathName
GET/v1/universes/:universeId/standard-datastoresgetUniversesUniverseIdDatastores (deprecated)
GET/v1/universes/:universeId/standard-datastores/datastore/entriesgetUniversesUniverseIdDatastoresDatastoreEntries (deprecated)
GET/v1/universes/:universeId/standard-datastores/datastore/entries/entrygetUniversesUniverseIdDatastoresDatastoreEntriesEntry (deprecated)
POST/v1/universes/:universeId/standard-datastores/datastore/entries/entrypostUniversesUniverseIdDatastoresDatastoreEntriesEntry (deprecated)
DELETE/v1/universes/:universeId/standard-datastores/datastore/entries/entrydeleteUniversesUniverseIdDatastoresDatastoreEntriesEntry (deprecated)
POST/v1/universes/:universeId/standard-datastores/datastore/entries/entry/incrementpostUniversesUniverseIdDatastoresDatastoreEntriesEntryIncrement (deprecated)
GET/v1/universes/:universeId/standard-datastores/datastore/entries/entry/versionsgetUniversesUniverseIdDatastoresDatastoreEntriesEntryVersions (deprecated)
GET/v1/universes/:universeId/standard-datastores/datastore/entries/entry/versions/versiongetUniversesUniverseIdDatastoresDatastoreEntriesEntryVersionsVersion (deprecated)

getUniversesUniverseIdDatastores deprecated

Section titled “getUniversesUniverseIdDatastores deprecated”

GET /v1/universes/:universeId/standard-datastores

Returns a list of an experience’s data stores.

See: GET https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores

Scopes: universe-datastores.control:list

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseIdDatastores } from 'rozod/lib/opencloud/v1/datastores';
const data = await fetchApi(getUniversesUniverseIdDatastores, {
universeId: /* integer */,
cursor: /* string \| null? */,
limit: /* integer? = 1 */,
prefix: /* string \| null? */
});
NameTypeRequiredDescription
universeIdintegerYesThe identifier of the experience with data stores that you want to access. You can find your experience’s universe ID on Creator Hub.
cursorstring | null?NoProvide to request the next set of data.
limitinteger? = 1NoThe maximum number of items to return. Each call only reads one partition, so it can return fewer than the given value when running out of objectives on one partition.
prefixstring | null?NoProvide to return only data stores with this prefix.

Type: object


getUniversesUniverseIdDatastoresDatastoreEntries deprecated

Section titled “getUniversesUniverseIdDatastoresDatastoreEntries deprecated”

GET /v1/universes/:universeId/standard-datastores/datastore/entries

Returns a list of entry keys within a data store. Entries marked deleted with a tombstone version are still included in the response if they have yet to be permanently deleted.

See: GET https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/entries See: GET https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/scopes/{scope_id}/entries

Scopes: universe-datastores.objects:list

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseIdDatastoresDatastoreEntries } from 'rozod/lib/opencloud/v1/datastores';
const data = await fetchApi(getUniversesUniverseIdDatastoresDatastoreEntries, {
universeId: /* integer */,
datastoreName: /* string \| null? */,
scope: /* string \| null? */,
allScopes: /* boolean? */,
prefix: /* string \| null? */,
cursor: /* string \| null? */,
limit: /* integer? = 16 */
});
NameTypeRequiredDescription
universeIdintegerYesThe identifier of the experience with data stores that you want to access. You can find your experience’s universe ID on Creator Hub.
datastoreNamestring | null?NoThe name of the data store.
scopestring | null?NoThe value is global by default. See Scopes.
allScopesboolean?NoSet to true to return keys from all scopes.
prefixstring | null?NoProvide to return only keys with this prefix.
cursorstring | null?NoProvide to request the next set of data.
limitinteger? = 16NoThe maximum number of items to return. Each call only reads one partition, so it can return fewer than the given value when running out of objectives on one partition.

Type: object


getUniversesUniverseIdDatastoresDatastoreEntriesEntry deprecated

Section titled “getUniversesUniverseIdDatastoresDatastoreEntriesEntry deprecated”

GET /v1/universes/:universeId/standard-datastores/datastore/entries/entry

Returns the value and metadata associated with an entry. Entries marked deleted with a tombstone version will return 404 Not Found. Metadata can be found in the response headers like the following: text content-md5: zuYxEhwuySMv0i8CitXImw== roblox-entry-version: 08D9E6A3F2188CFF.0000000001.08D9E6A3F2188CFF.01 roblox-entry-created-time: 2022-02-02T23:30:06.5388799+00:00 roblox-entry-version-created-time: 2022-02-02T23:30:06.5388799+00:00 roblox-entry-attributes: { "myAttribute": "myValue" } roblox-entry-userids: [1, 2, 3] | Header | Description | |---|---| | content-md5 | The base64-encoded MD5 checksum of the content. See Content-MD5. | | roblox-entry-version | The version of the returned entry. | | roblox-entry-created-time | The time at which the entry was created. | | roblox-entry-version-created-time | The time at which this particular version was created. | | roblox-entry-attributes | Attributes tagged with the entry. Serialized JSON map object. | | roblox-entry-userids | Comma-separated list of Roblox user IDs tagged with the entry. |

See: GET https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/entries/{entry_id} See: GET https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/scopes/{scope_id}/entries/{entry_id}

Scopes: universe-datastores.objects:read

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseIdDatastoresDatastoreEntriesEntry } from 'rozod/lib/opencloud/v1/datastores';
const data = await fetchApi(getUniversesUniverseIdDatastoresDatastoreEntriesEntry, {
universeId: /* integer */,
datastoreName: /* string \| null? */,
entryKey: /* string \| null? */,
scope: /* string \| null? = "global" */
});
NameTypeRequiredDescription
universeIdintegerYesThe identifier of the experience with data stores that you want to access. You can find your experience’s universe ID on Creator Hub.
datastoreNamestring | null?NoThe name of the data store.
entryKeystring | null?NoThe key identifying the entry.
scopestring | null? = "global"NoThe value is global by default. See Scopes.

Type: unknown


postUniversesUniverseIdDatastoresDatastoreEntriesEntry deprecated

Section titled “postUniversesUniverseIdDatastoresDatastoreEntriesEntry deprecated”

POST /v1/universes/:universeId/standard-datastores/datastore/entries/entry

Sets the value, metadata and user IDs associated with an entry.

See: PATCH https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/entries/{entry_id} See: PATCH https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/scopes/{scope_id}/entries/{entry_id} See: POST https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/entries See: POST https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/scopes/{scope_id}/entries

Scopes: universe-datastores.objects:update, universe-datastores.objects:create, universe-datastores.control:create

Usage
import { fetchApi } from 'rozod';
import { postUniversesUniverseIdDatastoresDatastoreEntriesEntry } from 'rozod/lib/opencloud/v1/datastores';
const data = await fetchApi(postUniversesUniverseIdDatastoresDatastoreEntriesEntry, {
universeId: /* integer */,
datastoreName: /* string \| null? */,
entryKey: /* string \| null? */,
matchVersion: /* string \| null? */,
exclusiveCreate: /* boolean? */,
scope: /* string \| null? = "global" */,
body: { /* ... */ }
});
NameTypeRequiredDescription
universeIdintegerYesThe identifier of the experience with data stores that you want to access. You can find your experience’s universe ID on Creator Hub.
datastoreNamestring | null?NoThe name of the data store.
entryKeystring | null?NoThe key identifying the entry.
matchVersionstring | null?NoProvide to update only if the current version matches this.
exclusiveCreateboolean?NoCreate the entry only if it does not exist.
scopestring | null? = "global"NoThe value is global by default. See Scopes.

Type: string

Type: unknown


deleteUniversesUniverseIdDatastoresDatastoreEntriesEntry deprecated

Section titled “deleteUniversesUniverseIdDatastoresDatastoreEntriesEntry deprecated”

DELETE /v1/universes/:universeId/standard-datastores/datastore/entries/entry

Marks the entry as deleted by creating a tombstone version. Entries are deleted permanently after 30 days.

See: DELETE https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/entries/{entry_id} See: DELETE https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/scopes/{scope_id}/entries/{entry_id}

Scopes: universe-datastores.objects:delete

Usage
import { fetchApi } from 'rozod';
import { deleteUniversesUniverseIdDatastoresDatastoreEntriesEntry } from 'rozod/lib/opencloud/v1/datastores';
const data = await fetchApi(deleteUniversesUniverseIdDatastoresDatastoreEntriesEntry, {
universeId: /* integer */,
datastoreName: /* string \| null? */,
entryKey: /* string \| null? */,
scope: /* string \| null? = "global" */
});
NameTypeRequiredDescription
universeIdintegerYesThe identifier of the experience with data stores that you want to access. You can find your experience’s universe ID on Creator Hub.
datastoreNamestring | null?NoThe name of the data store.
entryKeystring | null?NoThe key identifying the entry.
scopestring | null? = "global"NoThe value is global by default. See Scopes.

Type: unknown


postUniversesUniverseIdDatastoresDatastoreEntriesEntryIncrement deprecated

Section titled “postUniversesUniverseIdDatastoresDatastoreEntriesEntryIncrement deprecated”

POST /v1/universes/:universeId/standard-datastores/datastore/entries/entry/increment

Increments the value for an entry by a given amount, or create a new entry with that amount. Returns the entry and metadata. Metadata can be found in the response headers like the following: text content-md5: zuYxEhwuySMv0i8CitXImw== roblox-entry-version: 08D9E6A3F2188CFF.0000000001.08D9E6A3F2188CFF.01 roblox-entry-created-time: 2022-02-02T23:30:06.5388799+00:00 roblox-entry-version-created-time: 2022-02-02T23:30:06.5388799+00:00 roblox-entry-attributes: { "myAttribute": "myValue" } roblox-entry-userids: [1, 2, 3] | Header | Description | |---|---| | content-md5 | The base64-encoded MD5 checksum of the content. See Content-MD5. | | roblox-entry-version | The version of the returned entry. | | roblox-entry-created-time | The time at which the entry was created. | | roblox-entry-version-created-time | The time at which this particular version was created. | | roblox-entry-attributes | Attributes tagged with the entry. Serialized JSON map object. | | roblox-entry-userids | Comma-separated list of Roblox user IDs tagged with the entry. |

See: POST https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/entries/{entry_id}:increment See: POST https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/scopes/{scope_id}/entries/{entry_id}:increment

Scopes: universe-datastores.objects:update, universe-datastores.objects:create, universe-datastores.control:create

Usage
import { fetchApi } from 'rozod';
import { postUniversesUniverseIdDatastoresDatastoreEntriesEntryIncrement } from 'rozod/lib/opencloud/v1/datastores';
const data = await fetchApi(postUniversesUniverseIdDatastoresDatastoreEntriesEntryIncrement, {
universeId: /* integer */,
datastoreName: /* string \| null? */,
entryKey: /* string \| null? */,
incrementBy: /* integer? = 1 */,
scope: /* string \| null? = "global" */
});
NameTypeRequiredDescription
universeIdintegerYesThe identifier of the experience with data stores that you want to access. You can find your experience’s universe ID on Creator Hub.
datastoreNamestring | null?NoThe name of the data store.
entryKeystring | null?NoThe key identifying the entry.
incrementByinteger? = 1NoThe amount by which the entry should be incremented, or the starting value if it doesn’t exist.
scopestring | null? = "global"NoThe value is global by default. See Scopes.

Type: unknown


getUniversesUniverseIdDatastoresDatastoreEntriesEntryVersions deprecated

Section titled “getUniversesUniverseIdDatastoresDatastoreEntriesEntryVersions deprecated”

GET /v1/universes/:universeId/standard-datastores/datastore/entries/entry/versions

Returns a list of versions for an entry.

See: GET https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/entries/{entry_id}:listRevisions See: GET https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/scopes/{scope_id}/entries/{entry_id}:listRevisions

Scopes: universe-datastores.versions:list

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseIdDatastoresDatastoreEntriesEntryVersions } from 'rozod/lib/opencloud/v1/datastores';
const data = await fetchApi(getUniversesUniverseIdDatastoresDatastoreEntriesEntryVersions, {
universeId: /* integer */,
datastoreName: /* string \| null? */,
entryKey: /* string \| null? */,
scope: /* string \| null? = "global" */,
cursor: /* string */
});
NameTypeRequiredDescription
universeIdintegerYesThe identifier of the experience with data stores that you want to access. You can find your experience’s universe ID on Creator Hub.
datastoreNamestring | null?NoThe name of the data store.
entryKeystring | null?NoThe key identifying the entry.
scopestring | null? = "global"NoThe value is global by default. See Scopes.
cursorstringYesProvide to request the next set of data.

Type: unknown

StatusDescription
400Invalid request / Invalid file content.
403Publish not allowed on place.
404The experience or data store was not found.
429Too Many Requests.

getUniversesUniverseIdDatastoresDatastoreEntriesEntryVersionsVersion deprecated

Section titled “getUniversesUniverseIdDatastoresDatastoreEntriesEntryVersionsVersion deprecated”

GET /v1/universes/:universeId/standard-datastores/datastore/entries/entry/versions/version

Returns the value and metadata of a specific version of an entry. Metadata can be found in the response headers like the following: text content-md5: zuYxEhwuySMv0i8CitXImw== roblox-entry-version: 08D9E6A3F2188CFF.0000000001.08D9E6A3F2188CFF.01 roblox-entry-created-time: 2022-02-02T23:30:06.5388799+00:00 roblox-entry-version-created-time: 2022-02-02T23:30:06.5388799+00:00 roblox-entry-attributes: { "myAttribute": "myValue" } roblox-entry-userids: [1, 2, 3] | Header | Description | |---|---| | content-md5 | The base64-encoded MD5 checksum of the content. See Content-MD5. | | roblox-entry-version | The version of the returned entry. | | roblox-entry-created-time | The time at which the entry was created. | | roblox-entry-version-created-time | The time at which this particular version was created. | | roblox-entry-attributes | Attributes tagged with the entry. Serialized JSON map object. | | roblox-entry-userids | Comma-separated list of Roblox user IDs tagged with the entry. |

See: GET https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/entries/{entry_id} See: GET https://apis.roblox.com/cloud/v2/universes/{universe_id}/data-stores/{data_store_id}/scopes/{scope_id}/entries/{entry_id}

Scopes: universe-datastores.versions:read

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseIdDatastoresDatastoreEntriesEntryVersionsVersion } from 'rozod/lib/opencloud/v1/datastores';
const data = await fetchApi(getUniversesUniverseIdDatastoresDatastoreEntriesEntryVersionsVersion, {
universeId: /* integer */,
datastoreName: /* string \| null? */,
entryKey: /* string \| null? */,
versionId: /* string \| null? */,
scope: /* string \| null? = "global" */
});
NameTypeRequiredDescription
universeIdintegerYesThe identifier of the experience with data stores that you want to access. You can find your experience’s universe ID on Creator Hub.
datastoreNamestring | null?NoThe name of the data store.
entryKeystring | null?NoThe key identifying the entry.
versionIdstring | null?NoThe version to inspect.
scopestring | null? = "global"NoThe value is global by default. See Scopes.

Type: unknown