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>",
"competitorDomains": [
"<string>"
],
"domain": "<string>",
"idealCustomerProfileId": "<string>",
"name": "<string>",
"seedKeywords": [
"<string>"
]
}
'import requests
url = "https://api.parallellabs.app/api/v0/research/projects/{projectId}"
payload = {
"companyId": "<string>",
"competitorDomains": ["<string>"],
"domain": "<string>",
"idealCustomerProfileId": "<string>",
"name": "<string>",
"seedKeywords": ["<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>',
competitorDomains: ['<string>'],
domain: '<string>',
idealCustomerProfileId: '<string>',
name: '<string>',
seedKeywords: ['<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>',
'competitorDomains' => [
'<string>'
],
'domain' => '<string>',
'idealCustomerProfileId' => '<string>',
'name' => '<string>',
'seedKeywords' => [
'<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 \"competitorDomains\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"idealCustomerProfileId\": \"<string>\",\n \"name\": \"<string>\",\n \"seedKeywords\": [\n \"<string>\"\n ]\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 \"competitorDomains\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"idealCustomerProfileId\": \"<string>\",\n \"name\": \"<string>\",\n \"seedKeywords\": [\n \"<string>\"\n ]\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 \"competitorDomains\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"idealCustomerProfileId\": \"<string>\",\n \"name\": \"<string>\",\n \"seedKeywords\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"project": {
"companyId": "<string>",
"competitorDomains": [
"<string>"
],
"createdBy": "<string>",
"created_date": "2023-11-07T05:31:56Z",
"domain": "<string>",
"id": "<string>",
"idealCustomerProfileId": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"name": "<string>",
"seedKeywords": [
"<string>"
],
"updated_date": "2023-11-07T05:31:56Z"
},
"success": true
}{
"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>",
"competitorDomains": [
"<string>"
],
"domain": "<string>",
"idealCustomerProfileId": "<string>",
"name": "<string>",
"seedKeywords": [
"<string>"
]
}
'import requests
url = "https://api.parallellabs.app/api/v0/research/projects/{projectId}"
payload = {
"companyId": "<string>",
"competitorDomains": ["<string>"],
"domain": "<string>",
"idealCustomerProfileId": "<string>",
"name": "<string>",
"seedKeywords": ["<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>',
competitorDomains: ['<string>'],
domain: '<string>',
idealCustomerProfileId: '<string>',
name: '<string>',
seedKeywords: ['<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>',
'competitorDomains' => [
'<string>'
],
'domain' => '<string>',
'idealCustomerProfileId' => '<string>',
'name' => '<string>',
'seedKeywords' => [
'<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 \"competitorDomains\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"idealCustomerProfileId\": \"<string>\",\n \"name\": \"<string>\",\n \"seedKeywords\": [\n \"<string>\"\n ]\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 \"competitorDomains\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"idealCustomerProfileId\": \"<string>\",\n \"name\": \"<string>\",\n \"seedKeywords\": [\n \"<string>\"\n ]\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 \"competitorDomains\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"idealCustomerProfileId\": \"<string>\",\n \"name\": \"<string>\",\n \"seedKeywords\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"project": {
"companyId": "<string>",
"competitorDomains": [
"<string>"
],
"createdBy": "<string>",
"created_date": "2023-11-07T05:31:56Z",
"domain": "<string>",
"id": "<string>",
"idealCustomerProfileId": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"name": "<string>",
"seedKeywords": [
"<string>"
],
"updated_date": "2023-11-07T05:31:56Z"
},
"success": true
}{
"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
Replacement competitor domain list
New domain to research
How often the project auto-runs. One of: manual, weekly, monthly.
Available options:
manual, weekly, monthly ICP to target
New project name
Replacement seed keyword list
Project status. One of: active, archived.
Available options:
active, archived ⌘I

