Search for Contacts, Individuals or Entities
curl --request POST \
--url https://api.virtuoussoftware.com/api/Search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"filterTypes": [
"Contact",
"Individual",
"Campaign",
"Project",
"Segment",
"Tag"
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: '<string>',
filterTypes: ['Contact', 'Individual', 'Campaign', 'Project', 'Segment', 'Tag']
})
};
fetch('https://api.virtuoussoftware.com/api/Search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.virtuoussoftware.com/api/Search"
payload = {
"query": "<string>",
"filterTypes": ["Contact", "Individual", "Campaign", "Project", "Segment", "Tag"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.virtuoussoftware.com/api/Search");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"query\": \"<string>\",\n \"filterTypes\": [\n \"Contact\",\n \"Individual\",\n \"Campaign\",\n \"Project\",\n \"Segment\",\n \"Tag\"\n ]\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.virtuoussoftware.com/api/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([
'query' => '<string>',
'filterTypes' => [
'Contact',
'Individual',
'Campaign',
'Project',
'Segment',
'Tag'
]
]),
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;
}HttpResponse<String> response = Unirest.post("https://api.virtuoussoftware.com/api/Search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"filterTypes\": [\n \"Contact\",\n \"Individual\",\n \"Campaign\",\n \"Project\",\n \"Segment\",\n \"Tag\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.virtuoussoftware.com/api/Search")
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 \"query\": \"<string>\",\n \"filterTypes\": [\n \"Contact\",\n \"Individual\",\n \"Campaign\",\n \"Project\",\n \"Segment\",\n \"Tag\"\n ]\n}"
response = http.request(request)
puts response.read_bodyconst url = 'https://api.virtuoussoftware.com/api/Search';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: '<string>',
filterTypes: ['Contact', 'Individual', 'Campaign', 'Project', 'Segment', 'Tag']
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"message": "Authorization has been denied for this request."
}{
"message": "You do not have permission to perform this action."
}{
"message": "Rate limit exceeded. Try again later."
}Search
Search for Contacts, Individuals or Entities
POST
/
api
/
Search
Search for Contacts, Individuals or Entities
curl --request POST \
--url https://api.virtuoussoftware.com/api/Search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"filterTypes": [
"Contact",
"Individual",
"Campaign",
"Project",
"Segment",
"Tag"
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: '<string>',
filterTypes: ['Contact', 'Individual', 'Campaign', 'Project', 'Segment', 'Tag']
})
};
fetch('https://api.virtuoussoftware.com/api/Search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.virtuoussoftware.com/api/Search"
payload = {
"query": "<string>",
"filterTypes": ["Contact", "Individual", "Campaign", "Project", "Segment", "Tag"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.virtuoussoftware.com/api/Search");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"query\": \"<string>\",\n \"filterTypes\": [\n \"Contact\",\n \"Individual\",\n \"Campaign\",\n \"Project\",\n \"Segment\",\n \"Tag\"\n ]\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.virtuoussoftware.com/api/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([
'query' => '<string>',
'filterTypes' => [
'Contact',
'Individual',
'Campaign',
'Project',
'Segment',
'Tag'
]
]),
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;
}HttpResponse<String> response = Unirest.post("https://api.virtuoussoftware.com/api/Search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"filterTypes\": [\n \"Contact\",\n \"Individual\",\n \"Campaign\",\n \"Project\",\n \"Segment\",\n \"Tag\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.virtuoussoftware.com/api/Search")
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 \"query\": \"<string>\",\n \"filterTypes\": [\n \"Contact\",\n \"Individual\",\n \"Campaign\",\n \"Project\",\n \"Segment\",\n \"Tag\"\n ]\n}"
response = http.request(request)
puts response.read_bodyconst url = 'https://api.virtuoussoftware.com/api/Search';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: '<string>',
filterTypes: ['Contact', 'Individual', 'Campaign', 'Project', 'Segment', 'Tag']
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"message": "Authorization has been denied for this request."
}{
"message": "You do not have permission to perform this action."
}{
"message": "Rate limit exceeded. Try again later."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Response
The search query could not be processed. message describes the failure and, when the body fails model validation, modelState lists each rejected field with its validation messages. Common causes: an unrecognized field name in a condition group, an operator that does not apply to that field's data type, a missing or wrongly typed value, or non-numeric skip/take paging values.
Last modified on April 23, 2026
Was this page helpful?
⌘I