Chat with knowledge base
curl --request GET \
--url https://api.getpoppy.ai/api/conversation/{conversationId} \
--header 'api_key: <api-key>'import requests
url = "https://api.getpoppy.ai/api/conversation/{conversationId}"
headers = {"api_key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {api_key: '<api-key>'}};
fetch('https://api.getpoppy.ai/api/conversation/{conversationId}', 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.getpoppy.ai/api/conversation/{conversationId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"api_key: <api-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"
"net/http"
"io"
)
func main() {
url := "https://api.getpoppy.ai/api/conversation/{conversationId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api_key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getpoppy.ai/api/conversation/{conversationId}")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getpoppy.ai/api/conversation/{conversationId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"text": "I apologize for the confusion. According to the information you provided earlier, your favorite number is 444.",
"credits_used": 0.02885,
"credits_remaining": 1853.71700
}
Conversation Endpoints
Chat with knowledge base
Continue an existing conversation thread with your assistant
GET
/
api
/
conversation
/
{conversationId}
Chat with knowledge base
curl --request GET \
--url https://api.getpoppy.ai/api/conversation/{conversationId} \
--header 'api_key: <api-key>'import requests
url = "https://api.getpoppy.ai/api/conversation/{conversationId}"
headers = {"api_key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {api_key: '<api-key>'}};
fetch('https://api.getpoppy.ai/api/conversation/{conversationId}', 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.getpoppy.ai/api/conversation/{conversationId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"api_key: <api-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"
"net/http"
"io"
)
func main() {
url := "https://api.getpoppy.ai/api/conversation/{conversationId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api_key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getpoppy.ai/api/conversation/{conversationId}")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getpoppy.ai/api/conversation/{conversationId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"text": "I apologize for the confusion. According to the information you provided earlier, your favorite number is 444.",
"credits_used": 0.02885,
"credits_remaining": 1853.71700
}
This endpoint lets you continue an ongoing conversation with your assistant, keeping the context from previous messages.
URL Parameters
string
required
The ID of the to continue the conversation with
Query Parameters
string
Your API key for authentication
string
required
The ID of the board to use for the conversation
string
required
The ID of the chat node within the board
string
required
The follow-up question or prompt for the AI
string
default:"claude-sonnet-5"
The AI model to use. Allowed values: claude-sonnet-5, claude-sonnet-4-6, claude-sonnet-4-5,
o3-mini, gpt-4o, grok-2-1212, gpt-4o-mini
boolean
Whether save the answer in the chat
string
default:false
Force the AI response to use plain text instead of markdown. Allowed values are “true” or
“active”. Any other value will disable plaintext.
string
default:false
Return the answer as a stream instead of a JSON. Allowed values are “true” or “active”. Any other
value will disable streaming.
string
default:false
When streaming is enabled, set this to “true” or “active” to receive credit usage information as a final chunk
in the stream. The usage chunk will be appended after the
finish event with the format:
{"type":"usage","credits_used":0.123}. This is similar to OpenAI’s stream_options.include_usage parameter.string
default:" "
Additional information to provide as context to the AI
string
Optional user identifier
string
Optional source of the request
Response
string
The AI-generated response to the prompt
number
The number of credits used for this request
number
The total number of credits remaining in your account
{
"text": "I apologize for the confusion. According to the information you provided earlier, your favorite number is 444.",
"credits_used": 0.02885,
"credits_remaining": 1853.71700
}
This endpoint is functionally equivalent to the POST /api/conversation/ endpoint,
but allows for easier testing and integration in contexts where POST requests are difficult to
implement.
