curl --request GET \
--url https://{projectHost}/collections/{collectionName}/docs/bulk-upsert \
--header 'x-api-key: <api-key>'import requests
url = "https://{projectHost}/collections/{collectionName}/docs/bulk-upsert"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://{projectHost}/collections/{collectionName}/docs/bulk-upsert', 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://{projectHost}/collections/{collectionName}/docs/bulk-upsert",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-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"
"net/http"
"io"
)
func main() {
url := "https://{projectHost}/collections/{collectionName}/docs/bulk-upsert"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{projectHost}/collections/{collectionName}/docs/bulk-upsert")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{projectHost}/collections/{collectionName}/docs/bulk-upsert")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"url": "<S3 presigned URL>",
"type": "application/json",
"httpMethod": "PUT",
"objectKey": "example-object-key",
"sizeLimitBytes": 209715200,
"headers": {
"If-None-Match": "*"
}
}Get bulk upsert URL
Request required info to upload documents. Bulk upsert is not supported for collections with managed embedding vector fields. Upload with the returned method, type as Content-Type, and signed headers. PUT is create-only: reusing an uploaded object can return object-storage 412. Get a new URL for a new upload attempt and resolve uncertain prior outcomes before resubmitting. The object key is bound to the original branch identity and cannot be reused after branch recreation.
curl --request GET \
--url https://{projectHost}/collections/{collectionName}/docs/bulk-upsert \
--header 'x-api-key: <api-key>'import requests
url = "https://{projectHost}/collections/{collectionName}/docs/bulk-upsert"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://{projectHost}/collections/{collectionName}/docs/bulk-upsert', 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://{projectHost}/collections/{collectionName}/docs/bulk-upsert",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-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"
"net/http"
"io"
)
func main() {
url := "https://{projectHost}/collections/{collectionName}/docs/bulk-upsert"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{projectHost}/collections/{collectionName}/docs/bulk-upsert")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{projectHost}/collections/{collectionName}/docs/bulk-upsert")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"url": "<S3 presigned URL>",
"type": "application/json",
"httpMethod": "PUT",
"objectKey": "example-object-key",
"sizeLimitBytes": 209715200,
"headers": {
"If-None-Match": "*"
}
}Authorizations
Project API Key.
Path Parameters
Collection name.
Query Parameters
Write target branch. Defaults to main.
3 - 52^[a-zA-Z0-9_-]{3,52}$Response
Required info to upload documents.
Presigned URL.
Content type that must be specified when uploading documents.
application/json HTTP method that must be specified when uploading documents.
PUT Object key that must be specified when uploading documents.
Object size limit in bytes.
Signed headers to forward unchanged on the presigned PUT, in addition to Content-Type from type.
Show child attributes
Show child attributes
Was this page helpful?