Create a new company
curl --request POST \
--url https://openapi.enginy.ai/v1/company \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"domain": "<string>",
"website": "<string>",
"companyLinkedInUrl": "<string>",
"listId": 123,
"mergeWithExisting": true
}
'import requests
url = "https://openapi.enginy.ai/v1/company"
payload = {
"name": "<string>",
"domain": "<string>",
"website": "<string>",
"companyLinkedInUrl": "<string>",
"listId": 123,
"mergeWithExisting": True
}
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({
name: '<string>',
domain: '<string>',
website: '<string>',
companyLinkedInUrl: '<string>',
listId: 123,
mergeWithExisting: true
})
};
fetch('https://openapi.enginy.ai/v1/company', 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://openapi.enginy.ai/v1/company",
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([
'name' => '<string>',
'domain' => '<string>',
'website' => '<string>',
'companyLinkedInUrl' => '<string>',
'listId' => 123,
'mergeWithExisting' => true
]),
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://openapi.enginy.ai/v1/company"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"domain\": \"<string>\",\n \"website\": \"<string>\",\n \"companyLinkedInUrl\": \"<string>\",\n \"listId\": 123,\n \"mergeWithExisting\": true\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://openapi.enginy.ai/v1/company")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"domain\": \"<string>\",\n \"website\": \"<string>\",\n \"companyLinkedInUrl\": \"<string>\",\n \"listId\": 123,\n \"mergeWithExisting\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.enginy.ai/v1/company")
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 \"name\": \"<string>\",\n \"domain\": \"<string>\",\n \"website\": \"<string>\",\n \"companyLinkedInUrl\": \"<string>\",\n \"listId\": 123,\n \"mergeWithExisting\": true\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "<string>",
"data": {
"id": 123,
"appUrl": "<string>",
"name": "<string>",
"domain": "<string>",
"companyLinkedInUrl": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"warnings": [
"<string>"
]
}
}Companies
Create a new company
Create a new company. If mergeWithExisting is true (default), the company will merge into an existing record matched by normalized LinkedIn URL, domain, website, or exact name. Set mergeWithExisting to false to always create a new company.
Responses include direct Enginy app URLs when available. The response includes an appUrl field for the company. MCP agents should return those URLs to users whenever they are present in the response.
Required scope:
COMPANIES_WRITERate limit: 30 requests per minute
POST
/
v1
/
company
Create a new company
curl --request POST \
--url https://openapi.enginy.ai/v1/company \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"domain": "<string>",
"website": "<string>",
"companyLinkedInUrl": "<string>",
"listId": 123,
"mergeWithExisting": true
}
'import requests
url = "https://openapi.enginy.ai/v1/company"
payload = {
"name": "<string>",
"domain": "<string>",
"website": "<string>",
"companyLinkedInUrl": "<string>",
"listId": 123,
"mergeWithExisting": True
}
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({
name: '<string>',
domain: '<string>',
website: '<string>',
companyLinkedInUrl: '<string>',
listId: 123,
mergeWithExisting: true
})
};
fetch('https://openapi.enginy.ai/v1/company', 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://openapi.enginy.ai/v1/company",
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([
'name' => '<string>',
'domain' => '<string>',
'website' => '<string>',
'companyLinkedInUrl' => '<string>',
'listId' => 123,
'mergeWithExisting' => true
]),
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://openapi.enginy.ai/v1/company"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"domain\": \"<string>\",\n \"website\": \"<string>\",\n \"companyLinkedInUrl\": \"<string>\",\n \"listId\": 123,\n \"mergeWithExisting\": true\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://openapi.enginy.ai/v1/company")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"domain\": \"<string>\",\n \"website\": \"<string>\",\n \"companyLinkedInUrl\": \"<string>\",\n \"listId\": 123,\n \"mergeWithExisting\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.enginy.ai/v1/company")
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 \"name\": \"<string>\",\n \"domain\": \"<string>\",\n \"website\": \"<string>\",\n \"companyLinkedInUrl\": \"<string>\",\n \"listId\": 123,\n \"mergeWithExisting\": true\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "<string>",
"data": {
"id": 123,
"appUrl": "<string>",
"name": "<string>",
"domain": "<string>",
"companyLinkedInUrl": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"warnings": [
"<string>"
]
}
}Authorizations
Body
application/json
Company name
Company website domain
Company website URL
Company LinkedIn URL
ID of the list to add the company to
Whether to merge with an existing company matched by normalized LinkedIn URL, domain, website, or exact name. Defaults to true.
⌘I