DatasetRw
Create a dataset
Create a new Dataset. Requires access to the project the dataset will originate from
POST
/
api
/
datasetrw
/
v1
/
datasets
Create a dataset
curl --request POST \
--url https://mycluster.domino.tech/api/datasetrw/v1/datasets \
--header 'Content-Type: application/json' \
--header 'X-Domino-Api-Key: <api-key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"grants": [
{
"targetId": "<string>"
}
],
"projectId": "<string>",
"snapshotId": "<string>"
}
'import requests
url = "https://mycluster.domino.tech/api/datasetrw/v1/datasets"
payload = {
"name": "<string>",
"description": "<string>",
"grants": [{ "targetId": "<string>" }],
"projectId": "<string>",
"snapshotId": "<string>"
}
headers = {
"X-Domino-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Domino-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
grants: [{targetId: '<string>'}],
projectId: '<string>',
snapshotId: '<string>'
})
};
fetch('https://mycluster.domino.tech/api/datasetrw/v1/datasets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://mycluster.domino.tech/api/datasetrw/v1/datasets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'grants' => [
[
'targetId' => '<string>'
]
],
'projectId' => '<string>',
'snapshotId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Domino-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://mycluster.domino.tech/api/datasetrw/v1/datasets"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"grants\": [\n {\n \"targetId\": \"<string>\"\n }\n ],\n \"projectId\": \"<string>\",\n \"snapshotId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Domino-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://mycluster.domino.tech/api/datasetrw/v1/datasets")
.header("X-Domino-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"grants\": [\n {\n \"targetId\": \"<string>\"\n }\n ],\n \"projectId\": \"<string>\",\n \"snapshotId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mycluster.domino.tech/api/datasetrw/v1/datasets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Domino-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"grants\": [\n {\n \"targetId\": \"<string>\"\n }\n ],\n \"projectId\": \"<string>\",\n \"snapshotId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"dataset": {
"createdAt": "2022-03-12T02:13:44.467Z",
"id": "62313ce67a0af0281c01a6a5",
"name": "My Dataset",
"snapshotIds": [
"<string>"
],
"tags": {
"bar": "62313ce67a0af0281c01a6a5",
"foo": "62313ce67a0af0281c01a6a5"
},
"description": "<string>",
"projectId": "62313ce67a0af0281c01a6a5"
},
"metadata": {
"notices": [
"<string>"
],
"requestId": "<string>"
}
}{
"error": "<string>"
}{
"code": "UNAUTHORIZED",
"message": "Authentication is required to access this resource."
}{
"code": "FORBIDDEN",
"message": "You do not have permission to perform this action."
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
DominoApiKeyBearerAuthentication
Body
application/json
Dataset to create
Name of this dataset. The name must be unique in the same project
Description of the dataset
Permission grants to be assigned for this newly created dataset. Note that permissions can be edited after creation. If snapshotId is passed in, this parameter won't have any effect and caller will be assigned dataset Ownership.
Show child attributes
Show child attributes
ID of the project this dataset belongs to. Either projectId or snapshotId must be provided
ID of an existing snapshot to create a new dataset from. Either snapshotId or projectId must be provided.
Last modified on June 26, 2026
Related topics
Create and manage DatasetsDatasets administrationShare Datasets securelyVersion data with SnapshotsWas this page helpful?
⌘I
Create a dataset
curl --request POST \
--url https://mycluster.domino.tech/api/datasetrw/v1/datasets \
--header 'Content-Type: application/json' \
--header 'X-Domino-Api-Key: <api-key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"grants": [
{
"targetId": "<string>"
}
],
"projectId": "<string>",
"snapshotId": "<string>"
}
'import requests
url = "https://mycluster.domino.tech/api/datasetrw/v1/datasets"
payload = {
"name": "<string>",
"description": "<string>",
"grants": [{ "targetId": "<string>" }],
"projectId": "<string>",
"snapshotId": "<string>"
}
headers = {
"X-Domino-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Domino-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
grants: [{targetId: '<string>'}],
projectId: '<string>',
snapshotId: '<string>'
})
};
fetch('https://mycluster.domino.tech/api/datasetrw/v1/datasets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://mycluster.domino.tech/api/datasetrw/v1/datasets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'grants' => [
[
'targetId' => '<string>'
]
],
'projectId' => '<string>',
'snapshotId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Domino-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://mycluster.domino.tech/api/datasetrw/v1/datasets"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"grants\": [\n {\n \"targetId\": \"<string>\"\n }\n ],\n \"projectId\": \"<string>\",\n \"snapshotId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Domino-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://mycluster.domino.tech/api/datasetrw/v1/datasets")
.header("X-Domino-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"grants\": [\n {\n \"targetId\": \"<string>\"\n }\n ],\n \"projectId\": \"<string>\",\n \"snapshotId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mycluster.domino.tech/api/datasetrw/v1/datasets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Domino-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"grants\": [\n {\n \"targetId\": \"<string>\"\n }\n ],\n \"projectId\": \"<string>\",\n \"snapshotId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"dataset": {
"createdAt": "2022-03-12T02:13:44.467Z",
"id": "62313ce67a0af0281c01a6a5",
"name": "My Dataset",
"snapshotIds": [
"<string>"
],
"tags": {
"bar": "62313ce67a0af0281c01a6a5",
"foo": "62313ce67a0af0281c01a6a5"
},
"description": "<string>",
"projectId": "62313ce67a0af0281c01a6a5"
},
"metadata": {
"notices": [
"<string>"
],
"requestId": "<string>"
}
}{
"error": "<string>"
}{
"code": "UNAUTHORIZED",
"message": "Authentication is required to access this resource."
}{
"code": "FORBIDDEN",
"message": "You do not have permission to perform this action."
}{
"error": "<string>"
}{
"error": "<string>"
}