Generate keywords for search
curl --request POST \
--url https://rest.forestreet.com/v2/discovery/search-criteria/keywords \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"userPrompt": "Find AI-powered transcription services that serve enterprise healthcare customers",
"marketName": "AI Healthcare Transcription Services",
"marketType": "service",
"marketRole": "serviceProvider",
"keywords": {
"features": [
"AI transcription",
"speech-to-text",
"healthcare"
],
"user": [
"healthcare",
"enterprise",
"hospitals"
],
"synonyms": [
"transcription",
"dictation",
"voice-to-text"
],
"irrelevant": [
"manual transcription",
"human transcription"
]
},
"seedDomains": [],
"count": 50,
"locations": [
{
"country": "GB",
"address": [
"123 Healthcare St",
"Suite 100"
],
"coordinates": [
51.5074,
-0.1278
]
}
]
}
'import requests
url = "https://rest.forestreet.com/v2/discovery/search-criteria/keywords"
payload = {
"userPrompt": "Find AI-powered transcription services that serve enterprise healthcare customers",
"marketName": "AI Healthcare Transcription Services",
"marketType": "service",
"marketRole": "serviceProvider",
"keywords": {
"features": ["AI transcription", "speech-to-text", "healthcare"],
"user": ["healthcare", "enterprise", "hospitals"],
"synonyms": ["transcription", "dictation", "voice-to-text"],
"irrelevant": ["manual transcription", "human transcription"]
},
"seedDomains": [],
"count": 50,
"locations": [
{
"country": "GB",
"address": ["123 Healthcare St", "Suite 100"],
"coordinates": [51.5074, -0.1278]
}
]
}
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({
userPrompt: 'Find AI-powered transcription services that serve enterprise healthcare customers',
marketName: 'AI Healthcare Transcription Services',
marketType: 'service',
marketRole: 'serviceProvider',
keywords: {
features: ['AI transcription', 'speech-to-text', 'healthcare'],
user: ['healthcare', 'enterprise', 'hospitals'],
synonyms: ['transcription', 'dictation', 'voice-to-text'],
irrelevant: ['manual transcription', 'human transcription']
},
seedDomains: [],
count: 50,
locations: [
{
country: 'GB',
address: ['123 Healthcare St', 'Suite 100'],
coordinates: [51.5074, -0.1278]
}
]
})
};
fetch('https://rest.forestreet.com/v2/discovery/search-criteria/keywords', 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://rest.forestreet.com/v2/discovery/search-criteria/keywords",
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([
'userPrompt' => 'Find AI-powered transcription services that serve enterprise healthcare customers',
'marketName' => 'AI Healthcare Transcription Services',
'marketType' => 'service',
'marketRole' => 'serviceProvider',
'keywords' => [
'features' => [
'AI transcription',
'speech-to-text',
'healthcare'
],
'user' => [
'healthcare',
'enterprise',
'hospitals'
],
'synonyms' => [
'transcription',
'dictation',
'voice-to-text'
],
'irrelevant' => [
'manual transcription',
'human transcription'
]
],
'seedDomains' => [
],
'count' => 50,
'locations' => [
[
'country' => 'GB',
'address' => [
'123 Healthcare St',
'Suite 100'
],
'coordinates' => [
51.5074,
-0.1278
]
]
]
]),
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://rest.forestreet.com/v2/discovery/search-criteria/keywords"
payload := strings.NewReader("{\n \"userPrompt\": \"Find AI-powered transcription services that serve enterprise healthcare customers\",\n \"marketName\": \"AI Healthcare Transcription Services\",\n \"marketType\": \"service\",\n \"marketRole\": \"serviceProvider\",\n \"keywords\": {\n \"features\": [\n \"AI transcription\",\n \"speech-to-text\",\n \"healthcare\"\n ],\n \"user\": [\n \"healthcare\",\n \"enterprise\",\n \"hospitals\"\n ],\n \"synonyms\": [\n \"transcription\",\n \"dictation\",\n \"voice-to-text\"\n ],\n \"irrelevant\": [\n \"manual transcription\",\n \"human transcription\"\n ]\n },\n \"seedDomains\": [],\n \"count\": 50,\n \"locations\": [\n {\n \"country\": \"GB\",\n \"address\": [\n \"123 Healthcare St\",\n \"Suite 100\"\n ],\n \"coordinates\": [\n 51.5074,\n -0.1278\n ]\n }\n ]\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://rest.forestreet.com/v2/discovery/search-criteria/keywords")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"userPrompt\": \"Find AI-powered transcription services that serve enterprise healthcare customers\",\n \"marketName\": \"AI Healthcare Transcription Services\",\n \"marketType\": \"service\",\n \"marketRole\": \"serviceProvider\",\n \"keywords\": {\n \"features\": [\n \"AI transcription\",\n \"speech-to-text\",\n \"healthcare\"\n ],\n \"user\": [\n \"healthcare\",\n \"enterprise\",\n \"hospitals\"\n ],\n \"synonyms\": [\n \"transcription\",\n \"dictation\",\n \"voice-to-text\"\n ],\n \"irrelevant\": [\n \"manual transcription\",\n \"human transcription\"\n ]\n },\n \"seedDomains\": [],\n \"count\": 50,\n \"locations\": [\n {\n \"country\": \"GB\",\n \"address\": [\n \"123 Healthcare St\",\n \"Suite 100\"\n ],\n \"coordinates\": [\n 51.5074,\n -0.1278\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.forestreet.com/v2/discovery/search-criteria/keywords")
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 \"userPrompt\": \"Find AI-powered transcription services that serve enterprise healthcare customers\",\n \"marketName\": \"AI Healthcare Transcription Services\",\n \"marketType\": \"service\",\n \"marketRole\": \"serviceProvider\",\n \"keywords\": {\n \"features\": [\n \"AI transcription\",\n \"speech-to-text\",\n \"healthcare\"\n ],\n \"user\": [\n \"healthcare\",\n \"enterprise\",\n \"hospitals\"\n ],\n \"synonyms\": [\n \"transcription\",\n \"dictation\",\n \"voice-to-text\"\n ],\n \"irrelevant\": [\n \"manual transcription\",\n \"human transcription\"\n ]\n },\n \"seedDomains\": [],\n \"count\": 50,\n \"locations\": [\n {\n \"country\": \"GB\",\n \"address\": [\n \"123 Healthcare St\",\n \"Suite 100\"\n ],\n \"coordinates\": [\n 51.5074,\n -0.1278\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"metadata": {},
"data": [
"medical transcription software",
"healthcare AI transcription",
"enterprise clinical documentation",
"HIPAA compliant transcription services",
"medical voice recognition software",
"automated clinical notes",
"healthcare speech-to-text solutions",
"hospital dictation systems"
]
}{
"success": false,
"errorCode": "INVALID_INPUT",
"message": "Bad Request"
}{
"success": false,
"errorCode": "UNAUTHORISED",
"message": "Unauthorized - User not authenticated"
}{
"success": false,
"errorCode": "FORBIDDEN",
"message": "Forbidden"
}{
"success": false,
"errorCode": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}Discovery Process
Generate keywords for search
Generate AI-suggested keywords to improve your search criteria.
POST
/
v2
/
discovery
/
search-criteria
/
keywords
Generate keywords for search
curl --request POST \
--url https://rest.forestreet.com/v2/discovery/search-criteria/keywords \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"userPrompt": "Find AI-powered transcription services that serve enterprise healthcare customers",
"marketName": "AI Healthcare Transcription Services",
"marketType": "service",
"marketRole": "serviceProvider",
"keywords": {
"features": [
"AI transcription",
"speech-to-text",
"healthcare"
],
"user": [
"healthcare",
"enterprise",
"hospitals"
],
"synonyms": [
"transcription",
"dictation",
"voice-to-text"
],
"irrelevant": [
"manual transcription",
"human transcription"
]
},
"seedDomains": [],
"count": 50,
"locations": [
{
"country": "GB",
"address": [
"123 Healthcare St",
"Suite 100"
],
"coordinates": [
51.5074,
-0.1278
]
}
]
}
'import requests
url = "https://rest.forestreet.com/v2/discovery/search-criteria/keywords"
payload = {
"userPrompt": "Find AI-powered transcription services that serve enterprise healthcare customers",
"marketName": "AI Healthcare Transcription Services",
"marketType": "service",
"marketRole": "serviceProvider",
"keywords": {
"features": ["AI transcription", "speech-to-text", "healthcare"],
"user": ["healthcare", "enterprise", "hospitals"],
"synonyms": ["transcription", "dictation", "voice-to-text"],
"irrelevant": ["manual transcription", "human transcription"]
},
"seedDomains": [],
"count": 50,
"locations": [
{
"country": "GB",
"address": ["123 Healthcare St", "Suite 100"],
"coordinates": [51.5074, -0.1278]
}
]
}
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({
userPrompt: 'Find AI-powered transcription services that serve enterprise healthcare customers',
marketName: 'AI Healthcare Transcription Services',
marketType: 'service',
marketRole: 'serviceProvider',
keywords: {
features: ['AI transcription', 'speech-to-text', 'healthcare'],
user: ['healthcare', 'enterprise', 'hospitals'],
synonyms: ['transcription', 'dictation', 'voice-to-text'],
irrelevant: ['manual transcription', 'human transcription']
},
seedDomains: [],
count: 50,
locations: [
{
country: 'GB',
address: ['123 Healthcare St', 'Suite 100'],
coordinates: [51.5074, -0.1278]
}
]
})
};
fetch('https://rest.forestreet.com/v2/discovery/search-criteria/keywords', 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://rest.forestreet.com/v2/discovery/search-criteria/keywords",
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([
'userPrompt' => 'Find AI-powered transcription services that serve enterprise healthcare customers',
'marketName' => 'AI Healthcare Transcription Services',
'marketType' => 'service',
'marketRole' => 'serviceProvider',
'keywords' => [
'features' => [
'AI transcription',
'speech-to-text',
'healthcare'
],
'user' => [
'healthcare',
'enterprise',
'hospitals'
],
'synonyms' => [
'transcription',
'dictation',
'voice-to-text'
],
'irrelevant' => [
'manual transcription',
'human transcription'
]
],
'seedDomains' => [
],
'count' => 50,
'locations' => [
[
'country' => 'GB',
'address' => [
'123 Healthcare St',
'Suite 100'
],
'coordinates' => [
51.5074,
-0.1278
]
]
]
]),
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://rest.forestreet.com/v2/discovery/search-criteria/keywords"
payload := strings.NewReader("{\n \"userPrompt\": \"Find AI-powered transcription services that serve enterprise healthcare customers\",\n \"marketName\": \"AI Healthcare Transcription Services\",\n \"marketType\": \"service\",\n \"marketRole\": \"serviceProvider\",\n \"keywords\": {\n \"features\": [\n \"AI transcription\",\n \"speech-to-text\",\n \"healthcare\"\n ],\n \"user\": [\n \"healthcare\",\n \"enterprise\",\n \"hospitals\"\n ],\n \"synonyms\": [\n \"transcription\",\n \"dictation\",\n \"voice-to-text\"\n ],\n \"irrelevant\": [\n \"manual transcription\",\n \"human transcription\"\n ]\n },\n \"seedDomains\": [],\n \"count\": 50,\n \"locations\": [\n {\n \"country\": \"GB\",\n \"address\": [\n \"123 Healthcare St\",\n \"Suite 100\"\n ],\n \"coordinates\": [\n 51.5074,\n -0.1278\n ]\n }\n ]\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://rest.forestreet.com/v2/discovery/search-criteria/keywords")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"userPrompt\": \"Find AI-powered transcription services that serve enterprise healthcare customers\",\n \"marketName\": \"AI Healthcare Transcription Services\",\n \"marketType\": \"service\",\n \"marketRole\": \"serviceProvider\",\n \"keywords\": {\n \"features\": [\n \"AI transcription\",\n \"speech-to-text\",\n \"healthcare\"\n ],\n \"user\": [\n \"healthcare\",\n \"enterprise\",\n \"hospitals\"\n ],\n \"synonyms\": [\n \"transcription\",\n \"dictation\",\n \"voice-to-text\"\n ],\n \"irrelevant\": [\n \"manual transcription\",\n \"human transcription\"\n ]\n },\n \"seedDomains\": [],\n \"count\": 50,\n \"locations\": [\n {\n \"country\": \"GB\",\n \"address\": [\n \"123 Healthcare St\",\n \"Suite 100\"\n ],\n \"coordinates\": [\n 51.5074,\n -0.1278\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.forestreet.com/v2/discovery/search-criteria/keywords")
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 \"userPrompt\": \"Find AI-powered transcription services that serve enterprise healthcare customers\",\n \"marketName\": \"AI Healthcare Transcription Services\",\n \"marketType\": \"service\",\n \"marketRole\": \"serviceProvider\",\n \"keywords\": {\n \"features\": [\n \"AI transcription\",\n \"speech-to-text\",\n \"healthcare\"\n ],\n \"user\": [\n \"healthcare\",\n \"enterprise\",\n \"hospitals\"\n ],\n \"synonyms\": [\n \"transcription\",\n \"dictation\",\n \"voice-to-text\"\n ],\n \"irrelevant\": [\n \"manual transcription\",\n \"human transcription\"\n ]\n },\n \"seedDomains\": [],\n \"count\": 50,\n \"locations\": [\n {\n \"country\": \"GB\",\n \"address\": [\n \"123 Healthcare St\",\n \"Suite 100\"\n ],\n \"coordinates\": [\n 51.5074,\n -0.1278\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"metadata": {},
"data": [
"medical transcription software",
"healthcare AI transcription",
"enterprise clinical documentation",
"HIPAA compliant transcription services",
"medical voice recognition software",
"automated clinical notes",
"healthcare speech-to-text solutions",
"hospital dictation systems"
]
}{
"success": false,
"errorCode": "INVALID_INPUT",
"message": "Bad Request"
}{
"success": false,
"errorCode": "UNAUTHORISED",
"message": "Unauthorized - User not authenticated"
}{
"success": false,
"errorCode": "FORBIDDEN",
"message": "Forbidden"
}{
"success": false,
"errorCode": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}Overview
This endpoint generates AI-suggested keywords to help refine and improve your search criteria for better discovery results.Workflow Step: This is an optional refinement step in Phase 1 of the Market Research
Workflow.
Usage
Use this endpoint to enhance your search criteria with AI-suggested keywords:- Refinement: Improve existing search criteria with better keywords
- Discovery: Find relevant terms you might have missed
- Optimization: Get more targeted and comprehensive search results
Best Practices
Optional Step: This endpoint is not required but can significantly improve your discovery results by suggesting
relevant keywords you might not have considered.
Important: Review the suggested keywords carefully before using them in your discovery process. Not all
suggestions may be relevant to your specific use case.
Authorizations
apiKeyAuthbearerAuthsessionIdQuery
Pass a static API key for every request, provided by your customer support.
Body
application/json
Show child attributes
Show child attributes
⌘I