Core / Search
Search
Content search across a team's zones, frames, comments, and members.
GET
/vani/api/v1/editions/{edition_id}/teams/{team_id}/comments/search
Search comment text in a team
Search comment text in a team
OperationREAD
Rate limit60 requests / minute · per user
OAuth scopes
Vani.zones.READPath parameters edition_id · team_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| team_idREQUIRED | string | The unique identifier of the team |
Query parameters search · from · limit
| Name | Type | Description |
|---|---|---|
| searchREQUIRED | string | The keyword or phrase to search for |
| fromOPTIONAL | string | The starting index from where the results should be fetched. Default value is 0 |
| limitOPTIONAL | string | The maximum number of results to return in the response. Default value is 20 |
Request
GET
curl -X GET "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/comments/search?search=string" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"import requests
url = "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/comments/search?search=string"
headers = {
"Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)const https = require('https');
const url = require('url');
const options = {
...url.parse('https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/comments/search?search=string'),
method: 'GET',
headers: {
'Authorization': 'Zoho-oauthtoken YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => {
const result = JSON.parse(data);
// Process the response data
});
});
req.end();import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
public class ApiClient {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/comments/search?search=string"))
.header("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN")
.timeout(Duration.ofSeconds(30));
.header("Content-Type", "application/json")
HttpRequest request = requestBuilder
.GET(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}info "Making API request to: https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/comments/search?search=string";
headers = Map();
headers.put("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN");
headers.put("Content-Type", "application/json");
response = invokeurl
[
url: "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/comments/search?search=string"
type: GET
headers: headers
];
if (response.get("status_code") == 200) {
info "Request successful";
responseData = response.get("response");
info responseData;
} else {
info "Request failed with status: " + response.get("status_code");
info response.get("response");
}
Response
Successful response
{
"data": {
"search_result": []
},
"message": "Content search completed successfully",
"request_uri": "/vani/api/v1/editions/96499735/teams/3009000000002003/comments/search",
"status": "success"
}
Invalid request - validation failed
{
"error": {
"details": {
"error_code": "IAM1031",
"message": "Invalid request - validation failed"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/comments/search",
"status": "error"
}
Unauthorized - missing or invalid access token
{
"error": {
"details": {
"error_code": "IAM1100",
"message": "Unauthorized - missing or invalid access token"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/comments/search",
"status": "error"
}
Not found - a resource named in the path does not exist, or is not visible to the caller
{
"error": {
"details": {
"error_code": "IAM1001",
"message": "Not found - a resource named in the path does not exist, or is not visible to the caller"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/comments/search",
"status": "error"
}
Rate limit exceeded - this operation allows 60 requests per minute per user
{
"error": {
"details": {
"error_code": "IAM1055",
"message": "Rate limit exceeded - this operation allows 60 requests per minute per user"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/comments/search",
"status": "error"
}
Internal server error - the request was well-formed but could not be completed
{
"error": {
"details": {
"error_code": "U1001",
"message": "Internal server error - the request was well-formed but could not be completed"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/comments/search",
"status": "error"
}
Errors
5 status codes
400 Invalid request - validation failed 401 Unauthorized - missing or invalid access token 404 Not found - a resource named in the path does not exist, or is not visible to the caller 429 Rate limit exceeded - this operation allows 60 requests per minute per user 500 Internal server error - the request was well-formed but could not be completed
GET
/vani/api/v1/editions/{edition_id}/teams/{team_id}/zones/search
Search zone names and content in a team
Search zone names and content in a team
OperationREAD
Rate limit500 requests / minute · per user
OAuth scopes
Vani.zones.READPath parameters edition_id · team_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| team_idREQUIRED | string | The unique identifier of the team |
Query parameters search · from · limit
| Name | Type | Description |
|---|---|---|
| searchREQUIRED | string | The keyword or phrase to search for |
| fromOPTIONAL | string | The starting index from where the results should be fetched. Default value is 0 |
| limitOPTIONAL | string | The maximum number of results to return in the response. Default value is 20 |
Request
GET
curl -X GET "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/zones/search?search=string" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"import requests
url = "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/zones/search?search=string"
headers = {
"Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)const https = require('https');
const url = require('url');
const options = {
...url.parse('https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/zones/search?search=string'),
method: 'GET',
headers: {
'Authorization': 'Zoho-oauthtoken YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => {
const result = JSON.parse(data);
// Process the response data
});
});
req.end();import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
public class ApiClient {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/zones/search?search=string"))
.header("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN")
.timeout(Duration.ofSeconds(30));
.header("Content-Type", "application/json")
HttpRequest request = requestBuilder
.GET(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}info "Making API request to: https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/zones/search?search=string";
headers = Map();
headers.put("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN");
headers.put("Content-Type", "application/json");
response = invokeurl
[
url: "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/zones/search?search=string"
type: GET
headers: headers
];
if (response.get("status_code") == 200) {
info "Request successful";
responseData = response.get("response");
info responseData;
} else {
info "Request failed with status: " + response.get("status_code");
info response.get("response");
}
Response
Successful response
{
"data": {
"search_result": []
},
"message": "Content search completed successfully",
"request_uri": "/vani/api/v1/editions/75918186/teams/693000000002001/zones/search",
"status": "success"
}
Invalid request - validation failed
{
"error": {
"details": {
"error_code": "IAM1031",
"message": "Invalid request - validation failed"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/zones/search",
"status": "error"
}
Unauthorized - missing or invalid access token
{
"error": {
"details": {
"error_code": "IAM1100",
"message": "Unauthorized - missing or invalid access token"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/zones/search",
"status": "error"
}
Not found - a resource named in the path does not exist, or is not visible to the caller
{
"error": {
"details": {
"error_code": "IAM1001",
"message": "Not found - a resource named in the path does not exist, or is not visible to the caller"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/zones/search",
"status": "error"
}
Rate limit exceeded - this operation allows 500 requests per minute per user
{
"error": {
"details": {
"error_code": "IAM1055",
"message": "Rate limit exceeded - this operation allows 500 requests per minute per user"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/zones/search",
"status": "error"
}
Internal server error - the request was well-formed but could not be completed
{
"error": {
"details": {
"error_code": "U1001",
"message": "Internal server error - the request was well-formed but could not be completed"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/zones/search",
"status": "error"
}
Errors
5 status codes
400 Invalid request - validation failed 401 Unauthorized - missing or invalid access token 404 Not found - a resource named in the path does not exist, or is not visible to the caller 429 Rate limit exceeded - this operation allows 500 requests per minute per user 500 Internal server error - the request was well-formed but could not be completed
GET
/vani/api/v1/editions/{edition_id}/teams/{team_id}/frames/search
Search frame content in a team
Search frame content in a team
OperationREAD
Rate limit500 requests / minute · per user
OAuth scopes
Vani.zones.READPath parameters edition_id · team_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| team_idREQUIRED | string | The unique identifier of the team |
Query parameters search · from · limit
| Name | Type | Description |
|---|---|---|
| searchREQUIRED | string | The keyword or phrase to search for |
| fromOPTIONAL | string | The starting index from where the results should be fetched. Default value is 0 |
| limitOPTIONAL | string | The maximum number of results to return in the response. Default value is 20 |
Request
GET
curl -X GET "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/frames/search?search=string" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"import requests
url = "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/frames/search?search=string"
headers = {
"Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)const https = require('https');
const url = require('url');
const options = {
...url.parse('https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/frames/search?search=string'),
method: 'GET',
headers: {
'Authorization': 'Zoho-oauthtoken YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => {
const result = JSON.parse(data);
// Process the response data
});
});
req.end();import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
public class ApiClient {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/frames/search?search=string"))
.header("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN")
.timeout(Duration.ofSeconds(30));
.header("Content-Type", "application/json")
HttpRequest request = requestBuilder
.GET(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}info "Making API request to: https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/frames/search?search=string";
headers = Map();
headers.put("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN");
headers.put("Content-Type", "application/json");
response = invokeurl
[
url: "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/frames/search?search=string"
type: GET
headers: headers
];
if (response.get("status_code") == 200) {
info "Request successful";
responseData = response.get("response");
info responseData;
} else {
info "Request failed with status: " + response.get("status_code");
info response.get("response");
}
Response
Successful response
{
"data": {
"search_result": []
},
"message": "Content search completed successfully",
"request_uri": "/vani/api/v1/editions/96499735/teams/3009000000002003/frames/search",
"status": "success"
}
Invalid request - validation failed
{
"error": {
"details": {
"error_code": "IAM1031",
"message": "Invalid request - validation failed"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/frames/search",
"status": "error"
}
Unauthorized - missing or invalid access token
{
"error": {
"details": {
"error_code": "IAM1100",
"message": "Unauthorized - missing or invalid access token"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/frames/search",
"status": "error"
}
Not found - a resource named in the path does not exist, or is not visible to the caller
{
"error": {
"details": {
"error_code": "IAM1001",
"message": "Not found - a resource named in the path does not exist, or is not visible to the caller"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/frames/search",
"status": "error"
}
Rate limit exceeded - this operation allows 500 requests per minute per user
{
"error": {
"details": {
"error_code": "IAM1055",
"message": "Rate limit exceeded - this operation allows 500 requests per minute per user"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/frames/search",
"status": "error"
}
Internal server error - the request was well-formed but could not be completed
{
"error": {
"details": {
"error_code": "U1001",
"message": "Internal server error - the request was well-formed but could not be completed"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/frames/search",
"status": "error"
}
Errors
5 status codes
400 Invalid request - validation failed 401 Unauthorized - missing or invalid access token 404 Not found - a resource named in the path does not exist, or is not visible to the caller 429 Rate limit exceeded - this operation allows 500 requests per minute per user 500 Internal server error - the request was well-formed but could not be completed
GET
/vani/api/v1/editions/{edition_id}/teams/{team_id}/search
Search all content in a team
Search all content in a team
OperationREAD
Rate limit500 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · team_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| team_idREQUIRED | string | The unique identifier of the team |
Query parameters search · from · limit · types
| Name | Type | Description |
|---|---|---|
| searchREQUIRED | string | The keyword or phrase to search for |
| fromOPTIONAL | string | The starting index from where the results should be fetched. Default value is 0 |
| limitOPTIONAL | string | The maximum number of results to return in the response. Default value is 20 |
| typesOPTIONAL | enum |
Comma-separated list of fields to include in the response
framesSearch the names and contents of frames.
commentsSearch comment text.
zonesSearch zone names.
shapesSearch the text on shapes.
|
Request
GET
curl -X GET "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/search?search=string" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"import requests
url = "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/search?search=string"
headers = {
"Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)const https = require('https');
const url = require('url');
const options = {
...url.parse('https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/search?search=string'),
method: 'GET',
headers: {
'Authorization': 'Zoho-oauthtoken YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => {
const result = JSON.parse(data);
// Process the response data
});
});
req.end();import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
public class ApiClient {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/search?search=string"))
.header("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN")
.timeout(Duration.ofSeconds(30));
.header("Content-Type", "application/json")
HttpRequest request = requestBuilder
.GET(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}info "Making API request to: https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/search?search=string";
headers = Map();
headers.put("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN");
headers.put("Content-Type", "application/json");
response = invokeurl
[
url: "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/search?search=string"
type: GET
headers: headers
];
if (response.get("status_code") == 200) {
info "Request successful";
responseData = response.get("response");
info responseData;
} else {
info "Request failed with status: " + response.get("status_code");
info response.get("response");
}
Response
Successful response
{
"data": {
"search_result": {}
},
"message": "Content search completed successfully",
"request_uri": "/vani/api/v1/editions/96499735/teams/3009000000002003/search",
"status": "success"
}
Invalid request - validation failed
{
"error": {
"details": {
"error_code": "IAM1031",
"message": "Invalid request - validation failed"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/search",
"status": "error"
}
Unauthorized - missing or invalid access token
{
"error": {
"details": {
"error_code": "IAM1100",
"message": "Unauthorized - missing or invalid access token"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/search",
"status": "error"
}
Not found - a resource named in the path does not exist, or is not visible to the caller
{
"error": {
"details": {
"error_code": "IAM1001",
"message": "Not found - a resource named in the path does not exist, or is not visible to the caller"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/search",
"status": "error"
}
Rate limit exceeded - this operation allows 500 requests per minute per user
{
"error": {
"details": {
"error_code": "IAM1055",
"message": "Rate limit exceeded - this operation allows 500 requests per minute per user"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/search",
"status": "error"
}
Internal server error - the request was well-formed but could not be completed
{
"error": {
"details": {
"error_code": "U1001",
"message": "Internal server error - the request was well-formed but could not be completed"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/search",
"status": "error"
}
Errors
5 status codes
400 Invalid request - validation failed 401 Unauthorized - missing or invalid access token 404 Not found - a resource named in the path does not exist, or is not visible to the caller 429 Rate limit exceeded - this operation allows 500 requests per minute per user 500 Internal server error - the request was well-formed but could not be completed
GET
/vani/api/v1/editions/{edition_id}/teams/{team_id}/members/search
Search the members of a team
Search the members of a team
OperationREAD
Rate limit500 requests / minute · per user
OAuth scopes
Vani.teams.READPath parameters edition_id · team_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| team_idREQUIRED | string | The unique identifier of the team |
Query parameters fields · search · roles · subscriber_state · from · limit
| Name | Type | Description |
|---|---|---|
| fieldsOPTIONAL | enum |
Specifies the fields (comma-separated) to retrieve
zuidrole_nameadded_timeadded_bymodified_timedisplay_namemail_idedition_idteam_idinvited_time
|
| searchREQUIRED | string | The keyword or phrase to search for |
| rolesOPTIONAL | enum |
Parameter: roles
TEAM_ADMINCan administer the team, including its members.
MEMBERA regular member of the team.
TEAM_GUESTA guest with limited access to the team.
|
| subscriber_stateOPTIONAL | enum |
Parameter: subscriber_state
ACTIVEMembers currently occupying a subscription seat.
INACTIVEMembers not occupying a subscription seat.
|
| fromOPTIONAL | string | The starting index from where the results should be fetched. Default value is 0 |
| limitOPTIONAL | string | The maximum number of results to return in the response. Default value is 20 |
Request
GET
curl -X GET "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/members/search?search=string" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"import requests
url = "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/members/search?search=string"
headers = {
"Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)const https = require('https');
const url = require('url');
const options = {
...url.parse('https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/members/search?search=string'),
method: 'GET',
headers: {
'Authorization': 'Zoho-oauthtoken YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => {
const result = JSON.parse(data);
// Process the response data
});
});
req.end();import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
public class ApiClient {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/members/search?search=string"))
.header("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN")
.timeout(Duration.ofSeconds(30));
.header("Content-Type", "application/json")
HttpRequest request = requestBuilder
.GET(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}info "Making API request to: https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/members/search?search=string";
headers = Map();
headers.put("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN");
headers.put("Content-Type", "application/json");
response = invokeurl
[
url: "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/teams/{team_id}/members/search?search=string"
type: GET
headers: headers
];
if (response.get("status_code") == 200) {
info "Request successful";
responseData = response.get("response");
info responseData;
} else {
info "Request failed with status: " + response.get("status_code");
info response.get("response");
}
Response
Successful response
{
"data": {
"next_from": 0,
"search_result": []
},
"message": "Team member search completed successfully",
"request_uri": "/vani/api/v1/editions/112255940/teams/5777000000002017/members/search",
"status": "success"
}
Invalid request - validation failed
{
"error": {
"details": {
"error_code": "IAM1031",
"message": "Invalid request - validation failed"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/members/search",
"status": "error"
}
Unauthorized - missing or invalid access token
{
"error": {
"details": {
"edition_id": "75918186",
"current_user_id": "96384499",
"error_code": "T1006",
"team_id": "693000000002001",
"message": "User is not a member of the team"
}
},
"request_uri": "/vani/api/v1/editions/75918186/teams/693000000002001/members/search",
"status": "error"
}
Not found - a resource named in the path does not exist, or is not visible to the caller
{
"error": {
"details": {
"edition_id": "112255940",
"current_user_id": "82512958",
"error_code": "T1023",
"message": "Invalid team"
}
},
"request_uri": "/vani/api/v1/editions/112255940/teams/5777000000009999/members/search",
"status": "error"
}
Rate limit exceeded - this operation allows 500 requests per minute per user
{
"error": {
"details": {
"error_code": "IAM1055",
"message": "Rate limit exceeded - this operation allows 500 requests per minute per user"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/members/search",
"status": "error"
}
Internal server error - the request was well-formed but could not be completed
{
"error": {
"details": {
"error_code": "U1001",
"message": "Internal server error - the request was well-formed but could not be completed"
}
},
"request_uri": "/vani/api/v1/editions/{edition_id}/teams/{team_id}/members/search",
"status": "error"
}
Errors
5 status codes
400 Invalid request - validation failed 401 Unauthorized - missing or invalid access token 404 Not found - a resource named in the path does not exist, or is not visible to the caller 429 Rate limit exceeded - this operation allows 500 requests per minute per user 500 Internal server error - the request was well-formed but could not be completed