Start discovery for existing market
curl --request POST \
--url https://rest.forestreet.com/v2/discovery/{marketId}/start \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"searchCriteria": {
"marketName": "AI Healthcare Transcription Services",
"userPrompt": "Find AI-powered transcription services that serve enterprise healthcare customers",
"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,
"assertions": null,
"constraints": null,
"projectKind": "second_pass",
"performSearch": true,
"locations": [
{
"country": "GB",
"address": null,
"coordinates": null
}
]
}
}
'import requests
url = "https://rest.forestreet.com/v2/discovery/{marketId}/start"
payload = { "searchCriteria": {
"marketName": "AI Healthcare Transcription Services",
"userPrompt": "Find AI-powered transcription services that serve enterprise healthcare customers",
"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,
"assertions": None,
"constraints": None,
"projectKind": "second_pass",
"performSearch": True,
"locations": [
{
"country": "GB",
"address": None,
"coordinates": None
}
]
} }
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({
searchCriteria: {
marketName: 'AI Healthcare Transcription Services',
userPrompt: 'Find AI-powered transcription services that serve enterprise healthcare customers',
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,
assertions: null,
constraints: null,
projectKind: 'second_pass',
performSearch: true,
locations: [{country: 'GB', address: null, coordinates: null}]
}
})
};
fetch('https://rest.forestreet.com/v2/discovery/{marketId}/start', 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/{marketId}/start",
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([
'searchCriteria' => [
'marketName' => 'AI Healthcare Transcription Services',
'userPrompt' => 'Find AI-powered transcription services that serve enterprise healthcare customers',
'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,
'assertions' => null,
'constraints' => null,
'projectKind' => 'second_pass',
'performSearch' => true,
'locations' => [
[
'country' => 'GB',
'address' => null,
'coordinates' => null
]
]
]
]),
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/{marketId}/start"
payload := strings.NewReader("{\n \"searchCriteria\": {\n \"marketName\": \"AI Healthcare Transcription Services\",\n \"userPrompt\": \"Find AI-powered transcription services that serve enterprise healthcare customers\",\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 \"assertions\": null,\n \"constraints\": null,\n \"projectKind\": \"second_pass\",\n \"performSearch\": true,\n \"locations\": [\n {\n \"country\": \"GB\",\n \"address\": null,\n \"coordinates\": null\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/{marketId}/start")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"searchCriteria\": {\n \"marketName\": \"AI Healthcare Transcription Services\",\n \"userPrompt\": \"Find AI-powered transcription services that serve enterprise healthcare customers\",\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 \"assertions\": null,\n \"constraints\": null,\n \"projectKind\": \"second_pass\",\n \"performSearch\": true,\n \"locations\": [\n {\n \"country\": \"GB\",\n \"address\": null,\n \"coordinates\": null\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.forestreet.com/v2/discovery/{marketId}/start")
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 \"searchCriteria\": {\n \"marketName\": \"AI Healthcare Transcription Services\",\n \"userPrompt\": \"Find AI-powered transcription services that serve enterprise healthcare customers\",\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 \"assertions\": null,\n \"constraints\": null,\n \"projectKind\": \"second_pass\",\n \"performSearch\": true,\n \"locations\": [\n {\n \"country\": \"GB\",\n \"address\": null,\n \"coordinates\": null\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"marketId": 12345
},
"data": [
{
"jobId": 67890,
"workflowId": 1,
"workflowName": "second_pass",
"startTime": "2024-01-15T10:30:00Z"
}
]
}{
"success": false,
"errorCode": "INVALID_INPUT",
"message": "Invalid input provided"
}{
"success": false,
"errorCode": "QUOTA_EXCEEDED",
"message": "Payment Required - Team quota exceeded"
}{
"success": false,
"errorCode": "FORBIDDEN",
"message": "Forbidden"
}{
"success": false,
"errorCode": "NOT_FOUND",
"message": "Not Found"
}{
"success": false,
"errorCode": "CONFLICT",
"message": "Conflict"
}{
"success": false,
"errorCode": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}Discovery Process
Start discovery for existing market
Add more companies to an existing market using AI-powered discovery process.
POST
/
v2
/
discovery
/
{marketId}
/
start
Start discovery for existing market
curl --request POST \
--url https://rest.forestreet.com/v2/discovery/{marketId}/start \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"searchCriteria": {
"marketName": "AI Healthcare Transcription Services",
"userPrompt": "Find AI-powered transcription services that serve enterprise healthcare customers",
"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,
"assertions": null,
"constraints": null,
"projectKind": "second_pass",
"performSearch": true,
"locations": [
{
"country": "GB",
"address": null,
"coordinates": null
}
]
}
}
'import requests
url = "https://rest.forestreet.com/v2/discovery/{marketId}/start"
payload = { "searchCriteria": {
"marketName": "AI Healthcare Transcription Services",
"userPrompt": "Find AI-powered transcription services that serve enterprise healthcare customers",
"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,
"assertions": None,
"constraints": None,
"projectKind": "second_pass",
"performSearch": True,
"locations": [
{
"country": "GB",
"address": None,
"coordinates": None
}
]
} }
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({
searchCriteria: {
marketName: 'AI Healthcare Transcription Services',
userPrompt: 'Find AI-powered transcription services that serve enterprise healthcare customers',
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,
assertions: null,
constraints: null,
projectKind: 'second_pass',
performSearch: true,
locations: [{country: 'GB', address: null, coordinates: null}]
}
})
};
fetch('https://rest.forestreet.com/v2/discovery/{marketId}/start', 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/{marketId}/start",
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([
'searchCriteria' => [
'marketName' => 'AI Healthcare Transcription Services',
'userPrompt' => 'Find AI-powered transcription services that serve enterprise healthcare customers',
'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,
'assertions' => null,
'constraints' => null,
'projectKind' => 'second_pass',
'performSearch' => true,
'locations' => [
[
'country' => 'GB',
'address' => null,
'coordinates' => null
]
]
]
]),
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/{marketId}/start"
payload := strings.NewReader("{\n \"searchCriteria\": {\n \"marketName\": \"AI Healthcare Transcription Services\",\n \"userPrompt\": \"Find AI-powered transcription services that serve enterprise healthcare customers\",\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 \"assertions\": null,\n \"constraints\": null,\n \"projectKind\": \"second_pass\",\n \"performSearch\": true,\n \"locations\": [\n {\n \"country\": \"GB\",\n \"address\": null,\n \"coordinates\": null\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/{marketId}/start")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"searchCriteria\": {\n \"marketName\": \"AI Healthcare Transcription Services\",\n \"userPrompt\": \"Find AI-powered transcription services that serve enterprise healthcare customers\",\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 \"assertions\": null,\n \"constraints\": null,\n \"projectKind\": \"second_pass\",\n \"performSearch\": true,\n \"locations\": [\n {\n \"country\": \"GB\",\n \"address\": null,\n \"coordinates\": null\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.forestreet.com/v2/discovery/{marketId}/start")
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 \"searchCriteria\": {\n \"marketName\": \"AI Healthcare Transcription Services\",\n \"userPrompt\": \"Find AI-powered transcription services that serve enterprise healthcare customers\",\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 \"assertions\": null,\n \"constraints\": null,\n \"projectKind\": \"second_pass\",\n \"performSearch\": true,\n \"locations\": [\n {\n \"country\": \"GB\",\n \"address\": null,\n \"coordinates\": null\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"marketId": 12345
},
"data": [
{
"jobId": 67890,
"workflowId": 1,
"workflowName": "second_pass",
"startTime": "2024-01-15T10:30:00Z"
}
]
}{
"success": false,
"errorCode": "INVALID_INPUT",
"message": "Invalid input provided"
}{
"success": false,
"errorCode": "QUOTA_EXCEEDED",
"message": "Payment Required - Team quota exceeded"
}{
"success": false,
"errorCode": "FORBIDDEN",
"message": "Forbidden"
}{
"success": false,
"errorCode": "NOT_FOUND",
"message": "Not Found"
}{
"success": false,
"errorCode": "CONFLICT",
"message": "Conflict"
}{
"success": false,
"errorCode": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}Authorizations
apiKeyAuthbearerAuthsessionIdQuery
Pass a static API key for every request, provided by your customer support.
Path Parameters
Unique identifier for the market study.
Query Parameters
Unique identifier for the team to use for this discovery.
Unique identifier for the collection that the market belongs to.
Body
application/json
⌘I