Datasets
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 within the project.
Description of the Dataset
Permission grants to assign to this newly created Dataset. Note that permissions can be edited after creation. If snapshotId is passed in, this parameter has no effect and the caller is 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 September 3, 2026
Was 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>"
}