Search Groups
curl --request POST \
--url https://api.thehyperstack.com/v1/groups/search \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"keyword": "<string>",
"title": "<string>",
"strict": true,
"page": 123,
"page_size": 123
}
'import requests
url = "https://api.thehyperstack.com/v1/groups/search"
payload = {
"keyword": "<string>",
"title": "<string>",
"strict": True,
"page": 123,
"page_size": 123
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
keyword: '<string>',
title: '<string>',
strict: true,
page: 123,
page_size: 123
})
};
fetch('https://api.thehyperstack.com/v1/groups/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.thehyperstack.com/v1/groups/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([
'keyword' => '<string>',
'title' => '<string>',
'strict' => true,
'page' => 123,
'page_size' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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.thehyperstack.com/v1/groups/search"
payload := strings.NewReader("{\n \"keyword\": \"<string>\",\n \"title\": \"<string>\",\n \"strict\": true,\n \"page\": 123,\n \"page_size\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.thehyperstack.com/v1/groups/search")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"keyword\": \"<string>\",\n \"title\": \"<string>\",\n \"strict\": true,\n \"page\": 123,\n \"page_size\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.thehyperstack.com/v1/groups/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"keyword\": \"<string>\",\n \"title\": \"<string>\",\n \"strict\": true,\n \"page\": 123,\n \"page_size\": 123\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"total": 2,
"page": 1,
"page_size": 50,
"groups": [
{
"title": "Cloud Security Fundamentals",
"group_key": "Kq7Zp2LmX9aB",
"group_code": "CSF-2026",
"last_modified": "2026-03-02T11:20:45.118204Z",
"created_at": "2026-02-14T09:05:12.540911Z"
},
{
"title": "Network Security Advanced",
"group_key": "Wm2Xc6VbN8pQ",
"group_code": "NSA-2025",
"last_modified": "2025-11-20T16:40:03.902117Z",
"created_at": "2025-09-01T08:30:27.215630Z"
}
]
}
{
"success": false,
"error": "page must be a whole number of 1 or more, and page_size a whole number up to 500",
"error_code": "invalid_page"
}
{
"detail": "Invalid token or organization not found"
}
Credential Groups
Search Groups
POST
/
v1
/
groups
/
search
Search Groups
curl --request POST \
--url https://api.thehyperstack.com/v1/groups/search \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"keyword": "<string>",
"title": "<string>",
"strict": true,
"page": 123,
"page_size": 123
}
'import requests
url = "https://api.thehyperstack.com/v1/groups/search"
payload = {
"keyword": "<string>",
"title": "<string>",
"strict": True,
"page": 123,
"page_size": 123
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
keyword: '<string>',
title: '<string>',
strict: true,
page: 123,
page_size: 123
})
};
fetch('https://api.thehyperstack.com/v1/groups/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.thehyperstack.com/v1/groups/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([
'keyword' => '<string>',
'title' => '<string>',
'strict' => true,
'page' => 123,
'page_size' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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.thehyperstack.com/v1/groups/search"
payload := strings.NewReader("{\n \"keyword\": \"<string>\",\n \"title\": \"<string>\",\n \"strict\": true,\n \"page\": 123,\n \"page_size\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.thehyperstack.com/v1/groups/search")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"keyword\": \"<string>\",\n \"title\": \"<string>\",\n \"strict\": true,\n \"page\": 123,\n \"page_size\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.thehyperstack.com/v1/groups/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"keyword\": \"<string>\",\n \"title\": \"<string>\",\n \"strict\": true,\n \"page\": 123,\n \"page_size\": 123\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"total": 2,
"page": 1,
"page_size": 50,
"groups": [
{
"title": "Cloud Security Fundamentals",
"group_key": "Kq7Zp2LmX9aB",
"group_code": "CSF-2026",
"last_modified": "2026-03-02T11:20:45.118204Z",
"created_at": "2026-02-14T09:05:12.540911Z"
},
{
"title": "Network Security Advanced",
"group_key": "Wm2Xc6VbN8pQ",
"group_code": "NSA-2025",
"last_modified": "2025-11-20T16:40:03.902117Z",
"created_at": "2025-09-01T08:30:27.215630Z"
}
]
}
{
"success": false,
"error": "page must be a whole number of 1 or more, and page_size a whole number up to 500",
"error_code": "invalid_page"
}
{
"detail": "Invalid token or organization not found"
}
Description
Finds credential groups by words in their title. Results are newest first. Archived groups are included. With nokeyword, it returns all groups.
Headers
string
required
Your API key:
Bearer YOUR_API_KEY. Create a key in the Studio under Settings → Developers.Body Parameters
string
Words to look for in group titles. Case does not matter. A group matches when its title contains any one of the words, or part of a word.
string
Same as
keyword. Used only when keyword is empty.boolean
default:"false"
true to match the whole keyword as one phrase, instead of any of its words.number
default:"1"
Page number. Starts at
1. Send a whole number, such as 2 or "2".number
default:"50"
How many groups on each page, up to
500. A bigger value is cut to 500, and page_size in the response shows the size used.Success Response Fields
boolean
true when the request worked.number
Number of groups that match.
number
The page number of this response.
number
The page size used.
array[object]
Responses
{
"success": true,
"total": 2,
"page": 1,
"page_size": 50,
"groups": [
{
"title": "Cloud Security Fundamentals",
"group_key": "Kq7Zp2LmX9aB",
"group_code": "CSF-2026",
"last_modified": "2026-03-02T11:20:45.118204Z",
"created_at": "2026-02-14T09:05:12.540911Z"
},
{
"title": "Network Security Advanced",
"group_key": "Wm2Xc6VbN8pQ",
"group_code": "NSA-2025",
"last_modified": "2025-11-20T16:40:03.902117Z",
"created_at": "2025-09-01T08:30:27.215630Z"
}
]
}
{
"success": false,
"error": "page must be a whole number of 1 or more, and page_size a whole number up to 500",
"error_code": "invalid_page"
}
{
"detail": "Invalid token or organization not found"
}
curl -X POST "https://api.thehyperstack.com/v1/groups/search" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"keyword": "security",
"page": 1,
"page_size": 50
}'
Last modified on October 20, 2026
Was this page helpful?

