Models
Batch Associate Datasets With Model
Associate multiple datasets with a model in a single request.
POST
/
v1
/
models
/
{model_id}
/
datasets
/
batch
Batch Associate Datasets With Model
curl --request POST \
--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": "rag",
"datasetSnapshotId": "550e8400-e29b-41d4-a716-446655440003",
"priority": 0
}
]
}
'import requests
url = "https://api.cuadra.ai/v1/models/{model_id}/datasets/batch"
payload = { "datasets": [
{
"datasetId": "<string>",
"usageType": "rag",
"datasetSnapshotId": "550e8400-e29b-41d4-a716-446655440003",
"priority": 0
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
datasets: [
{
datasetId: '<string>',
usageType: 'rag',
datasetSnapshotId: '550e8400-e29b-41d4-a716-446655440003',
priority: 0
}
]
})
};
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 => "POST",
CURLOPT_POSTFIELDS => json_encode([
'datasets' => [
[
'datasetId' => '<string>',
'usageType' => 'rag',
'datasetSnapshotId' => '550e8400-e29b-41d4-a716-446655440003',
'priority' => 0
]
]
]),
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\": \"rag\",\n \"datasetSnapshotId\": \"550e8400-e29b-41d4-a716-446655440003\",\n \"priority\": 0\n }\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("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\": \"rag\",\n \"datasetSnapshotId\": \"550e8400-e29b-41d4-a716-446655440003\",\n \"priority\": 0\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::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"datasets\": [\n {\n \"datasetId\": \"<string>\",\n \"usageType\": \"rag\",\n \"datasetSnapshotId\": \"550e8400-e29b-41d4-a716-446655440003\",\n \"priority\": 0\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 associating multiple datasets with a model in a single request.
List of datasets to associate with the model (max 50 per request)
Required array length:
1 - 50 elementsShow child attributes
Show child attributes
Example:
[
{
"datasetId": "550e8400-e29b-41d4-a716-446655440001",
"priority": 0,
"usageType": "rag"
}
]
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 Associate Datasets With Model
curl --request POST \
--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": "rag",
"datasetSnapshotId": "550e8400-e29b-41d4-a716-446655440003",
"priority": 0
}
]
}
'import requests
url = "https://api.cuadra.ai/v1/models/{model_id}/datasets/batch"
payload = { "datasets": [
{
"datasetId": "<string>",
"usageType": "rag",
"datasetSnapshotId": "550e8400-e29b-41d4-a716-446655440003",
"priority": 0
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
datasets: [
{
datasetId: '<string>',
usageType: 'rag',
datasetSnapshotId: '550e8400-e29b-41d4-a716-446655440003',
priority: 0
}
]
})
};
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 => "POST",
CURLOPT_POSTFIELDS => json_encode([
'datasets' => [
[
'datasetId' => '<string>',
'usageType' => 'rag',
'datasetSnapshotId' => '550e8400-e29b-41d4-a716-446655440003',
'priority' => 0
]
]
]),
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\": \"rag\",\n \"datasetSnapshotId\": \"550e8400-e29b-41d4-a716-446655440003\",\n \"priority\": 0\n }\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("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\": \"rag\",\n \"datasetSnapshotId\": \"550e8400-e29b-41d4-a716-446655440003\",\n \"priority\": 0\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::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"datasets\": [\n {\n \"datasetId\": \"<string>\",\n \"usageType\": \"rag\",\n \"datasetSnapshotId\": \"550e8400-e29b-41d4-a716-446655440003\",\n \"priority\": 0\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>"
}
]
}