Send a follow-up message to a session
Continues the session with a new prompt on the same transcript. The
follow-up runs on the session’s phone (for an agent’s session, the
phone the agent has now). If the session is still running, the
follow-up is queued behind it (queued: true) and runs when the
current run ends. Continuing a finished session is allowed.
Send an Idempotency-Key header to make retries safe: the same key
attaches to the original follow-up instead of sending a second one.
Workspace scope: workspaceId in the body, otherwise the workspace
bound to the API key.
curl --request POST \
--url https://api.lusor.ai/v1/sessions/{id}/continue \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"prompt": "<string>",
"maxDurationSecs": 2,
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: '<string>',
maxDurationSecs: 2,
workspaceId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.lusor.ai/v1/sessions/{id}/continue', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.lusor.ai/v1/sessions/{id}/continue"
payload = {
"prompt": "<string>",
"maxDurationSecs": 2,
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"status": "queued",
"deviceId": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invocationId": "<string>",
"queued": true,
"queuedEventId": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "device_busy",
"currentSessionId": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
Workspace API key, created in the dashboard under Settings → API Keys.
Headers
Caller-provided key for safe retries. The same key in the same workspace yields the same run id, and a duplicate POST within the retention window returns the original run instead of starting a second one.
256Path Parameters
Session ID.
Body
Response
Follow-up accepted, dispatched or queued
The session id (unchanged).
queued The follow-up's invocation. Absent when an Idempotency-Key
matched a follow-up that has already run.
true when the follow-up waits behind the session's current run.
Cancel it with DELETE /v1/sessions/{id}/queue/{invocationId}.
Id of the followup_queued event, when queued is true.
Was this page helpful?
curl --request POST \
--url https://api.lusor.ai/v1/sessions/{id}/continue \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"prompt": "<string>",
"maxDurationSecs": 2,
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: '<string>',
maxDurationSecs: 2,
workspaceId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.lusor.ai/v1/sessions/{id}/continue', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.lusor.ai/v1/sessions/{id}/continue"
payload = {
"prompt": "<string>",
"maxDurationSecs": 2,
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"status": "queued",
"deviceId": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invocationId": "<string>",
"queued": true,
"queuedEventId": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "device_busy",
"currentSessionId": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}
