Research search and answer
Answer Research
Answer from accessible indexed research with validated source citations.
POST
/
api
/
public
/
v1
/
research
/
answer
/
Answer Research
curl --request POST \
--url https://api.userintuition.ai/api/public/v1/research/answer/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"question": "What concerns did participants raise about pricing?",
"filters": {
"study_ids": [
"11111111-2222-3333-4444-555555555555"
],
"content_types": [
"study_finding",
"participant_response"
]
}
}
'import requests
url = "https://api.userintuition.ai/api/public/v1/research/answer/"
payload = {
"question": "What concerns did participants raise about pricing?",
"filters": {
"study_ids": ["11111111-2222-3333-4444-555555555555"],
"content_types": ["study_finding", "participant_response"]
}
}
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({
question: 'What concerns did participants raise about pricing?',
filters: {
study_ids: ['11111111-2222-3333-4444-555555555555'],
content_types: ['study_finding', 'participant_response']
}
})
};
fetch('https://api.userintuition.ai/api/public/v1/research/answer/', 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.userintuition.ai/api/public/v1/research/answer/",
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' => 'What concerns did participants raise about pricing?',
'filters' => [
'study_ids' => [
'11111111-2222-3333-4444-555555555555'
],
'content_types' => [
'study_finding',
'participant_response'
]
]
]),
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.userintuition.ai/api/public/v1/research/answer/"
payload := strings.NewReader("{\n \"question\": \"What concerns did participants raise about pricing?\",\n \"filters\": {\n \"study_ids\": [\n \"11111111-2222-3333-4444-555555555555\"\n ],\n \"content_types\": [\n \"study_finding\",\n \"participant_response\"\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.userintuition.ai/api/public/v1/research/answer/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"question\": \"What concerns did participants raise about pricing?\",\n \"filters\": {\n \"study_ids\": [\n \"11111111-2222-3333-4444-555555555555\"\n ],\n \"content_types\": [\n \"study_finding\",\n \"participant_response\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.userintuition.ai/api/public/v1/research/answer/")
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\": \"What concerns did participants raise about pricing?\",\n \"filters\": {\n \"study_ids\": [\n \"11111111-2222-3333-4444-555555555555\"\n ],\n \"content_types\": [\n \"study_finding\",\n \"participant_response\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"answer": "<string>",
"insufficient_evidence": true,
"citations": [
{
"number": 123,
"content_id": "<string>",
"study_id": "<string>",
"content_type": "study_plan",
"report_id": "<string>",
"interview_id": "<string>"
}
],
"studies": [
{
"study_id": "<string>",
"index_status": "ready",
"latest_report_id": "<string>",
"indexed_report_id": "<string>"
}
]
}{
"detail": "<unknown>",
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": "not_started",
"recovery_action": "<string>",
"docs_url": "<string>"
}
}{
"detail": "<unknown>",
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": "not_started",
"recovery_action": "<string>",
"docs_url": "<string>"
}
}Authorizations
Authenticate with an API key (prefixed ui_sk_) or a JWT token from the dashboard.
Headers
Choose an organization you belong to for scoped reads, writes, and billing. Users can belong to multiple organizations. Platform administrators may select any organization in this app.
Maximum string length:
128Body
application/json
Was this page helpful?
⌘I
Answer Research
curl --request POST \
--url https://api.userintuition.ai/api/public/v1/research/answer/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"question": "What concerns did participants raise about pricing?",
"filters": {
"study_ids": [
"11111111-2222-3333-4444-555555555555"
],
"content_types": [
"study_finding",
"participant_response"
]
}
}
'import requests
url = "https://api.userintuition.ai/api/public/v1/research/answer/"
payload = {
"question": "What concerns did participants raise about pricing?",
"filters": {
"study_ids": ["11111111-2222-3333-4444-555555555555"],
"content_types": ["study_finding", "participant_response"]
}
}
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({
question: 'What concerns did participants raise about pricing?',
filters: {
study_ids: ['11111111-2222-3333-4444-555555555555'],
content_types: ['study_finding', 'participant_response']
}
})
};
fetch('https://api.userintuition.ai/api/public/v1/research/answer/', 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.userintuition.ai/api/public/v1/research/answer/",
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' => 'What concerns did participants raise about pricing?',
'filters' => [
'study_ids' => [
'11111111-2222-3333-4444-555555555555'
],
'content_types' => [
'study_finding',
'participant_response'
]
]
]),
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.userintuition.ai/api/public/v1/research/answer/"
payload := strings.NewReader("{\n \"question\": \"What concerns did participants raise about pricing?\",\n \"filters\": {\n \"study_ids\": [\n \"11111111-2222-3333-4444-555555555555\"\n ],\n \"content_types\": [\n \"study_finding\",\n \"participant_response\"\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.userintuition.ai/api/public/v1/research/answer/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"question\": \"What concerns did participants raise about pricing?\",\n \"filters\": {\n \"study_ids\": [\n \"11111111-2222-3333-4444-555555555555\"\n ],\n \"content_types\": [\n \"study_finding\",\n \"participant_response\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.userintuition.ai/api/public/v1/research/answer/")
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\": \"What concerns did participants raise about pricing?\",\n \"filters\": {\n \"study_ids\": [\n \"11111111-2222-3333-4444-555555555555\"\n ],\n \"content_types\": [\n \"study_finding\",\n \"participant_response\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"answer": "<string>",
"insufficient_evidence": true,
"citations": [
{
"number": 123,
"content_id": "<string>",
"study_id": "<string>",
"content_type": "study_plan",
"report_id": "<string>",
"interview_id": "<string>"
}
],
"studies": [
{
"study_id": "<string>",
"index_status": "ready",
"latest_report_id": "<string>",
"indexed_report_id": "<string>"
}
]
}{
"detail": "<unknown>",
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": "not_started",
"recovery_action": "<string>",
"docs_url": "<string>"
}
}{
"detail": "<unknown>",
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": "not_started",
"recovery_action": "<string>",
"docs_url": "<string>"
}
}
