Forms
Form - Chat
POST
/
forms
/
{formId}
/
chat
Chat de formulario público
curl --request POST \
--url https://app.braviloai.com/api/forms/{formId}/chat \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"streaming": false,
"conversationId": "<string>",
"visitorId": "<string>"
}
'import requests
url = "https://app.braviloai.com/api/forms/{formId}/chat"
payload = {
"query": "<string>",
"streaming": False,
"conversationId": "<string>",
"visitorId": "<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({
query: '<string>',
streaming: false,
conversationId: '<string>',
visitorId: '<string>'
})
};
fetch('https://app.braviloai.com/api/forms/{formId}/chat', 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://app.braviloai.com/api/forms/{formId}/chat",
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([
'query' => '<string>',
'streaming' => false,
'conversationId' => '<string>',
'visitorId' => '<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://app.braviloai.com/api/forms/{formId}/chat"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"streaming\": false,\n \"conversationId\": \"<string>\",\n \"visitorId\": \"<string>\"\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://app.braviloai.com/api/forms/{formId}/chat")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"streaming\": false,\n \"conversationId\": \"<string>\",\n \"visitorId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.braviloai.com/api/forms/{formId}/chat")
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 \"query\": \"<string>\",\n \"streaming\": false,\n \"conversationId\": \"<string>\",\n \"visitorId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyInteractúa con un formulario conversacional. El formulario guía al usuario pregunta por pregunta según un JSON Schema configurado.
Público por diseño. No requiere autenticación.
Streaming SSE
Cuandostreaming está habilitado, el endpoint devuelve eventos:
answer– Fragmentos de texto de la preguntametadata– Estado actual (currentField,isValid)endpoint_response– Respuesta completa
const response = await fetch(`https://app.braviloai.com/api/forms/${formId}/chat`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: 'Mi nombre es Juan Pérez',
streaming: true,
conversationId,
visitorId,
}),
});
const reader = response.body.getReader();
// Leer stream SSE...
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID del formulario
Body
application/json
Response
200
Stream SSE o respuesta completa del formulario
⌘I
Chat de formulario público
curl --request POST \
--url https://app.braviloai.com/api/forms/{formId}/chat \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"streaming": false,
"conversationId": "<string>",
"visitorId": "<string>"
}
'import requests
url = "https://app.braviloai.com/api/forms/{formId}/chat"
payload = {
"query": "<string>",
"streaming": False,
"conversationId": "<string>",
"visitorId": "<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({
query: '<string>',
streaming: false,
conversationId: '<string>',
visitorId: '<string>'
})
};
fetch('https://app.braviloai.com/api/forms/{formId}/chat', 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://app.braviloai.com/api/forms/{formId}/chat",
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([
'query' => '<string>',
'streaming' => false,
'conversationId' => '<string>',
'visitorId' => '<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://app.braviloai.com/api/forms/{formId}/chat"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"streaming\": false,\n \"conversationId\": \"<string>\",\n \"visitorId\": \"<string>\"\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://app.braviloai.com/api/forms/{formId}/chat")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"streaming\": false,\n \"conversationId\": \"<string>\",\n \"visitorId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.braviloai.com/api/forms/{formId}/chat")
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 \"query\": \"<string>\",\n \"streaming\": false,\n \"conversationId\": \"<string>\",\n \"visitorId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body
