Scenario from a report
curl --request POST \
--url https://{space}.{region}.api.niadra.com/v1/scenarios/from-report \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"conversation_id": "<string>",
"description": "<string>",
"name": "<string>",
"turn_ids": [
"<string>"
]
}
'import requests
url = "https://{space}.{region}.api.niadra.com/v1/scenarios/from-report"
payload = {
"conversation_id": "<string>",
"description": "<string>",
"name": "<string>",
"turn_ids": ["<string>"]
}
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({
conversation_id: '<string>',
description: '<string>',
name: '<string>',
turn_ids: ['<string>']
})
};
fetch('https://{space}.{region}.api.niadra.com/v1/scenarios/from-report', 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://{space}.{region}.api.niadra.com/v1/scenarios/from-report",
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([
'conversation_id' => '<string>',
'description' => '<string>',
'name' => '<string>',
'turn_ids' => [
'<string>'
]
]),
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://{space}.{region}.api.niadra.com/v1/scenarios/from-report"
payload := strings.NewReader("{\n \"conversation_id\": \"<string>\",\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"turn_ids\": [\n \"<string>\"\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://{space}.{region}.api.niadra.com/v1/scenarios/from-report")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"conversation_id\": \"<string>\",\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"turn_ids\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{space}.{region}.api.niadra.com/v1/scenarios/from-report")
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 \"conversation_id\": \"<string>\",\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"turn_ids\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"assertions": [
{
"id": "<string>",
"kind": "tool_called",
"args": {},
"suggested": false,
"turn_id": "<string>"
}
],
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"origin": "manual",
"scenario_id": "<string>",
"status": "active",
"turn_ids": [
"<string>"
],
"updated_at": "2023-11-07T05:31:56Z",
"version": 123
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"detail": "<string>",
"request_id": "<string>",
"type": "about:blank"
}Turn records and replay
Scenario from a report
A bug report becomes a scenario: the conversation turns are kept and the assertions suggested from the turns and the words of the description, which is read and never stored.
POST
/
v1
/
scenarios
/
from-report
Scenario from a report
curl --request POST \
--url https://{space}.{region}.api.niadra.com/v1/scenarios/from-report \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"conversation_id": "<string>",
"description": "<string>",
"name": "<string>",
"turn_ids": [
"<string>"
]
}
'import requests
url = "https://{space}.{region}.api.niadra.com/v1/scenarios/from-report"
payload = {
"conversation_id": "<string>",
"description": "<string>",
"name": "<string>",
"turn_ids": ["<string>"]
}
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({
conversation_id: '<string>',
description: '<string>',
name: '<string>',
turn_ids: ['<string>']
})
};
fetch('https://{space}.{region}.api.niadra.com/v1/scenarios/from-report', 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://{space}.{region}.api.niadra.com/v1/scenarios/from-report",
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([
'conversation_id' => '<string>',
'description' => '<string>',
'name' => '<string>',
'turn_ids' => [
'<string>'
]
]),
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://{space}.{region}.api.niadra.com/v1/scenarios/from-report"
payload := strings.NewReader("{\n \"conversation_id\": \"<string>\",\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"turn_ids\": [\n \"<string>\"\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://{space}.{region}.api.niadra.com/v1/scenarios/from-report")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"conversation_id\": \"<string>\",\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"turn_ids\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{space}.{region}.api.niadra.com/v1/scenarios/from-report")
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 \"conversation_id\": \"<string>\",\n \"description\": \"<string>\",\n \"name\": \"<string>\",\n \"turn_ids\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"assertions": [
{
"id": "<string>",
"kind": "tool_called",
"args": {},
"suggested": false,
"turn_id": "<string>"
}
],
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"origin": "manual",
"scenario_id": "<string>",
"status": "active",
"turn_ids": [
"<string>"
],
"updated_at": "2023-11-07T05:31:56Z",
"version": 123
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"detail": "<string>",
"request_id": "<string>",
"type": "about:blank"
}Authorizations
sourceKeypersonToken
nia_sk_...
Headers
Required. Kept 24 hours with the hash of the body: a retry with the same key returns the first answer, and the same key with a different body returns 409 conflict.
Required string length:
1 - 256Body
application/json
A bug report becomes a scenario: its turns are kept and assertions suggested by rule, from the turns and from words of the description. The description is read, never stored.
Response
The scenario, with the suggested assertions.
Show child attributes
Show child attributes
Available options:
manual, report Required string length:
1 - 512Available options:
active, retired Pattern:
^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$Grows with every change of the name, the assertions or the status.

