Sends the next turn of an agent session. The server binds the session’s stored continuation token, so the client-provided one is ignored. Answer input.requested events (tool approvals, questions) from the event stream via inputResponses.
POST
https://api.usenotra.com
/
v2
/
eve
/
v1
/
session
/
{sessionId}
Send a follow-up message or answer a pending input request
curl --request POST \
--url https://api.usenotra.com/v2/eve/v1/session/{sessionId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"continuationToken": "<string>",
"message": "<string>",
"inputResponses": [
{
"requestId": "<string>",
"optionId": "<string>"
}
]
}
'import requests
url = "https://api.usenotra.com/v2/eve/v1/session/{sessionId}"
payload = {
"continuationToken": "<string>",
"message": "<string>",
"inputResponses": [
{
"requestId": "<string>",
"optionId": "<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({
continuationToken: '<string>',
message: '<string>',
inputResponses: [{requestId: '<string>', optionId: '<string>'}]
})
};
fetch('https://api.usenotra.com/v2/eve/v1/session/{sessionId}', 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.usenotra.com/v2/eve/v1/session/{sessionId}",
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([
'continuationToken' => '<string>',
'message' => '<string>',
'inputResponses' => [
[
'requestId' => '<string>',
'optionId' => '<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.usenotra.com/v2/eve/v1/session/{sessionId}"
payload := strings.NewReader("{\n \"continuationToken\": \"<string>\",\n \"message\": \"<string>\",\n \"inputResponses\": [\n {\n \"requestId\": \"<string>\",\n \"optionId\": \"<string>\"\n }\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.usenotra.com/v2/eve/v1/session/{sessionId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"continuationToken\": \"<string>\",\n \"message\": \"<string>\",\n \"inputResponses\": [\n {\n \"requestId\": \"<string>\",\n \"optionId\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.usenotra.com/v2/eve/v1/session/{sessionId}")
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 \"continuationToken\": \"<string>\",\n \"message\": \"<string>\",\n \"inputResponses\": [\n {\n \"requestId\": \"<string>\",\n \"optionId\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}{
"error": "<string>",
"limit": 2,
"remaining": 1,
"reset": 123
}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}Authorizations
Send your API key in the Authorization header as Bearer API_KEY.
Path Parameters
Minimum string length:
1Body
application/json
The continuation token returned by the previous request for this session.
Minimum string length:
1The next user message. Omit when only answering a pending input request.
Required string length:
1 - 200000Answers to pending input.requested events (tool approvals, questions) from the event stream.
Show child attributes
Show child attributes
Response
Upstream eve response with the next continuation token for this session.
The response is of type object.
Last modified on September 18, 2026
Was this page helpful?
⌘I
Send a follow-up message or answer a pending input request
curl --request POST \
--url https://api.usenotra.com/v2/eve/v1/session/{sessionId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"continuationToken": "<string>",
"message": "<string>",
"inputResponses": [
{
"requestId": "<string>",
"optionId": "<string>"
}
]
}
'import requests
url = "https://api.usenotra.com/v2/eve/v1/session/{sessionId}"
payload = {
"continuationToken": "<string>",
"message": "<string>",
"inputResponses": [
{
"requestId": "<string>",
"optionId": "<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({
continuationToken: '<string>',
message: '<string>',
inputResponses: [{requestId: '<string>', optionId: '<string>'}]
})
};
fetch('https://api.usenotra.com/v2/eve/v1/session/{sessionId}', 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.usenotra.com/v2/eve/v1/session/{sessionId}",
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([
'continuationToken' => '<string>',
'message' => '<string>',
'inputResponses' => [
[
'requestId' => '<string>',
'optionId' => '<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.usenotra.com/v2/eve/v1/session/{sessionId}"
payload := strings.NewReader("{\n \"continuationToken\": \"<string>\",\n \"message\": \"<string>\",\n \"inputResponses\": [\n {\n \"requestId\": \"<string>\",\n \"optionId\": \"<string>\"\n }\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.usenotra.com/v2/eve/v1/session/{sessionId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"continuationToken\": \"<string>\",\n \"message\": \"<string>\",\n \"inputResponses\": [\n {\n \"requestId\": \"<string>\",\n \"optionId\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.usenotra.com/v2/eve/v1/session/{sessionId}")
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 \"continuationToken\": \"<string>\",\n \"message\": \"<string>\",\n \"inputResponses\": [\n {\n \"requestId\": \"<string>\",\n \"optionId\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}{
"error": "<string>",
"limit": 2,
"remaining": 1,
"reset": 123
}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}{
"error": "<string>",
"code": "<string>",
"recovery": "<string>"
}