Models
Batch Update Model-Dataset Associations
Update multiple model-dataset associations in a single request.
PATCH
/
v1
/
models
/
{model_id}
/
datasets
/
batch
Batch Update Model-Dataset Associations
curl --request PATCH \
--url https://api.cuadra.ai/v1/models/{model_id}/datasets/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"datasets": [
{
"datasetId": "<string>",
"usageType": "<string>",
"datasetSnapshotId": "<string>",
"priority": 50
}
]
}
'import requests
url = "https://api.cuadra.ai/v1/models/{model_id}/datasets/batch"
payload = { "datasets": [
{
"datasetId": "<string>",
"usageType": "<string>",
"datasetSnapshotId": "<string>",
"priority": 50
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
datasets: [
{
datasetId: '<string>',
usageType: '<string>',
datasetSnapshotId: '<string>',
priority: 50
}
]
})
};
fetch('https://api.cuadra.ai/v1/models/{model_id}/datasets/batch', 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://api.cuadra.ai/v1/models/{model_id}/datasets/batch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'datasets' => [
[
'datasetId' => '<string>',
'usageType' => '<string>',
'datasetSnapshotId' => '<string>',
'priority' => 50
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.cuadra.ai/v1/models/{model_id}/datasets/batch"
payload := strings.NewReader("{\n \"datasets\": [\n {\n \"datasetId\": \"<string>\",\n \"usageType\": \"<string>\",\n \"datasetSnapshotId\": \"<string>\",\n \"priority\": 50\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.patch("https://api.cuadra.ai/v1/models/{model_id}/datasets/batch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"datasets\": [\n {\n \"datasetId\": \"<string>\",\n \"usageType\": \"<string>\",\n \"datasetSnapshotId\": \"<string>\",\n \"priority\": 50\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cuadra.ai/v1/models/{model_id}/datasets/batch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"datasets\": [\n {\n \"datasetId\": \"<string>\",\n \"usageType\": \"<string>\",\n \"datasetSnapshotId\": \"<string>\",\n \"priority\": 50\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"created": [
{
"createdAt": "2025-10-18T06:33:19Z",
"datasetId": "550e8400-e29b-41d4-a716-446655440001",
"modelId": "550e8400-e29b-41d4-a716-446655440000",
"priority": 0,
"updatedAt": "2025-10-18T06:33:19Z",
"usageType": "rag"
}
],
"skipped": []
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
bearerAuthoauth2
JWT token from Stytch B2B authentication (magic link, SSO, or M2M)
Headers
Path Parameters
Model ID
Example:
"model_abc123"
Body
application/json
Schema for batch updating multiple model-dataset associations.
List of dataset updates to apply (max 50 per request)
Required array length:
1 - 50 elementsShow child attributes
Show child attributes
Example:
[
{
"datasetId": "550e8400-e29b-41d4-a716-446655440001",
"priority": 5
}
]
Response
Successful Response
Response for batch dataset association creation.
Successfully created associations
Show child attributes
Show child attributes
Datasets that were skipped (already associated)
Show child attributes
Show child attributes
Example:
[
{
"datasetId": "550e8400-e29b-41d4-a716-446655440002",
"reason": "Already associated with this model"
}
]
Was this page helpful?
⌘I
Batch Update Model-Dataset Associations
curl --request PATCH \
--url https://api.cuadra.ai/v1/models/{model_id}/datasets/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"datasets": [
{
"datasetId": "<string>",
"usageType": "<string>",
"datasetSnapshotId": "<string>",
"priority": 50
}
]
}
'import requests
url = "https://api.cuadra.ai/v1/models/{model_id}/datasets/batch"
payload = { "datasets": [
{
"datasetId": "<string>",
"usageType": "<string>",
"datasetSnapshotId": "<string>",
"priority": 50
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
datasets: [
{
datasetId: '<string>',
usageType: '<string>',
datasetSnapshotId: '<string>',
priority: 50
}
]
})
};
fetch('https://api.cuadra.ai/v1/models/{model_id}/datasets/batch', 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://api.cuadra.ai/v1/models/{model_id}/datasets/batch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'datasets' => [
[
'datasetId' => '<string>',
'usageType' => '<string>',
'datasetSnapshotId' => '<string>',
'priority' => 50
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.cuadra.ai/v1/models/{model_id}/datasets/batch"
payload := strings.NewReader("{\n \"datasets\": [\n {\n \"datasetId\": \"<string>\",\n \"usageType\": \"<string>\",\n \"datasetSnapshotId\": \"<string>\",\n \"priority\": 50\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.patch("https://api.cuadra.ai/v1/models/{model_id}/datasets/batch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"datasets\": [\n {\n \"datasetId\": \"<string>\",\n \"usageType\": \"<string>\",\n \"datasetSnapshotId\": \"<string>\",\n \"priority\": 50\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cuadra.ai/v1/models/{model_id}/datasets/batch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"datasets\": [\n {\n \"datasetId\": \"<string>\",\n \"usageType\": \"<string>\",\n \"datasetSnapshotId\": \"<string>\",\n \"priority\": 50\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"created": [
{
"createdAt": "2025-10-18T06:33:19Z",
"datasetId": "550e8400-e29b-41d4-a716-446655440001",
"modelId": "550e8400-e29b-41d4-a716-446655440000",
"priority": 0,
"updatedAt": "2025-10-18T06:33:19Z",
"usageType": "rag"
}
],
"skipped": []
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}