Update a research project's settings.
curl --request PATCH \
--url https://api.parallellabs.app/api/v0/research/projects/{projectId} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>",
"name": "<string>",
"domain": "<string>",
"competitorDomains": [
"<string>"
],
"seedKeywords": [
"<string>"
],
"idealCustomerProfileId": "<string>"
}
'import requests
url = "https://api.parallellabs.app/api/v0/research/projects/{projectId}"
payload = {
"companyId": "<string>",
"name": "<string>",
"domain": "<string>",
"competitorDomains": ["<string>"],
"seedKeywords": ["<string>"],
"idealCustomerProfileId": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companyId: '<string>',
name: '<string>',
domain: '<string>',
competitorDomains: ['<string>'],
seedKeywords: ['<string>'],
idealCustomerProfileId: '<string>'
})
};
fetch('https://api.parallellabs.app/api/v0/research/projects/{projectId}', 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.parallellabs.app/api/v0/research/projects/{projectId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'companyId' => '<string>',
'name' => '<string>',
'domain' => '<string>',
'competitorDomains' => [
'<string>'
],
'seedKeywords' => [
'<string>'
],
'idealCustomerProfileId' => '<string>'
]),
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://api.parallellabs.app/api/v0/research/projects/{projectId}"
payload := strings.NewReader("{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"domain\": \"<string>\",\n \"competitorDomains\": [\n \"<string>\"\n ],\n \"seedKeywords\": [\n \"<string>\"\n ],\n \"idealCustomerProfileId\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.parallellabs.app/api/v0/research/projects/{projectId}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"domain\": \"<string>\",\n \"competitorDomains\": [\n \"<string>\"\n ],\n \"seedKeywords\": [\n \"<string>\"\n ],\n \"idealCustomerProfileId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/research/projects/{projectId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"domain\": \"<string>\",\n \"competitorDomains\": [\n \"<string>\"\n ],\n \"seedKeywords\": [\n \"<string>\"\n ],\n \"idealCustomerProfileId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"project": {
"id": "<string>",
"companyId": "<string>",
"createdBy": "<string>",
"name": "<string>",
"domain": "<string>",
"competitorDomains": [
"<string>"
],
"seedKeywords": [
"<string>"
],
"idealCustomerProfileId": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"created_date": "2023-11-07T05:31:56Z",
"updated_date": "2023-11-07T05:31:56Z"
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Content Research
Update a research project's settings.
Changing the domain, competitors, seed keywords or ICP affects the next run; it does not re-score opportunities already found.
PATCH
/
api
/
v0
/
research
/
projects
/
{projectId}
Update a research project's settings.
curl --request PATCH \
--url https://api.parallellabs.app/api/v0/research/projects/{projectId} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>",
"name": "<string>",
"domain": "<string>",
"competitorDomains": [
"<string>"
],
"seedKeywords": [
"<string>"
],
"idealCustomerProfileId": "<string>"
}
'import requests
url = "https://api.parallellabs.app/api/v0/research/projects/{projectId}"
payload = {
"companyId": "<string>",
"name": "<string>",
"domain": "<string>",
"competitorDomains": ["<string>"],
"seedKeywords": ["<string>"],
"idealCustomerProfileId": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companyId: '<string>',
name: '<string>',
domain: '<string>',
competitorDomains: ['<string>'],
seedKeywords: ['<string>'],
idealCustomerProfileId: '<string>'
})
};
fetch('https://api.parallellabs.app/api/v0/research/projects/{projectId}', 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.parallellabs.app/api/v0/research/projects/{projectId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'companyId' => '<string>',
'name' => '<string>',
'domain' => '<string>',
'competitorDomains' => [
'<string>'
],
'seedKeywords' => [
'<string>'
],
'idealCustomerProfileId' => '<string>'
]),
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://api.parallellabs.app/api/v0/research/projects/{projectId}"
payload := strings.NewReader("{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"domain\": \"<string>\",\n \"competitorDomains\": [\n \"<string>\"\n ],\n \"seedKeywords\": [\n \"<string>\"\n ],\n \"idealCustomerProfileId\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.parallellabs.app/api/v0/research/projects/{projectId}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"domain\": \"<string>\",\n \"competitorDomains\": [\n \"<string>\"\n ],\n \"seedKeywords\": [\n \"<string>\"\n ],\n \"idealCustomerProfileId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/research/projects/{projectId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"domain\": \"<string>\",\n \"competitorDomains\": [\n \"<string>\"\n ],\n \"seedKeywords\": [\n \"<string>\"\n ],\n \"idealCustomerProfileId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"project": {
"id": "<string>",
"companyId": "<string>",
"createdBy": "<string>",
"name": "<string>",
"domain": "<string>",
"competitorDomains": [
"<string>"
],
"seedKeywords": [
"<string>"
],
"idealCustomerProfileId": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"created_date": "2023-11-07T05:31:56Z",
"updated_date": "2023-11-07T05:31:56Z"
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
CompanyApiKeyBearerAuth & CompanyId
Company API key - scoped to a specific company. Generate from the Integrations page in your dashboard.
Path Parameters
Body
application/json
Fields to update; only supplied fields change
Fields to update on an existing research project. Only supplied fields change.
Company ID that owns the project
New project name
New domain to research
Replacement competitor domain list
Replacement seed keyword list
ICP to target
Project status. One of: active, archived.
Available options:
active, archived How often the project auto-runs. One of: manual, weekly, monthly.
Available options:
manual, weekly, monthly ⌘I

