curl --request POST \
--url https://api.datalinks.com/api/v1/query/ask \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"username": "<string>",
"namespace": "<string>",
"query": "What do llamas drink to cool themselves down?",
"helperPrompt": "You're a prophet of the alpacalypse. Your task is to spit the word!",
"model": "<string>",
"provider": "<string>",
"models": {
"plan": {
"model": "<string>",
"provider": "<string>"
},
"query": {
"model": "<string>",
"provider": "<string>"
},
"answer": {
"model": "<string>",
"provider": "<string>"
}
},
"conversationId": "<string>",
"webSearch": true,
"callerContext": {
"turns": [
{
"text": "<string>",
"agentName": "<string>"
}
],
"facts": [
{
"label": "tenant",
"value": "acme",
"source": "<string>"
}
]
}
}
EOFimport requests
url = "https://api.datalinks.com/api/v1/query/ask"
payload = {
"username": "<string>",
"namespace": "<string>",
"query": "What do llamas drink to cool themselves down?",
"helperPrompt": "You're a prophet of the alpacalypse. Your task is to spit the word!",
"model": "<string>",
"provider": "<string>",
"models": {
"plan": {
"model": "<string>",
"provider": "<string>"
},
"query": {
"model": "<string>",
"provider": "<string>"
},
"answer": {
"model": "<string>",
"provider": "<string>"
}
},
"conversationId": "<string>",
"webSearch": True,
"callerContext": {
"turns": [
{
"text": "<string>",
"agentName": "<string>"
}
],
"facts": [
{
"label": "tenant",
"value": "acme",
"source": "<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({
username: '<string>',
namespace: '<string>',
query: 'What do llamas drink to cool themselves down?',
helperPrompt: 'You\'re a prophet of the alpacalypse. Your task is to spit the word!',
model: '<string>',
provider: '<string>',
models: {
plan: {model: '<string>', provider: '<string>'},
query: {model: '<string>', provider: '<string>'},
answer: {model: '<string>', provider: '<string>'}
},
conversationId: '<string>',
webSearch: true,
callerContext: {
turns: [{text: '<string>', agentName: '<string>'}],
facts: [{label: 'tenant', value: 'acme', source: '<string>'}]
}
})
};
fetch('https://api.datalinks.com/api/v1/query/ask', 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.datalinks.com/api/v1/query/ask",
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([
'username' => '<string>',
'namespace' => '<string>',
'query' => 'What do llamas drink to cool themselves down?',
'helperPrompt' => 'You\'re a prophet of the alpacalypse. Your task is to spit the word!',
'model' => '<string>',
'provider' => '<string>',
'models' => [
'plan' => [
'model' => '<string>',
'provider' => '<string>'
],
'query' => [
'model' => '<string>',
'provider' => '<string>'
],
'answer' => [
'model' => '<string>',
'provider' => '<string>'
]
],
'conversationId' => '<string>',
'webSearch' => true,
'callerContext' => [
'turns' => [
[
'text' => '<string>',
'agentName' => '<string>'
]
],
'facts' => [
[
'label' => 'tenant',
'value' => 'acme',
'source' => '<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.datalinks.com/api/v1/query/ask"
payload := strings.NewReader("{\n \"username\": \"<string>\",\n \"namespace\": \"<string>\",\n \"query\": \"What do llamas drink to cool themselves down?\",\n \"helperPrompt\": \"You're a prophet of the alpacalypse. Your task is to spit the word!\",\n \"model\": \"<string>\",\n \"provider\": \"<string>\",\n \"models\": {\n \"plan\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n },\n \"query\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n },\n \"answer\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n }\n },\n \"conversationId\": \"<string>\",\n \"webSearch\": true,\n \"callerContext\": {\n \"turns\": [\n {\n \"text\": \"<string>\",\n \"agentName\": \"<string>\"\n }\n ],\n \"facts\": [\n {\n \"label\": \"tenant\",\n \"value\": \"acme\",\n \"source\": \"<string>\"\n }\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.datalinks.com/api/v1/query/ask")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"username\": \"<string>\",\n \"namespace\": \"<string>\",\n \"query\": \"What do llamas drink to cool themselves down?\",\n \"helperPrompt\": \"You're a prophet of the alpacalypse. Your task is to spit the word!\",\n \"model\": \"<string>\",\n \"provider\": \"<string>\",\n \"models\": {\n \"plan\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n },\n \"query\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n },\n \"answer\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n }\n },\n \"conversationId\": \"<string>\",\n \"webSearch\": true,\n \"callerContext\": {\n \"turns\": [\n {\n \"text\": \"<string>\",\n \"agentName\": \"<string>\"\n }\n ],\n \"facts\": [\n {\n \"label\": \"tenant\",\n \"value\": \"acme\",\n \"source\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.datalinks.com/api/v1/query/ask")
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 \"username\": \"<string>\",\n \"namespace\": \"<string>\",\n \"query\": \"What do llamas drink to cool themselves down?\",\n \"helperPrompt\": \"You're a prophet of the alpacalypse. Your task is to spit the word!\",\n \"model\": \"<string>\",\n \"provider\": \"<string>\",\n \"models\": {\n \"plan\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n },\n \"query\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n },\n \"answer\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n }\n },\n \"conversationId\": \"<string>\",\n \"webSearch\": true,\n \"callerContext\": {\n \"turns\": [\n {\n \"text\": \"<string>\",\n \"agentName\": \"<string>\"\n }\n ],\n \"facts\": [\n {\n \"label\": \"tenant\",\n \"value\": \"acme\",\n \"source\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"steps": [
"<string>"
],
"reasoning": "<string>"
}{
"error_code": "UNAUTHORIZED",
"message": "Missing authentication token",
"error_message": "",
"sub_errors": [
{
"code": "<string>",
"message": "<string>"
}
]
}Run AutoRAG agent with streaming response
Uses the AutoRAG agent to answer a question about any data that the user can access. Returns results as a Server-Sent Events (SSE) stream with incremental updates.
The stream emits the following event types in order:
plan: The execution plan with a list of steps to be performed.step: One event per step, containing the instruction, query, and result data.answer: The final synthesized answer to the user’s question.error: Emitted if an error occurs during processing (instead of answer).
curl --request POST \
--url https://api.datalinks.com/api/v1/query/ask \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"username": "<string>",
"namespace": "<string>",
"query": "What do llamas drink to cool themselves down?",
"helperPrompt": "You're a prophet of the alpacalypse. Your task is to spit the word!",
"model": "<string>",
"provider": "<string>",
"models": {
"plan": {
"model": "<string>",
"provider": "<string>"
},
"query": {
"model": "<string>",
"provider": "<string>"
},
"answer": {
"model": "<string>",
"provider": "<string>"
}
},
"conversationId": "<string>",
"webSearch": true,
"callerContext": {
"turns": [
{
"text": "<string>",
"agentName": "<string>"
}
],
"facts": [
{
"label": "tenant",
"value": "acme",
"source": "<string>"
}
]
}
}
EOFimport requests
url = "https://api.datalinks.com/api/v1/query/ask"
payload = {
"username": "<string>",
"namespace": "<string>",
"query": "What do llamas drink to cool themselves down?",
"helperPrompt": "You're a prophet of the alpacalypse. Your task is to spit the word!",
"model": "<string>",
"provider": "<string>",
"models": {
"plan": {
"model": "<string>",
"provider": "<string>"
},
"query": {
"model": "<string>",
"provider": "<string>"
},
"answer": {
"model": "<string>",
"provider": "<string>"
}
},
"conversationId": "<string>",
"webSearch": True,
"callerContext": {
"turns": [
{
"text": "<string>",
"agentName": "<string>"
}
],
"facts": [
{
"label": "tenant",
"value": "acme",
"source": "<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({
username: '<string>',
namespace: '<string>',
query: 'What do llamas drink to cool themselves down?',
helperPrompt: 'You\'re a prophet of the alpacalypse. Your task is to spit the word!',
model: '<string>',
provider: '<string>',
models: {
plan: {model: '<string>', provider: '<string>'},
query: {model: '<string>', provider: '<string>'},
answer: {model: '<string>', provider: '<string>'}
},
conversationId: '<string>',
webSearch: true,
callerContext: {
turns: [{text: '<string>', agentName: '<string>'}],
facts: [{label: 'tenant', value: 'acme', source: '<string>'}]
}
})
};
fetch('https://api.datalinks.com/api/v1/query/ask', 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.datalinks.com/api/v1/query/ask",
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([
'username' => '<string>',
'namespace' => '<string>',
'query' => 'What do llamas drink to cool themselves down?',
'helperPrompt' => 'You\'re a prophet of the alpacalypse. Your task is to spit the word!',
'model' => '<string>',
'provider' => '<string>',
'models' => [
'plan' => [
'model' => '<string>',
'provider' => '<string>'
],
'query' => [
'model' => '<string>',
'provider' => '<string>'
],
'answer' => [
'model' => '<string>',
'provider' => '<string>'
]
],
'conversationId' => '<string>',
'webSearch' => true,
'callerContext' => [
'turns' => [
[
'text' => '<string>',
'agentName' => '<string>'
]
],
'facts' => [
[
'label' => 'tenant',
'value' => 'acme',
'source' => '<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.datalinks.com/api/v1/query/ask"
payload := strings.NewReader("{\n \"username\": \"<string>\",\n \"namespace\": \"<string>\",\n \"query\": \"What do llamas drink to cool themselves down?\",\n \"helperPrompt\": \"You're a prophet of the alpacalypse. Your task is to spit the word!\",\n \"model\": \"<string>\",\n \"provider\": \"<string>\",\n \"models\": {\n \"plan\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n },\n \"query\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n },\n \"answer\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n }\n },\n \"conversationId\": \"<string>\",\n \"webSearch\": true,\n \"callerContext\": {\n \"turns\": [\n {\n \"text\": \"<string>\",\n \"agentName\": \"<string>\"\n }\n ],\n \"facts\": [\n {\n \"label\": \"tenant\",\n \"value\": \"acme\",\n \"source\": \"<string>\"\n }\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.datalinks.com/api/v1/query/ask")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"username\": \"<string>\",\n \"namespace\": \"<string>\",\n \"query\": \"What do llamas drink to cool themselves down?\",\n \"helperPrompt\": \"You're a prophet of the alpacalypse. Your task is to spit the word!\",\n \"model\": \"<string>\",\n \"provider\": \"<string>\",\n \"models\": {\n \"plan\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n },\n \"query\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n },\n \"answer\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n }\n },\n \"conversationId\": \"<string>\",\n \"webSearch\": true,\n \"callerContext\": {\n \"turns\": [\n {\n \"text\": \"<string>\",\n \"agentName\": \"<string>\"\n }\n ],\n \"facts\": [\n {\n \"label\": \"tenant\",\n \"value\": \"acme\",\n \"source\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.datalinks.com/api/v1/query/ask")
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 \"username\": \"<string>\",\n \"namespace\": \"<string>\",\n \"query\": \"What do llamas drink to cool themselves down?\",\n \"helperPrompt\": \"You're a prophet of the alpacalypse. Your task is to spit the word!\",\n \"model\": \"<string>\",\n \"provider\": \"<string>\",\n \"models\": {\n \"plan\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n },\n \"query\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n },\n \"answer\": {\n \"model\": \"<string>\",\n \"provider\": \"<string>\"\n }\n },\n \"conversationId\": \"<string>\",\n \"webSearch\": true,\n \"callerContext\": {\n \"turns\": [\n {\n \"text\": \"<string>\",\n \"agentName\": \"<string>\"\n }\n ],\n \"facts\": [\n {\n \"label\": \"tenant\",\n \"value\": \"acme\",\n \"source\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"steps": [
"<string>"
],
"reasoning": "<string>"
}{
"error_code": "UNAUTHORIZED",
"message": "Missing authentication token",
"error_message": "",
"sub_errors": [
{
"code": "<string>",
"message": "<string>"
}
]
}Authorizations
Use a Bearer token for authentication. Submit the token using the Authorization
header: Authorization: Bearer <token>.
Body
"What do llamas drink to cool themselves down?"
"You're a prophet of the alpacalypse. Your task is to spit the word!"
Per-stage model overrides for the AutoRag pipeline.
Show child attributes
Show child attributes
Existing conversation to continue. Omit to start a new conversation; the id is returned on the run-started SSE event.
Override web search for this request: false disables it; omit (or true) to use the deployment default.
Context established outside this platform — typically by an agent the calling system ran before this one. It is rendered into the planning and answering prompts as caller-asserted background: it never overrides data retrieved from the datasets, and it never widens data access. Applies to the turn it is sent with.
Show child attributes
Show child attributes
Response
SSE stream of AutoRAG execution events.