Skip to main content
PATCH
/
datasets
/
{dataset_id}
/
metadata
/
{metadata_id}
Update Metadata Field
curl --request PATCH \
  --url https://{api_base_url}/datasets/{dataset_id}/metadata/{metadata_id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>"
}
'
import requests

url = "https://{api_base_url}/datasets/{dataset_id}/metadata/{metadata_id}"

payload = { "name": "<string>" }
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({name: '<string>'})
};

fetch('https://{api_base_url}/datasets/{dataset_id}/metadata/{metadata_id}', 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_base_url}/datasets/{dataset_id}/metadata/{metadata_id}",
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([
'name' => '<string>'
]),
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_base_url}/datasets/{dataset_id}/metadata/{metadata_id}"

payload := strings.NewReader("{\n \"name\": \"<string>\"\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_base_url}/datasets/{dataset_id}/metadata/{metadata_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://{api_base_url}/datasets/{dataset_id}/metadata/{metadata_id}")

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 \"name\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "id": "b5c6d7e8-f9a0-1b2c-3d4e-5f6a7b8c9d0e",
  "name": "author",
  "type": "string"
}
{
"status": 400,
"code": "invalid_param",
"message": "Metadata name already exists."
}
{
"status": 403,
"code": "forbidden",
"message": "Dataset api access is not enabled."
}
{
"status": 404,
"code": "not_found",
"message": "Dataset not found."
}

Authorizations

Authorization
string
header
required

Every request authenticates with an API key: Authorization: Bearer {API_KEY}. App endpoints take an app API key; knowledge endpoints take a knowledge base API key (Get Started).

Keep keys server-side; never embed them in client code. Requests with a missing or invalid key fail with HTTP 401 (unauthorized).

Path Parameters

dataset_id
string<uuid>
required

Knowledge base ID. See List Knowledge Bases.

metadata_id
string<uuid>
required

ID of the metadata field to rename. See List Metadata Fields.

Body

application/json
name
string
required

New name for the field. Must be unique among the knowledge base's fields and at most 255 characters.

Response

Metadata field updated successfully.

id
string

Metadata field identifier.

name
string

Metadata field name.

type
string

Metadata field type.