curl --request POST \
--url https://api.veryfront.com/projects/{project_reference}/knowledge/catalog \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"lookup_target": {
"kind": "preview_branch",
"branch_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"caller_selector": true,
"filters": {
"search": "<string>",
"type": "<string>",
"tags": [
"<string>"
]
},
"pagination": {
"limit": 50,
"cursor": "<string>"
}
}
'import requests
url = "https://api.veryfront.com/projects/{project_reference}/knowledge/catalog"
payload = {
"lookup_target": {
"kind": "preview_branch",
"branch_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"caller_selector": True,
"filters": {
"search": "<string>",
"type": "<string>",
"tags": ["<string>"]
},
"pagination": {
"limit": 50,
"cursor": "<string>"
}
}
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({
lookup_target: {kind: 'preview_branch', branch_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
caller_selector: true,
filters: {search: '<string>', type: '<string>', tags: ['<string>']},
pagination: {limit: 50, cursor: '<string>'}
})
};
fetch('https://api.veryfront.com/projects/{project_reference}/knowledge/catalog', 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}/knowledge/catalog",
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([
'lookup_target' => [
'kind' => 'preview_branch',
'branch_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'caller_selector' => true,
'filters' => [
'search' => '<string>',
'type' => '<string>',
'tags' => [
'<string>'
]
],
'pagination' => [
'limit' => 50,
'cursor' => '<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.veryfront.com/projects/{project_reference}/knowledge/catalog"
payload := strings.NewReader("{\n \"lookup_target\": {\n \"kind\": \"preview_branch\",\n \"branch_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"caller_selector\": true,\n \"filters\": {\n \"search\": \"<string>\",\n \"type\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ]\n },\n \"pagination\": {\n \"limit\": 50,\n \"cursor\": \"<string>\"\n }\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}/knowledge/catalog")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"lookup_target\": {\n \"kind\": \"preview_branch\",\n \"branch_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"caller_selector\": true,\n \"filters\": {\n \"search\": \"<string>\",\n \"type\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ]\n },\n \"pagination\": {\n \"limit\": 50,\n \"cursor\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/projects/{project_reference}/knowledge/catalog")
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 \"lookup_target\": {\n \"kind\": \"preview_branch\",\n \"branch_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"caller_selector\": true,\n \"filters\": {\n \"search\": \"<string>\",\n \"type\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ]\n },\n \"pagination\": {\n \"limit\": 50,\n \"cursor\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"file_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"path": "<string>",
"title": "<string>",
"type": "<string>",
"tags": [
"<string>"
],
"reserved": true,
"reserved_kind": "<string>",
"malformed_reason": "<string>",
"links": {
"document_edges": 1,
"external_links": 1,
"broken_links": 1
}
}
],
"total": 1,
"returned": 1,
"page_info": {
"self": "<string>",
"first": null,
"next": "<string>",
"prev": null
}
}{
"type": "https://api.veryfront.com/errors/validation-failed",
"title": "Validation Failed",
"status": 400,
"cause": "schedule_concurrency_forbidden",
"idempotency": {
"state": "in_progress",
"operation": "<string>",
"retryable": true,
"retry_after_seconds": 1,
"expires_at": "<string>",
"recovery": {
"available": true,
"description": "<string>",
"resource_url": "<string>"
}
},
"code": "RUN_INVALID_INPUT",
"detail": "The 'email' field must be a valid email address",
"instance": "/projects/my-project/members",
"slug": "validation-failed",
"category": "VALIDATION",
"suggestion": "Check the request body and query parameters against the API documentation.",
"errors": [
{
"field": "email",
"message": "Invalid email format",
"code": "INVALID_FORMAT"
}
]
}{
"type": "https://api.veryfront.com/errors/validation-failed",
"title": "Validation Failed",
"status": 400,
"cause": "schedule_concurrency_forbidden",
"idempotency": {
"state": "in_progress",
"operation": "<string>",
"retryable": true,
"retry_after_seconds": 1,
"expires_at": "<string>",
"recovery": {
"available": true,
"description": "<string>",
"resource_url": "<string>"
}
},
"code": "RUN_INVALID_INPUT",
"detail": "The 'email' field must be a valid email address",
"instance": "/projects/my-project/members",
"slug": "validation-failed",
"category": "VALIDATION",
"suggestion": "Check the request body and query parameters against the API documentation.",
"errors": [
{
"field": "email",
"message": "Invalid email format",
"code": "INVALID_FORMAT"
}
]
}{
"type": "https://api.veryfront.com/errors/validation-failed",
"title": "Validation Failed",
"status": 400,
"cause": "schedule_concurrency_forbidden",
"idempotency": {
"state": "in_progress",
"operation": "<string>",
"retryable": true,
"retry_after_seconds": 1,
"expires_at": "<string>",
"recovery": {
"available": true,
"description": "<string>",
"resource_url": "<string>"
}
},
"code": "RUN_INVALID_INPUT",
"detail": "The 'email' field must be a valid email address",
"instance": "/projects/my-project/members",
"slug": "validation-failed",
"category": "VALIDATION",
"suggestion": "Check the request body and query parameters against the API documentation.",
"errors": [
{
"field": "email",
"message": "Invalid email format",
"code": "INVALID_FORMAT"
}
]
}{
"type": "https://api.veryfront.com/errors/validation-failed",
"title": "Validation Failed",
"status": 400,
"cause": "schedule_concurrency_forbidden",
"idempotency": {
"state": "in_progress",
"operation": "<string>",
"retryable": true,
"retry_after_seconds": 1,
"expires_at": "<string>",
"recovery": {
"available": true,
"description": "<string>",
"resource_url": "<string>"
}
},
"code": "RUN_INVALID_INPUT",
"detail": "The 'email' field must be a valid email address",
"instance": "/projects/my-project/members",
"slug": "validation-failed",
"category": "VALIDATION",
"suggestion": "Check the request body and query parameters against the API documentation.",
"errors": [
{
"field": "email",
"message": "Invalid email format",
"code": "INVALID_FORMAT"
}
]
}{
"type": "https://api.veryfront.com/errors/validation-failed",
"title": "Validation Failed",
"status": 400,
"cause": "schedule_concurrency_forbidden",
"idempotency": {
"state": "in_progress",
"operation": "<string>",
"retryable": true,
"retry_after_seconds": 1,
"expires_at": "<string>",
"recovery": {
"available": true,
"description": "<string>",
"resource_url": "<string>"
}
},
"code": "RUN_INVALID_INPUT",
"detail": "The 'email' field must be a valid email address",
"instance": "/projects/my-project/members",
"slug": "validation-failed",
"category": "VALIDATION",
"suggestion": "Check the request body and query parameters against the API documentation.",
"errors": [
{
"field": "email",
"message": "Invalid email format",
"code": "INVALID_FORMAT"
}
]
}List knowledge files
List knowledge files.
curl --request POST \
--url https://api.veryfront.com/projects/{project_reference}/knowledge/catalog \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"lookup_target": {
"kind": "preview_branch",
"branch_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"caller_selector": true,
"filters": {
"search": "<string>",
"type": "<string>",
"tags": [
"<string>"
]
},
"pagination": {
"limit": 50,
"cursor": "<string>"
}
}
'import requests
url = "https://api.veryfront.com/projects/{project_reference}/knowledge/catalog"
payload = {
"lookup_target": {
"kind": "preview_branch",
"branch_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"caller_selector": True,
"filters": {
"search": "<string>",
"type": "<string>",
"tags": ["<string>"]
},
"pagination": {
"limit": 50,
"cursor": "<string>"
}
}
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({
lookup_target: {kind: 'preview_branch', branch_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
caller_selector: true,
filters: {search: '<string>', type: '<string>', tags: ['<string>']},
pagination: {limit: 50, cursor: '<string>'}
})
};
fetch('https://api.veryfront.com/projects/{project_reference}/knowledge/catalog', 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}/knowledge/catalog",
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([
'lookup_target' => [
'kind' => 'preview_branch',
'branch_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'caller_selector' => true,
'filters' => [
'search' => '<string>',
'type' => '<string>',
'tags' => [
'<string>'
]
],
'pagination' => [
'limit' => 50,
'cursor' => '<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.veryfront.com/projects/{project_reference}/knowledge/catalog"
payload := strings.NewReader("{\n \"lookup_target\": {\n \"kind\": \"preview_branch\",\n \"branch_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"caller_selector\": true,\n \"filters\": {\n \"search\": \"<string>\",\n \"type\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ]\n },\n \"pagination\": {\n \"limit\": 50,\n \"cursor\": \"<string>\"\n }\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}/knowledge/catalog")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"lookup_target\": {\n \"kind\": \"preview_branch\",\n \"branch_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"caller_selector\": true,\n \"filters\": {\n \"search\": \"<string>\",\n \"type\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ]\n },\n \"pagination\": {\n \"limit\": 50,\n \"cursor\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/projects/{project_reference}/knowledge/catalog")
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 \"lookup_target\": {\n \"kind\": \"preview_branch\",\n \"branch_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"caller_selector\": true,\n \"filters\": {\n \"search\": \"<string>\",\n \"type\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ]\n },\n \"pagination\": {\n \"limit\": 50,\n \"cursor\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"file_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"path": "<string>",
"title": "<string>",
"type": "<string>",
"tags": [
"<string>"
],
"reserved": true,
"reserved_kind": "<string>",
"malformed_reason": "<string>",
"links": {
"document_edges": 1,
"external_links": 1,
"broken_links": 1
}
}
],
"total": 1,
"returned": 1,
"page_info": {
"self": "<string>",
"first": null,
"next": "<string>",
"prev": null
}
}{
"type": "https://api.veryfront.com/errors/validation-failed",
"title": "Validation Failed",
"status": 400,
"cause": "schedule_concurrency_forbidden",
"idempotency": {
"state": "in_progress",
"operation": "<string>",
"retryable": true,
"retry_after_seconds": 1,
"expires_at": "<string>",
"recovery": {
"available": true,
"description": "<string>",
"resource_url": "<string>"
}
},
"code": "RUN_INVALID_INPUT",
"detail": "The 'email' field must be a valid email address",
"instance": "/projects/my-project/members",
"slug": "validation-failed",
"category": "VALIDATION",
"suggestion": "Check the request body and query parameters against the API documentation.",
"errors": [
{
"field": "email",
"message": "Invalid email format",
"code": "INVALID_FORMAT"
}
]
}{
"type": "https://api.veryfront.com/errors/validation-failed",
"title": "Validation Failed",
"status": 400,
"cause": "schedule_concurrency_forbidden",
"idempotency": {
"state": "in_progress",
"operation": "<string>",
"retryable": true,
"retry_after_seconds": 1,
"expires_at": "<string>",
"recovery": {
"available": true,
"description": "<string>",
"resource_url": "<string>"
}
},
"code": "RUN_INVALID_INPUT",
"detail": "The 'email' field must be a valid email address",
"instance": "/projects/my-project/members",
"slug": "validation-failed",
"category": "VALIDATION",
"suggestion": "Check the request body and query parameters against the API documentation.",
"errors": [
{
"field": "email",
"message": "Invalid email format",
"code": "INVALID_FORMAT"
}
]
}{
"type": "https://api.veryfront.com/errors/validation-failed",
"title": "Validation Failed",
"status": 400,
"cause": "schedule_concurrency_forbidden",
"idempotency": {
"state": "in_progress",
"operation": "<string>",
"retryable": true,
"retry_after_seconds": 1,
"expires_at": "<string>",
"recovery": {
"available": true,
"description": "<string>",
"resource_url": "<string>"
}
},
"code": "RUN_INVALID_INPUT",
"detail": "The 'email' field must be a valid email address",
"instance": "/projects/my-project/members",
"slug": "validation-failed",
"category": "VALIDATION",
"suggestion": "Check the request body and query parameters against the API documentation.",
"errors": [
{
"field": "email",
"message": "Invalid email format",
"code": "INVALID_FORMAT"
}
]
}{
"type": "https://api.veryfront.com/errors/validation-failed",
"title": "Validation Failed",
"status": 400,
"cause": "schedule_concurrency_forbidden",
"idempotency": {
"state": "in_progress",
"operation": "<string>",
"retryable": true,
"retry_after_seconds": 1,
"expires_at": "<string>",
"recovery": {
"available": true,
"description": "<string>",
"resource_url": "<string>"
}
},
"code": "RUN_INVALID_INPUT",
"detail": "The 'email' field must be a valid email address",
"instance": "/projects/my-project/members",
"slug": "validation-failed",
"category": "VALIDATION",
"suggestion": "Check the request body and query parameters against the API documentation.",
"errors": [
{
"field": "email",
"message": "Invalid email format",
"code": "INVALID_FORMAT"
}
]
}{
"type": "https://api.veryfront.com/errors/validation-failed",
"title": "Validation Failed",
"status": 400,
"cause": "schedule_concurrency_forbidden",
"idempotency": {
"state": "in_progress",
"operation": "<string>",
"retryable": true,
"retry_after_seconds": 1,
"expires_at": "<string>",
"recovery": {
"available": true,
"description": "<string>",
"resource_url": "<string>"
}
},
"code": "RUN_INVALID_INPUT",
"detail": "The 'email' field must be a valid email address",
"instance": "/projects/my-project/members",
"slug": "validation-failed",
"category": "VALIDATION",
"suggestion": "Check the request body and query parameters against the API documentation.",
"errors": [
{
"field": "email",
"message": "Invalid email format",
"code": "INVALID_FORMAT"
}
]
}Authorizations
Use a JWT bearer token or a Veryfront API key in the Authorization header.
Path Parameters
Project whose knowledge is selected. Ordinary callers require project.knowledge.read. A run-bound MCP service credential instead must match the persisted run's project and agent plus its actor or runtime transport binding; its effective sealed authority must grant the invoked tool and a knowledge selector. On project-scoped MCP endpoints, the scoped project supplies this value when omitted.
Body
Optional. Omit to search the main preview branch (the default). Set this to target another preview branch, a deployed environment, or a published release; unresolved targets are returned as not found.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Caller-selected document scope. Source membership, persisted run knowledge policy and this selector are intersected before counting or paging. Results include visible knowledge Markdown files with title, type, tags and link counts. Accepts a boolean, a path pattern, a list of patterns, or a {pattern: boolean} map. Patterns are relative; at most 1024 entries.
Show child attributes
Show child attributes
Show child attributes
Show child attributes