const collectionName = 'YourCollection';
domo.put(`/domo/datastores/v1/collections/${collectionName}`, {
schema: {
columns: [
{ name: 'name', type: 'STRING' },
{ name: 'house', type: 'STRING' },
{ name: 'enrolledOn', type: 'DATE' },
{ name: 'lastDetention', type: 'DATETIME' }
]
},
syncEnabled: true
}).then(collection => console.log(collection));{
"id": "277f0d9f-355d-4905-8fb8-0dc87e496159",
"datastoreId": "fcd8baba-9524-4fb5-b94b-b3d3b588e740",
"defaultPermissions": null,
"requiredAuthorities": null,
"owner": 330281426,
"name": "Teachers",
"datasourceId": null,
"schema": {
"columns": [
{
"type": "STRING",
"name": "name"
},
{
"type": "STRING",
"name": "house"
},
{
"type": "STRING",
"name": "subjects"
}
]
},
"filters": null,
"syncEnabled": false,
"syncRequired": true,
"cdcEnabled": false,
"fullReplaceRequired": false,
"lastSync": null,
"createdOn": "2026-08-04T19:14:26.862Z",
"updatedOn": "2026-08-04T19:33:49.586128905Z",
"updatedBy": 330281426
}{
"status": 403,
"statusReason": "status 403 reading CollectionsResourceClient#updateCollection(UUID,Map,Boolean); content:\n{\"message\":\"User does not have permission to update the collection.\",\"status\":403,\"statusReason\":\"Forbidden\",\"toe\":\"SPRKYZVRC6-P1HPE-ZQPOD\"}",
"toe": "SPRKYZVRC6-P1HPE-ZQPOD"
}{
"status": 404,
"statusReason": "DA0088: Collection 'students' was not found in datastore fcd8baba-9524-4fb5-b94b-b3d3b588e740 - it may not exist on this instance or may not be accessible",
"toe": "SPRBHMOV31-SSMDK-4TTZJ"
}Update Collection
You can update the schema and other properties of a collection. To see their current value, use the List Collections endpoint.
Update Manifest Instead Of Collection
If you manually override the properties of a Collection that exists in your manifest, then any time an app Card is saved, the Card will revert back to the manifest definition of that Collection. It is best practice to only update Collections that you have created manually. Otherwise, to update a Collection, simply update the manifest.
After updating the manifest and re-publishing your app design, you must edit the installed app and re-save it for manifest changes to take effect.
If the collection has syncEnabled, updating the schema changes which fields are synced to the linked Domo DataSet. Note the following when modifying a synced collection’s schema:
Date formatting: Documents containing DATE or DATETIME data must use the format YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ to sync correctly.
Only top-level fields can be synced. Column names must be top-level keys in the document’s content object; dot notation does not traverse nested objects during sync. To include a nested object, use the top-level key name (e.g., wand) — the synced value will be the JSON string representation of that object (e.g., {"wood":"holly","core":"phoenix feather","length":11}).
Incorrect schema types prevent DataSet creation. The accepted column types are STRING · LONG · DECIMAL · DOUBLE · DATE · DATETIME. If your AppDB DataSet doesn’t appear after 15 minutes, verify your schema uses only these values — common mistakes include NUMBER or INTEGER.
const collectionName = 'YourCollection';
domo.put(`/domo/datastores/v1/collections/${collectionName}`, {
schema: {
columns: [
{ name: 'name', type: 'STRING' },
{ name: 'house', type: 'STRING' },
{ name: 'enrolledOn', type: 'DATE' },
{ name: 'lastDetention', type: 'DATETIME' }
]
},
syncEnabled: true
}).then(collection => console.log(collection));{
"id": "277f0d9f-355d-4905-8fb8-0dc87e496159",
"datastoreId": "fcd8baba-9524-4fb5-b94b-b3d3b588e740",
"defaultPermissions": null,
"requiredAuthorities": null,
"owner": 330281426,
"name": "Teachers",
"datasourceId": null,
"schema": {
"columns": [
{
"type": "STRING",
"name": "name"
},
{
"type": "STRING",
"name": "house"
},
{
"type": "STRING",
"name": "subjects"
}
]
},
"filters": null,
"syncEnabled": false,
"syncRequired": true,
"cdcEnabled": false,
"fullReplaceRequired": false,
"lastSync": null,
"createdOn": "2026-08-04T19:14:26.862Z",
"updatedOn": "2026-08-04T19:33:49.586128905Z",
"updatedBy": 330281426
}{
"status": 403,
"statusReason": "status 403 reading CollectionsResourceClient#updateCollection(UUID,Map,Boolean); content:\n{\"message\":\"User does not have permission to update the collection.\",\"status\":403,\"statusReason\":\"Forbidden\",\"toe\":\"SPRKYZVRC6-P1HPE-ZQPOD\"}",
"toe": "SPRKYZVRC6-P1HPE-ZQPOD"
}{
"status": 404,
"statusReason": "DA0088: Collection 'students' was not found in datastore fcd8baba-9524-4fb5-b94b-b3d3b588e740 - it may not exist on this instance or may not be accessible",
"toe": "SPRBHMOV31-SSMDK-4TTZJ"
}Path Parameters
The name given to the collection in the manifest. Case-sensitive.
Body
Rename the collection. Note: renaming only changes the stored name — your app's collectionsMapping still routes calls using the original name from the manifest. The app will continue to work, but the name shown in AppDB Admin and returned by List Collections will reflect the new name.
Show child attributes
Show child attributes
Response
Collection updated successfully. Returns the full updated collection.
Unique identifier for the collection.
User ID of the collection owner.
ID of the datastore this collection belongs to.
Name of the collection.
ID of the linked Domo DataSet, or null if not yet linked.
Comma-separated default permission set for new app grants on this collection, or null if not set.
Maps CollectionOperation names to required authority strings, or null if not set.
Array of document-level filter predicates applied to read operations, or null if not set.
Show child attributes
Show child attributes
Whether documents are periodically synced to the linked DataSet.
Whether a sync is pending.
Whether change data capture is enabled for this collection.