{
"values": {
"approved": true
}
}curl --request POST \
--url https://api.veryfront.com/input-requests/{input_request_id}/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"values": {
"approved": true
}
}
'import requests
url = "https://api.veryfront.com/input-requests/{input_request_id}/responses"
payload = { "values": { "approved": True } }
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({values: {approved: true}})
};
fetch('https://api.veryfront.com/input-requests/{input_request_id}/responses', 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/input-requests/{input_request_id}/responses",
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([
'values' => [
'approved' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$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/input-requests/{input_request_id}/responses"
payload := strings.NewReader("{\n \"values\": {\n \"approved\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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/input-requests/{input_request_id}/responses")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"values\": {\n \"approved\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/input-requests/{input_request_id}/responses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"values\": {\n \"approved\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"input_request_id": "00000000-0000-4000-8000-000000000001",
"project_id": "00000000-0000-4000-8000-000000000001",
"run_id": "11111111-1111-4111-8111-111111111111",
"title": "Approve the result",
"fields": [
{
"name": "approved",
"type": "confirm",
"label": "Approve the result?",
"required": true
}
],
"status": "submitted",
"requested_responder_type": "human",
"response": {
"response_id": "00000000-0000-4000-8000-000000000002",
"values": {
"approved": true
},
"actor": {
"type": "user",
"id": "user_example"
},
"created_at": "2026-10-02T10:00:00Z"
},
"created_at": "2026-10-02T10:00:00Z",
"resolved_at": "2026-10-02T10:00:00Z"
}{
"type": "<string>",
"title": "<string>",
"status": 400,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 401,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 403,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 404,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 409,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 413,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 429,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 503,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}Respond to input request
Respond to input request.
{
"values": {
"approved": true
}
}curl --request POST \
--url https://api.veryfront.com/input-requests/{input_request_id}/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"values": {
"approved": true
}
}
'import requests
url = "https://api.veryfront.com/input-requests/{input_request_id}/responses"
payload = { "values": { "approved": True } }
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({values: {approved: true}})
};
fetch('https://api.veryfront.com/input-requests/{input_request_id}/responses', 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/input-requests/{input_request_id}/responses",
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([
'values' => [
'approved' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$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/input-requests/{input_request_id}/responses"
payload := strings.NewReader("{\n \"values\": {\n \"approved\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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/input-requests/{input_request_id}/responses")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"values\": {\n \"approved\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/input-requests/{input_request_id}/responses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"values\": {\n \"approved\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"input_request_id": "00000000-0000-4000-8000-000000000001",
"project_id": "00000000-0000-4000-8000-000000000001",
"run_id": "11111111-1111-4111-8111-111111111111",
"title": "Approve the result",
"fields": [
{
"name": "approved",
"type": "confirm",
"label": "Approve the result?",
"required": true
}
],
"status": "submitted",
"requested_responder_type": "human",
"response": {
"response_id": "00000000-0000-4000-8000-000000000002",
"values": {
"approved": true
},
"actor": {
"type": "user",
"id": "user_example"
},
"created_at": "2026-10-02T10:00:00Z"
},
"created_at": "2026-10-02T10:00:00Z",
"resolved_at": "2026-10-02T10:00:00Z"
}{
"type": "<string>",
"title": "<string>",
"status": 400,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 401,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 403,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 404,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 409,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 413,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 429,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 503,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}Authorizations
Use a JWT bearer token or a Veryfront API key in the Authorization header.
Headers
1 - 128Path Parameters
Input request to answer. Every caller must match the requested responder role. Unbound callers need editor access to the run owner and project.runs.write. A bound runtime credential instead must match the exact run and needs conversations:write, viewer access to the run owner, and project.runs.read. A linked conversation also requires editor access. A fresh response to an already-resolved request returns 409 (submission, cancellation and expiry compete atomically). An authorized retry of the identical request with the same idempotency key returns its stored result.
Body
Submitted values keyed by field name; password values are omitted from reads.
Show child attributes
Show child attributes
Response
InputRequest
Unique input request ID.
Project inherited from the run.
Run waiting for this input.
Question or decision shown to the responder.
1 - 1000Fields the responder can fill in.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
Show child attributes
Show child attributes
Current resolution state.
open, submitted, cancelled, expired Required responder role; the authenticated actor identifies who actually responded.
human, agent, system Submitted response, or null before submission or after cancellation or expiry.
Show child attributes
Show child attributes
When the request was created.
When the request expires.
When the request was submitted, cancelled or expired.
Tool invocation waiting for the response.
1 - 128Conversation inherited from the run.
Additional instructions for the responder.
Additional resource metadata.
Show child attributes
Show child attributes