cURL
curl --request POST \
--url https://{projectHost}/collections/{collectionName}/docs/upsert \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"docs": [
{
"example-field1": "example-value1",
"example-field2": [
0.1,
0.2,
0.3
]
},
{
"example-field1": "example-value2",
"example-field2": [
0.4,
0.5,
0.6
]
}
]
}
'import requests
url = "https://{projectHost}/collections/{collectionName}/docs/upsert"
payload = { "docs": [
{
"example-field1": "example-value1",
"example-field2": [0.1, 0.2, 0.3]
},
{
"example-field1": "example-value2",
"example-field2": [0.4, 0.5, 0.6]
}
] }
headers = {
"x-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-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
docs: [
{'example-field1': 'example-value1', 'example-field2': [0.1, 0.2, 0.3]},
{'example-field1': 'example-value2', 'example-field2': [0.4, 0.5, 0.6]}
]
})
};
fetch('https://{projectHost}/collections/{collectionName}/docs/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/upsert",
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([
'docs' => [
[
'example-field1' => 'example-value1',
'example-field2' => [
0.1,
0.2,
0.3
]
],
[
'example-field1' => 'example-value2',
'example-field2' => [
0.4,
0.5,
0.6
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{projectHost}/collections/{collectionName}/docs/upsert"
payload := strings.NewReader("{\n \"docs\": [\n {\n \"example-field1\": \"example-value1\",\n \"example-field2\": [\n 0.1,\n 0.2,\n 0.3\n ]\n },\n {\n \"example-field1\": \"example-value2\",\n \"example-field2\": [\n 0.4,\n 0.5,\n 0.6\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-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://{projectHost}/collections/{collectionName}/docs/upsert")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"docs\": [\n {\n \"example-field1\": \"example-value1\",\n \"example-field2\": [\n 0.1,\n 0.2,\n 0.3\n ]\n },\n {\n \"example-field1\": \"example-value2\",\n \"example-field2\": [\n 0.4,\n 0.5,\n 0.6\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{projectHost}/collections/{collectionName}/docs/upsert")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"docs\": [\n {\n \"example-field1\": \"example-value1\",\n \"example-field2\": [\n 0.1,\n 0.2,\n 0.3\n ]\n },\n {\n \"example-field1\": \"example-value2\",\n \"example-field2\": [\n 0.4,\n 0.5,\n 0.6\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "Upsert request is accepted"
}{
"message": "Invalid request"
}{
"message": "Authentication failed"
}{
"message": "Resource not found"
}{
"message": "Too many requests"
}{
"message": "Internal server error"
}Documents
Upsert documents
Upsert documents into a collection. Note that the maximum supported payload size is 6MB.
POST
/
collections
/
{collectionName}
/
docs
/
upsert
cURL
curl --request POST \
--url https://{projectHost}/collections/{collectionName}/docs/upsert \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"docs": [
{
"example-field1": "example-value1",
"example-field2": [
0.1,
0.2,
0.3
]
},
{
"example-field1": "example-value2",
"example-field2": [
0.4,
0.5,
0.6
]
}
]
}
'import requests
url = "https://{projectHost}/collections/{collectionName}/docs/upsert"
payload = { "docs": [
{
"example-field1": "example-value1",
"example-field2": [0.1, 0.2, 0.3]
},
{
"example-field1": "example-value2",
"example-field2": [0.4, 0.5, 0.6]
}
] }
headers = {
"x-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-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
docs: [
{'example-field1': 'example-value1', 'example-field2': [0.1, 0.2, 0.3]},
{'example-field1': 'example-value2', 'example-field2': [0.4, 0.5, 0.6]}
]
})
};
fetch('https://{projectHost}/collections/{collectionName}/docs/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/upsert",
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([
'docs' => [
[
'example-field1' => 'example-value1',
'example-field2' => [
0.1,
0.2,
0.3
]
],
[
'example-field1' => 'example-value2',
'example-field2' => [
0.4,
0.5,
0.6
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{projectHost}/collections/{collectionName}/docs/upsert"
payload := strings.NewReader("{\n \"docs\": [\n {\n \"example-field1\": \"example-value1\",\n \"example-field2\": [\n 0.1,\n 0.2,\n 0.3\n ]\n },\n {\n \"example-field1\": \"example-value2\",\n \"example-field2\": [\n 0.4,\n 0.5,\n 0.6\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-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://{projectHost}/collections/{collectionName}/docs/upsert")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"docs\": [\n {\n \"example-field1\": \"example-value1\",\n \"example-field2\": [\n 0.1,\n 0.2,\n 0.3\n ]\n },\n {\n \"example-field1\": \"example-value2\",\n \"example-field2\": [\n 0.4,\n 0.5,\n 0.6\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{projectHost}/collections/{collectionName}/docs/upsert")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"docs\": [\n {\n \"example-field1\": \"example-value1\",\n \"example-field2\": [\n 0.1,\n 0.2,\n 0.3\n ]\n },\n {\n \"example-field1\": \"example-value2\",\n \"example-field2\": [\n 0.4,\n 0.5,\n 0.6\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "Upsert request is accepted"
}{
"message": "Invalid request"
}{
"message": "Authentication failed"
}{
"message": "Resource not found"
}{
"message": "Too many requests"
}{
"message": "Internal server error"
}Authorizations
Project API Key.
Path Parameters
Collection name.
Body
application/json
A list of documents to upsert. For managed embedding vector fields, omit the managed vector field and provide only the configured source text field.
Response
Upsert request accepted.
Was this page helpful?
⌘I