JavaScript
JavaScript
import
Opriven
from
'@opriven/sdk'
;
const
client
=
new
Opriven
({
apiKey:
process
.
env
[
'OPRIVEN_API_KEY'
],
// This is the default and can be omitted
});
const
queryResponse
=
await
client
.
query
.
ask
({
question:
'x'
});
console
.
log
(
queryResponse
.
conversation_id
);
curl --request POST \
  --url https://bff.opriven.com/api/v2/query \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "question": "<string>",
  "conversation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "stream": true
}
'
import requests

url = "https://bff.opriven.com/api/v2/query"

payload = {
    "question": "<string>",
    "conversation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "stream": True
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://bff.opriven.com/api/v2/query",
  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([
    'question' => '<string>',
    'conversation_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
    'stream' => true
  ]),
  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://bff.opriven.com/api/v2/query"

	payload := strings.NewReader("{\n  \"question\": \"<string>\",\n  \"conversation_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n  \"stream\": true\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://bff.opriven.com/api/v2/query")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"question\": \"<string>\",\n  \"conversation_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n  \"stream\": true\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://bff.opriven.com/api/v2/query")

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  \"question\": \"<string>\",\n  \"conversation_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n  \"stream\": true\n}"

response = http.request(request)
puts response.read_body
200
400
401
403
429
500
{
"conversation_id"
:
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
,
"answer"
:
"<string>"
,
"artifacts"
: [
{
"id"
:
"<string>"
,
"tool_name"
:
"<string>"
,
"data_type"
:
"<string>"
,
"provider"
:
"<string>"
,
"summary"
:
"<string>"
}
]
}
{
  "type": "api_error",
  "message": "<string>",
  "request_id": "<string>",
  "details": {}
}
{
  "type": "api_error",
  "message": "<string>",
  "request_id": "<string>",
  "details": {}
}
{
  "type": "api_error",
  "message": "<string>",
  "request_id": "<string>",
  "details": {}
}
{
  "type": "api_error",
  "message": "<string>",
  "request_id": "<string>",
  "details": {}
}
{
  "type": "api_error",
  "message": "<string>",
  "request_id": "<string>",
  "details": {}
}
Query
Ask Opriven's AI agent a question
Copy page
Copy page
Sends a question to Opriven’s AI agent and returns a natural language answer. Pass the returned conversation_id in subsequent requests to continue the conversation. Set stream: true (and Accept: text/event-stream) to receive a Server-Sent Events stream.
Copy page
Copy page
POST
https://bff.opriven.com/api/v2
https://bff.dev.opriven.com/api/v2
/
query
Try it
JavaScript
JavaScript
import
Opriven
from
'@opriven/sdk'
;
const
client
=
new
Opriven
({
apiKey:
process
.
env
[
'OPRIVEN_API_KEY'
],
// This is the default and can be omitted
});
const
queryResponse
=
await
client
.
query
.
ask
({
question:
'x'
});
console
.
log
(
queryResponse
.
conversation_id
);
curl --request POST \
  --url https://bff.opriven.com/api/v2/query \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "question": "<string>",
  "conversation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "stream": true
}
'
import requests

url = "https://bff.opriven.com/api/v2/query"

payload = {
    "question": "<string>",
    "conversation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "stream": True
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://bff.opriven.com/api/v2/query",
  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([
    'question' => '<string>',
    'conversation_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
    'stream' => true
  ]),
  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://bff.opriven.com/api/v2/query"

	payload := strings.NewReader("{\n  \"question\": \"<string>\",\n  \"conversation_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n  \"stream\": true\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://bff.opriven.com/api/v2/query")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"question\": \"<string>\",\n  \"conversation_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n  \"stream\": true\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://bff.opriven.com/api/v2/query")

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  \"question\": \"<string>\",\n  \"conversation_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n  \"stream\": true\n}"

response = http.request(request)
puts response.read_body
200
400
401
403
429
500
{
"conversation_id"
:
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
,
"answer"
:
"<string>"
,
"artifacts"
: [
{
"id"
:
"<string>"
,
"tool_name"
:
"<string>"
,
"data_type"
:
"<string>"
,
"provider"
:
"<string>"
,
"summary"
:
"<string>"
}
]
}
{
  "type": "api_error",
  "message": "<string>",
  "request_id": "<string>",
  "details": {}
}
{
  "type": "api_error",
  "message": "<string>",
  "request_id": "<string>",
  "details": {}
}
{
  "type": "api_error",
  "message": "<string>",
  "request_id": "<string>",
  "details": {}
}
{
  "type": "api_error",
  "message": "<string>",
  "request_id": "<string>",
  "details": {}
}
{
  "type": "api_error",
  "message": "<string>",
  "request_id": "<string>",
  "details": {}
}
Authorizations
Authorization
string
header
required
API key authentication via Bearer token
Headers
Opriven-Version
string
default:
2026-03-17
The API version to use. Defaults to the latest stable version if omitted. Pin to the version string in this document's
info.version
field to opt into exactly this version's schema.
Example
:
"2026-03-17"
Body
application/json
question
string
required
Natural language question to ask the AI agent
Minimum string length:
1
conversation_id
string<uuid>
Conversation ID from a previous query response — pass to continue that conversation
Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
stream
boolean
When true, returns a Server-Sent Events stream. Must also send Accept: text/event-stream header.
Response
200
application/json
conversation_id
string<uuid>
required
Pass in subsequent requests to continue this conversation
Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
answer
string
required
The AI agent's natural language answer
artifacts
object[]
required
Artifacts (metrics, logs, traces, etc.) the agent found while answering
Show
child attributes
Retrieve artifacts by IDs
Powered by
This documentation is built and hosted on Mintlify, a developer documentation platform