Install agent
curl --request POST \
--url https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/install \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"relation": "editor"
}
'import requests
url = "https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/install"
payload = { "relation": "editor" }
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({relation: 'editor'})
};
fetch('https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/install', 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}/agents/{agent_id}/install",
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([
'relation' => 'editor'
]),
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}/agents/{agent_id}/install"
payload := strings.NewReader("{\n \"relation\": \"editor\"\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}/agents/{agent_id}/install")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"relation\": \"editor\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/install")
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 \"relation\": \"editor\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"provider": {
"organization": "<string>",
"url": "<string>"
},
"version": "<string>",
"capabilities": {
"streaming": true,
"push_notifications": true,
"extensions": [
"<string>"
]
},
"default_input_modes": [
"<string>"
],
"default_output_modes": [
"<string>"
],
"tools": [
"<string>"
],
"skills": [
{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"examples": [
"<string>"
]
}
],
"kind": "source_project_agent",
"can_run": true,
"source_type": "project",
"source_path": "<string>",
"edit_mode": "structured",
"x-veryfront-model": "<string>",
"x-veryfront-url": "<string>",
"model": "<string>",
"url": "<string>",
"suggestions": [
"<string>"
],
"installed_access": {
"grant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"relation": "owner",
"service_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>"
},
"runtime_readiness": {
"status": "ready",
"reason": "<string>",
"runtime_target_kind": "registered_push_service",
"runtime_service_key": "<string>"
},
"avatar_url": "<string>"
}{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"provider": {
"organization": "<string>",
"url": "<string>"
},
"version": "<string>",
"capabilities": {
"streaming": true,
"push_notifications": true,
"extensions": [
"<string>"
]
},
"default_input_modes": [
"<string>"
],
"default_output_modes": [
"<string>"
],
"tools": [
"<string>"
],
"skills": [
{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"examples": [
"<string>"
]
}
],
"kind": "source_project_agent",
"can_run": true,
"source_type": "project",
"source_path": "<string>",
"edit_mode": "structured",
"x-veryfront-model": "<string>",
"x-veryfront-url": "<string>",
"model": "<string>",
"url": "<string>",
"suggestions": [
"<string>"
],
"installed_access": {
"grant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"relation": "owner",
"service_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>"
},
"runtime_readiness": {
"status": "ready",
"reason": "<string>",
"runtime_target_kind": "registered_push_service",
"runtime_service_key": "<string>"
},
"avatar_url": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}{
"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"
}
]
}Install agent
Install agent. Requires project.agents.write.
POST
/
projects
/
{project_reference}
/
agents
/
{agent_id}
/
install
Install agent
curl --request POST \
--url https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/install \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"relation": "editor"
}
'import requests
url = "https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/install"
payload = { "relation": "editor" }
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({relation: 'editor'})
};
fetch('https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/install', 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}/agents/{agent_id}/install",
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([
'relation' => 'editor'
]),
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}/agents/{agent_id}/install"
payload := strings.NewReader("{\n \"relation\": \"editor\"\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}/agents/{agent_id}/install")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"relation\": \"editor\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/install")
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 \"relation\": \"editor\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"provider": {
"organization": "<string>",
"url": "<string>"
},
"version": "<string>",
"capabilities": {
"streaming": true,
"push_notifications": true,
"extensions": [
"<string>"
]
},
"default_input_modes": [
"<string>"
],
"default_output_modes": [
"<string>"
],
"tools": [
"<string>"
],
"skills": [
{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"examples": [
"<string>"
]
}
],
"kind": "source_project_agent",
"can_run": true,
"source_type": "project",
"source_path": "<string>",
"edit_mode": "structured",
"x-veryfront-model": "<string>",
"x-veryfront-url": "<string>",
"model": "<string>",
"url": "<string>",
"suggestions": [
"<string>"
],
"installed_access": {
"grant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"relation": "owner",
"service_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>"
},
"runtime_readiness": {
"status": "ready",
"reason": "<string>",
"runtime_target_kind": "registered_push_service",
"runtime_service_key": "<string>"
},
"avatar_url": "<string>"
}{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"provider": {
"organization": "<string>",
"url": "<string>"
},
"version": "<string>",
"capabilities": {
"streaming": true,
"push_notifications": true,
"extensions": [
"<string>"
]
},
"default_input_modes": [
"<string>"
],
"default_output_modes": [
"<string>"
],
"tools": [
"<string>"
],
"skills": [
{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"examples": [
"<string>"
]
}
],
"kind": "source_project_agent",
"can_run": true,
"source_type": "project",
"source_path": "<string>",
"edit_mode": "structured",
"x-veryfront-model": "<string>",
"x-veryfront-url": "<string>",
"model": "<string>",
"url": "<string>",
"suggestions": [
"<string>"
],
"installed_access": {
"grant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"relation": "owner",
"service_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>"
},
"runtime_readiness": {
"status": "ready",
"reason": "<string>",
"runtime_target_kind": "registered_push_service",
"runtime_service_key": "<string>"
},
"avatar_url": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}{
"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
bearerAuthapiKeyAuth
Use a JWT bearer token or a Veryfront API key in the Authorization header.
Path Parameters
Project slug, UUID, or domain that identifies the project.
Catalog agent identifier
Required string length:
1 - 255Body
application/json
Relation of the agent access grant that installs the catalog agent. Installing creates or reuses an access grant; the agent is not copied.
Available options:
owner, admin, editor, viewer Response
Existing installed agent card
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
source_project_agent, installed_project_agent Available options:
project, catalog_install Available options:
structured, source_only Same value as model. Read model.
Same value as url. Read url.
Model the agent runs on. Null when the agent sets none.
URL of the agent.
Minimum string length:
1Show child attributes
Show child attributes
Show child attributes
Show child attributes
Absolute URL for this agent avatar. Null when no custom avatar has been set.