Upsert a RAG document
curl --request POST \
--url https://api.veryfront.com/projects/{project_reference}/rag/documents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": "<string>",
"type": "<string>",
"metadata": {}
}
'import requests
url = "https://api.veryfront.com/projects/{project_reference}/rag/documents"
payload = {
"title": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": "<string>",
"type": "<string>",
"metadata": {}
}
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({
title: '<string>',
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
source: '<string>',
type: '<string>',
metadata: {}
})
};
fetch('https://api.veryfront.com/projects/{project_reference}/rag/documents', 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.veryfront.com/projects/{project_reference}/rag/documents",
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([
'title' => '<string>',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'source' => '<string>',
'type' => '<string>',
'metadata' => [
]
]),
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.veryfront.com/projects/{project_reference}/rag/documents"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"source\": \"<string>\",\n \"type\": \"<string>\",\n \"metadata\": {}\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.veryfront.com/projects/{project_reference}/rag/documents")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"source\": \"<string>\",\n \"type\": \"<string>\",\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/projects/{project_reference}/rag/documents")
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 \"title\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"source\": \"<string>\",\n \"type\": \"<string>\",\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"document": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"source": "<string>",
"type": "<string>",
"metadata": {},
"created_at": "<string>",
"updated_at": "<string>"
}
}Upsert a RAG document
Create a new project RAG document record or update an existing one by ID.
POST
/
projects
/
{project_reference}
/
rag
/
documents
Upsert a RAG document
curl --request POST \
--url https://api.veryfront.com/projects/{project_reference}/rag/documents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": "<string>",
"type": "<string>",
"metadata": {}
}
'import requests
url = "https://api.veryfront.com/projects/{project_reference}/rag/documents"
payload = {
"title": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": "<string>",
"type": "<string>",
"metadata": {}
}
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({
title: '<string>',
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
source: '<string>',
type: '<string>',
metadata: {}
})
};
fetch('https://api.veryfront.com/projects/{project_reference}/rag/documents', 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.veryfront.com/projects/{project_reference}/rag/documents",
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([
'title' => '<string>',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'source' => '<string>',
'type' => '<string>',
'metadata' => [
]
]),
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.veryfront.com/projects/{project_reference}/rag/documents"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"source\": \"<string>\",\n \"type\": \"<string>\",\n \"metadata\": {}\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.veryfront.com/projects/{project_reference}/rag/documents")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"source\": \"<string>\",\n \"type\": \"<string>\",\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/projects/{project_reference}/rag/documents")
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 \"title\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"source\": \"<string>\",\n \"type\": \"<string>\",\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"document": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"source": "<string>",
"type": "<string>",
"metadata": {},
"created_at": "<string>",
"updated_at": "<string>"
}
}Authorizations
bearerAuthapiKeyAuth
Use a JWT bearer token or a Veryfront API key in the Authorization header.
Path Parameters
Project ID or slug.
Body
application/json
Document title shown to operators and AI agents.
Minimum string length:
1Existing document ID to update. Omit to create a new document.
Optional upstream source reference such as a file path or URL.
Optional document type label used for retrieval metadata.
Optional structured metadata to persist alongside the document.
Show child attributes
Show child attributes
Response
Created or updated RAG document.
Created or updated RAG document.
Show child attributes
Show child attributes
⌘I