curl --request PUT \
--url https://api.minidesk.ai/v1/knowledge/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"content": "<string>"
}
'import requests
url = "https://api.minidesk.ai/v1/knowledge/{id}"
payload = {
"title": "<string>",
"content": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({title: '<string>', content: '<string>'})
};
fetch('https://api.minidesk.ai/v1/knowledge/{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.minidesk.ai/v1/knowledge/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'content' => '<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.minidesk.ai/v1/knowledge/{id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"content\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.minidesk.ai/v1/knowledge/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"content\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.minidesk.ai/v1/knowledge/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"content\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"kind": "text",
"status": "proposed",
"created_at": "<string>",
"updated_at": "<string>"
}{
"error": {
"code": "validation_failed",
"message": "<string>",
"field": "<string>"
}
}{
"error": {
"code": "validation_failed",
"message": "<string>",
"field": "<string>"
}
}{
"error": {
"code": "validation_failed",
"message": "<string>",
"field": "<string>"
}
}{
"error": {
"code": "validation_failed",
"message": "<string>",
"field": "<string>"
}
}Update a document
Replaces the title and the text. The document goes back to proposed and off, even if an owner had switched it on, because changed text is text nobody has read.
A document added or changed here is proposed: saved switched off, so the AI cannot read it until an owner switches it on in the dashboard. Update and delete only reach text documents added through this API. A document an owner wrote, a FAQ, a file or a website answers 404.
Email addresses, long numbers such as card or phone numbers, IBANs and long tokens are replaced with placeholders like [email] before the text is stored.
curl --request PUT \
--url https://api.minidesk.ai/v1/knowledge/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"content": "<string>"
}
'import requests
url = "https://api.minidesk.ai/v1/knowledge/{id}"
payload = {
"title": "<string>",
"content": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({title: '<string>', content: '<string>'})
};
fetch('https://api.minidesk.ai/v1/knowledge/{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.minidesk.ai/v1/knowledge/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'content' => '<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.minidesk.ai/v1/knowledge/{id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"content\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.minidesk.ai/v1/knowledge/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"content\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.minidesk.ai/v1/knowledge/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"content\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"kind": "text",
"status": "proposed",
"created_at": "<string>",
"updated_at": "<string>"
}{
"error": {
"code": "validation_failed",
"message": "<string>",
"field": "<string>"
}
}{
"error": {
"code": "validation_failed",
"message": "<string>",
"field": "<string>"
}
}{
"error": {
"code": "validation_failed",
"message": "<string>",
"field": "<string>"
}
}{
"error": {
"code": "validation_failed",
"message": "<string>",
"field": "<string>"
}
}Authorizations
An API credential from Settings → API, sent as Authorization: Bearer mdsk_api_.... Issued per workspace and shown once.
Path Parameters
The document's id, as returned when you added it.
Body
Response
The updated document, proposed again.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$text, document, connector, faq, website proposed, crawling, failed, needs_review, inactive, active