API Reference
Search
POST
/
search
Search
curl --request POST \
--url https://api.istari.ai/v2/search \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"similar_to": [
"<string>"
],
"describe": "<string>",
"keywords": {
"must_all": [
"<string>"
],
"must_any": [
"<string>"
],
"must_not": [
"<string>"
]
},
"filters": {
"country": [
"<string>"
],
"state": [
"<string>"
],
"region": [
"<string>"
],
"district": [
"<string>"
],
"municipality": [
"<string>"
],
"organization_type": [
"<string>"
],
"organization_size": [
"<string>"
],
"nace_code": [
"<string>"
],
"source": [
"<string>"
],
"company_register_court": [
"<string>"
],
"register_date_from": "2023-12-25",
"register_date_to": "2023-12-25",
"summary_keywords": [
"<string>"
],
"text_keywords": {
"must_all": [
"<string>"
],
"must_any": [
"<string>"
],
"must_not": [
"<string>"
]
}
},
"excludes": [
"<string>"
],
"columns": [
"<string>"
],
"size": 100,
"min_score": 0.35,
"search_balance": 0.5,
"search_after": [
"<unknown>"
],
"explain": false,
"dedup": false
}
'import requests
url = "https://api.istari.ai/v2/search"
payload = {
"similar_to": ["<string>"],
"describe": "<string>",
"keywords": {
"must_all": ["<string>"],
"must_any": ["<string>"],
"must_not": ["<string>"]
},
"filters": {
"country": ["<string>"],
"state": ["<string>"],
"region": ["<string>"],
"district": ["<string>"],
"municipality": ["<string>"],
"organization_type": ["<string>"],
"organization_size": ["<string>"],
"nace_code": ["<string>"],
"source": ["<string>"],
"company_register_court": ["<string>"],
"register_date_from": "2023-12-25",
"register_date_to": "2023-12-25",
"summary_keywords": ["<string>"],
"text_keywords": {
"must_all": ["<string>"],
"must_any": ["<string>"],
"must_not": ["<string>"]
}
},
"excludes": ["<string>"],
"columns": ["<string>"],
"size": 100,
"min_score": 0.35,
"search_balance": 0.5,
"search_after": ["<unknown>"],
"explain": False,
"dedup": False
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
similar_to: ['<string>'],
describe: '<string>',
keywords: {must_all: ['<string>'], must_any: ['<string>'], must_not: ['<string>']},
filters: {
country: ['<string>'],
state: ['<string>'],
region: ['<string>'],
district: ['<string>'],
municipality: ['<string>'],
organization_type: ['<string>'],
organization_size: ['<string>'],
nace_code: ['<string>'],
source: ['<string>'],
company_register_court: ['<string>'],
register_date_from: '2023-12-25',
register_date_to: '2023-12-25',
summary_keywords: ['<string>'],
text_keywords: {must_all: ['<string>'], must_any: ['<string>'], must_not: ['<string>']}
},
excludes: ['<string>'],
columns: ['<string>'],
size: 100,
min_score: 0.35,
search_balance: 0.5,
search_after: ['<unknown>'],
explain: false,
dedup: false
})
};
fetch('https://api.istari.ai/v2/search', 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.istari.ai/v2/search",
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([
'similar_to' => [
'<string>'
],
'describe' => '<string>',
'keywords' => [
'must_all' => [
'<string>'
],
'must_any' => [
'<string>'
],
'must_not' => [
'<string>'
]
],
'filters' => [
'country' => [
'<string>'
],
'state' => [
'<string>'
],
'region' => [
'<string>'
],
'district' => [
'<string>'
],
'municipality' => [
'<string>'
],
'organization_type' => [
'<string>'
],
'organization_size' => [
'<string>'
],
'nace_code' => [
'<string>'
],
'source' => [
'<string>'
],
'company_register_court' => [
'<string>'
],
'register_date_from' => '2023-12-25',
'register_date_to' => '2023-12-25',
'summary_keywords' => [
'<string>'
],
'text_keywords' => [
'must_all' => [
'<string>'
],
'must_any' => [
'<string>'
],
'must_not' => [
'<string>'
]
]
],
'excludes' => [
'<string>'
],
'columns' => [
'<string>'
],
'size' => 100,
'min_score' => 0.35,
'search_balance' => 0.5,
'search_after' => [
'<unknown>'
],
'explain' => false,
'dedup' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.istari.ai/v2/search"
payload := strings.NewReader("{\n \"similar_to\": [\n \"<string>\"\n ],\n \"describe\": \"<string>\",\n \"keywords\": {\n \"must_all\": [\n \"<string>\"\n ],\n \"must_any\": [\n \"<string>\"\n ],\n \"must_not\": [\n \"<string>\"\n ]\n },\n \"filters\": {\n \"country\": [\n \"<string>\"\n ],\n \"state\": [\n \"<string>\"\n ],\n \"region\": [\n \"<string>\"\n ],\n \"district\": [\n \"<string>\"\n ],\n \"municipality\": [\n \"<string>\"\n ],\n \"organization_type\": [\n \"<string>\"\n ],\n \"organization_size\": [\n \"<string>\"\n ],\n \"nace_code\": [\n \"<string>\"\n ],\n \"source\": [\n \"<string>\"\n ],\n \"company_register_court\": [\n \"<string>\"\n ],\n \"register_date_from\": \"2023-12-25\",\n \"register_date_to\": \"2023-12-25\",\n \"summary_keywords\": [\n \"<string>\"\n ],\n \"text_keywords\": {\n \"must_all\": [\n \"<string>\"\n ],\n \"must_any\": [\n \"<string>\"\n ],\n \"must_not\": [\n \"<string>\"\n ]\n }\n },\n \"excludes\": [\n \"<string>\"\n ],\n \"columns\": [\n \"<string>\"\n ],\n \"size\": 100,\n \"min_score\": 0.35,\n \"search_balance\": 0.5,\n \"search_after\": [\n \"<unknown>\"\n ],\n \"explain\": false,\n \"dedup\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.istari.ai/v2/search")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"similar_to\": [\n \"<string>\"\n ],\n \"describe\": \"<string>\",\n \"keywords\": {\n \"must_all\": [\n \"<string>\"\n ],\n \"must_any\": [\n \"<string>\"\n ],\n \"must_not\": [\n \"<string>\"\n ]\n },\n \"filters\": {\n \"country\": [\n \"<string>\"\n ],\n \"state\": [\n \"<string>\"\n ],\n \"region\": [\n \"<string>\"\n ],\n \"district\": [\n \"<string>\"\n ],\n \"municipality\": [\n \"<string>\"\n ],\n \"organization_type\": [\n \"<string>\"\n ],\n \"organization_size\": [\n \"<string>\"\n ],\n \"nace_code\": [\n \"<string>\"\n ],\n \"source\": [\n \"<string>\"\n ],\n \"company_register_court\": [\n \"<string>\"\n ],\n \"register_date_from\": \"2023-12-25\",\n \"register_date_to\": \"2023-12-25\",\n \"summary_keywords\": [\n \"<string>\"\n ],\n \"text_keywords\": {\n \"must_all\": [\n \"<string>\"\n ],\n \"must_any\": [\n \"<string>\"\n ],\n \"must_not\": [\n \"<string>\"\n ]\n }\n },\n \"excludes\": [\n \"<string>\"\n ],\n \"columns\": [\n \"<string>\"\n ],\n \"size\": 100,\n \"min_score\": 0.35,\n \"search_balance\": 0.5,\n \"search_after\": [\n \"<unknown>\"\n ],\n \"explain\": false,\n \"dedup\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.istari.ai/v2/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"similar_to\": [\n \"<string>\"\n ],\n \"describe\": \"<string>\",\n \"keywords\": {\n \"must_all\": [\n \"<string>\"\n ],\n \"must_any\": [\n \"<string>\"\n ],\n \"must_not\": [\n \"<string>\"\n ]\n },\n \"filters\": {\n \"country\": [\n \"<string>\"\n ],\n \"state\": [\n \"<string>\"\n ],\n \"region\": [\n \"<string>\"\n ],\n \"district\": [\n \"<string>\"\n ],\n \"municipality\": [\n \"<string>\"\n ],\n \"organization_type\": [\n \"<string>\"\n ],\n \"organization_size\": [\n \"<string>\"\n ],\n \"nace_code\": [\n \"<string>\"\n ],\n \"source\": [\n \"<string>\"\n ],\n \"company_register_court\": [\n \"<string>\"\n ],\n \"register_date_from\": \"2023-12-25\",\n \"register_date_to\": \"2023-12-25\",\n \"summary_keywords\": [\n \"<string>\"\n ],\n \"text_keywords\": {\n \"must_all\": [\n \"<string>\"\n ],\n \"must_any\": [\n \"<string>\"\n ],\n \"must_not\": [\n \"<string>\"\n ]\n }\n },\n \"excludes\": [\n \"<string>\"\n ],\n \"columns\": [\n \"<string>\"\n ],\n \"size\": 100,\n \"min_score\": 0.35,\n \"search_balance\": 0.5,\n \"search_after\": [\n \"<unknown>\"\n ],\n \"explain\": false,\n \"dedup\": false\n}"
response = http.request(request)
puts response.read_body{
"data": [
{}
],
"metadata": {
"total_hits": 123,
"returned": 123,
"mode": "<string>",
"elapsed_ms": 123,
"search_after": [
"<unknown>"
],
"filters_applied": {},
"explain_plan": [
"<string>"
]
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Your GOI API key. Create one on the GOI dashboard under API keys.
Body
application/json
BM25 / fulltext keyword filter applied to the company description.
Combines three lists with AND / OR / NOT logic. At least one positive list (must_all or must_any) is required when must_not is set — BM25 cannot match on pure negation.
Show child attributes
Show child attributes
Column-level filters applied to org rows.
Geographic fields use GADM-native names (e.g. 'Bayern' not 'Bavaria'). All list-valued filters are OR-combined within the field. Values across different fields are AND-combined.
Show child attributes
Show child attributes
Required range:
1 <= x <= 500Required range:
0 <= x <= 1Required range:
0 <= x <= 1⌘I
Search
curl --request POST \
--url https://api.istari.ai/v2/search \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"similar_to": [
"<string>"
],
"describe": "<string>",
"keywords": {
"must_all": [
"<string>"
],
"must_any": [
"<string>"
],
"must_not": [
"<string>"
]
},
"filters": {
"country": [
"<string>"
],
"state": [
"<string>"
],
"region": [
"<string>"
],
"district": [
"<string>"
],
"municipality": [
"<string>"
],
"organization_type": [
"<string>"
],
"organization_size": [
"<string>"
],
"nace_code": [
"<string>"
],
"source": [
"<string>"
],
"company_register_court": [
"<string>"
],
"register_date_from": "2023-12-25",
"register_date_to": "2023-12-25",
"summary_keywords": [
"<string>"
],
"text_keywords": {
"must_all": [
"<string>"
],
"must_any": [
"<string>"
],
"must_not": [
"<string>"
]
}
},
"excludes": [
"<string>"
],
"columns": [
"<string>"
],
"size": 100,
"min_score": 0.35,
"search_balance": 0.5,
"search_after": [
"<unknown>"
],
"explain": false,
"dedup": false
}
'import requests
url = "https://api.istari.ai/v2/search"
payload = {
"similar_to": ["<string>"],
"describe": "<string>",
"keywords": {
"must_all": ["<string>"],
"must_any": ["<string>"],
"must_not": ["<string>"]
},
"filters": {
"country": ["<string>"],
"state": ["<string>"],
"region": ["<string>"],
"district": ["<string>"],
"municipality": ["<string>"],
"organization_type": ["<string>"],
"organization_size": ["<string>"],
"nace_code": ["<string>"],
"source": ["<string>"],
"company_register_court": ["<string>"],
"register_date_from": "2023-12-25",
"register_date_to": "2023-12-25",
"summary_keywords": ["<string>"],
"text_keywords": {
"must_all": ["<string>"],
"must_any": ["<string>"],
"must_not": ["<string>"]
}
},
"excludes": ["<string>"],
"columns": ["<string>"],
"size": 100,
"min_score": 0.35,
"search_balance": 0.5,
"search_after": ["<unknown>"],
"explain": False,
"dedup": False
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
similar_to: ['<string>'],
describe: '<string>',
keywords: {must_all: ['<string>'], must_any: ['<string>'], must_not: ['<string>']},
filters: {
country: ['<string>'],
state: ['<string>'],
region: ['<string>'],
district: ['<string>'],
municipality: ['<string>'],
organization_type: ['<string>'],
organization_size: ['<string>'],
nace_code: ['<string>'],
source: ['<string>'],
company_register_court: ['<string>'],
register_date_from: '2023-12-25',
register_date_to: '2023-12-25',
summary_keywords: ['<string>'],
text_keywords: {must_all: ['<string>'], must_any: ['<string>'], must_not: ['<string>']}
},
excludes: ['<string>'],
columns: ['<string>'],
size: 100,
min_score: 0.35,
search_balance: 0.5,
search_after: ['<unknown>'],
explain: false,
dedup: false
})
};
fetch('https://api.istari.ai/v2/search', 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.istari.ai/v2/search",
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([
'similar_to' => [
'<string>'
],
'describe' => '<string>',
'keywords' => [
'must_all' => [
'<string>'
],
'must_any' => [
'<string>'
],
'must_not' => [
'<string>'
]
],
'filters' => [
'country' => [
'<string>'
],
'state' => [
'<string>'
],
'region' => [
'<string>'
],
'district' => [
'<string>'
],
'municipality' => [
'<string>'
],
'organization_type' => [
'<string>'
],
'organization_size' => [
'<string>'
],
'nace_code' => [
'<string>'
],
'source' => [
'<string>'
],
'company_register_court' => [
'<string>'
],
'register_date_from' => '2023-12-25',
'register_date_to' => '2023-12-25',
'summary_keywords' => [
'<string>'
],
'text_keywords' => [
'must_all' => [
'<string>'
],
'must_any' => [
'<string>'
],
'must_not' => [
'<string>'
]
]
],
'excludes' => [
'<string>'
],
'columns' => [
'<string>'
],
'size' => 100,
'min_score' => 0.35,
'search_balance' => 0.5,
'search_after' => [
'<unknown>'
],
'explain' => false,
'dedup' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.istari.ai/v2/search"
payload := strings.NewReader("{\n \"similar_to\": [\n \"<string>\"\n ],\n \"describe\": \"<string>\",\n \"keywords\": {\n \"must_all\": [\n \"<string>\"\n ],\n \"must_any\": [\n \"<string>\"\n ],\n \"must_not\": [\n \"<string>\"\n ]\n },\n \"filters\": {\n \"country\": [\n \"<string>\"\n ],\n \"state\": [\n \"<string>\"\n ],\n \"region\": [\n \"<string>\"\n ],\n \"district\": [\n \"<string>\"\n ],\n \"municipality\": [\n \"<string>\"\n ],\n \"organization_type\": [\n \"<string>\"\n ],\n \"organization_size\": [\n \"<string>\"\n ],\n \"nace_code\": [\n \"<string>\"\n ],\n \"source\": [\n \"<string>\"\n ],\n \"company_register_court\": [\n \"<string>\"\n ],\n \"register_date_from\": \"2023-12-25\",\n \"register_date_to\": \"2023-12-25\",\n \"summary_keywords\": [\n \"<string>\"\n ],\n \"text_keywords\": {\n \"must_all\": [\n \"<string>\"\n ],\n \"must_any\": [\n \"<string>\"\n ],\n \"must_not\": [\n \"<string>\"\n ]\n }\n },\n \"excludes\": [\n \"<string>\"\n ],\n \"columns\": [\n \"<string>\"\n ],\n \"size\": 100,\n \"min_score\": 0.35,\n \"search_balance\": 0.5,\n \"search_after\": [\n \"<unknown>\"\n ],\n \"explain\": false,\n \"dedup\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.istari.ai/v2/search")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"similar_to\": [\n \"<string>\"\n ],\n \"describe\": \"<string>\",\n \"keywords\": {\n \"must_all\": [\n \"<string>\"\n ],\n \"must_any\": [\n \"<string>\"\n ],\n \"must_not\": [\n \"<string>\"\n ]\n },\n \"filters\": {\n \"country\": [\n \"<string>\"\n ],\n \"state\": [\n \"<string>\"\n ],\n \"region\": [\n \"<string>\"\n ],\n \"district\": [\n \"<string>\"\n ],\n \"municipality\": [\n \"<string>\"\n ],\n \"organization_type\": [\n \"<string>\"\n ],\n \"organization_size\": [\n \"<string>\"\n ],\n \"nace_code\": [\n \"<string>\"\n ],\n \"source\": [\n \"<string>\"\n ],\n \"company_register_court\": [\n \"<string>\"\n ],\n \"register_date_from\": \"2023-12-25\",\n \"register_date_to\": \"2023-12-25\",\n \"summary_keywords\": [\n \"<string>\"\n ],\n \"text_keywords\": {\n \"must_all\": [\n \"<string>\"\n ],\n \"must_any\": [\n \"<string>\"\n ],\n \"must_not\": [\n \"<string>\"\n ]\n }\n },\n \"excludes\": [\n \"<string>\"\n ],\n \"columns\": [\n \"<string>\"\n ],\n \"size\": 100,\n \"min_score\": 0.35,\n \"search_balance\": 0.5,\n \"search_after\": [\n \"<unknown>\"\n ],\n \"explain\": false,\n \"dedup\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.istari.ai/v2/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"similar_to\": [\n \"<string>\"\n ],\n \"describe\": \"<string>\",\n \"keywords\": {\n \"must_all\": [\n \"<string>\"\n ],\n \"must_any\": [\n \"<string>\"\n ],\n \"must_not\": [\n \"<string>\"\n ]\n },\n \"filters\": {\n \"country\": [\n \"<string>\"\n ],\n \"state\": [\n \"<string>\"\n ],\n \"region\": [\n \"<string>\"\n ],\n \"district\": [\n \"<string>\"\n ],\n \"municipality\": [\n \"<string>\"\n ],\n \"organization_type\": [\n \"<string>\"\n ],\n \"organization_size\": [\n \"<string>\"\n ],\n \"nace_code\": [\n \"<string>\"\n ],\n \"source\": [\n \"<string>\"\n ],\n \"company_register_court\": [\n \"<string>\"\n ],\n \"register_date_from\": \"2023-12-25\",\n \"register_date_to\": \"2023-12-25\",\n \"summary_keywords\": [\n \"<string>\"\n ],\n \"text_keywords\": {\n \"must_all\": [\n \"<string>\"\n ],\n \"must_any\": [\n \"<string>\"\n ],\n \"must_not\": [\n \"<string>\"\n ]\n }\n },\n \"excludes\": [\n \"<string>\"\n ],\n \"columns\": [\n \"<string>\"\n ],\n \"size\": 100,\n \"min_score\": 0.35,\n \"search_balance\": 0.5,\n \"search_after\": [\n \"<unknown>\"\n ],\n \"explain\": false,\n \"dedup\": false\n}"
response = http.request(request)
puts response.read_body{
"data": [
{}
],
"metadata": {
"total_hits": 123,
"returned": 123,
"mode": "<string>",
"elapsed_ms": 123,
"search_after": [
"<unknown>"
],
"filters_applied": {},
"explain_plan": [
"<string>"
]
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}