curl --request POST \
--url https://api.instaview.sk/company \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Acme Corporation",
"description": "Leading technology company specializing in enterprise software",
"metadata": {
"externalCompanyId": "COMP-12345",
"industry": "Technology",
"companySize": "50-200",
"atsSystemId": "ATS-ORG-789"
},
"ownerEmail": "owner@example.com"
}
'import requests
url = "https://api.instaview.sk/company"
payload = {
"name": "Acme Corporation",
"description": "Leading technology company specializing in enterprise software",
"metadata": {
"externalCompanyId": "COMP-12345",
"industry": "Technology",
"companySize": "50-200",
"atsSystemId": "ATS-ORG-789"
},
"ownerEmail": "owner@example.com"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Acme Corporation',
description: 'Leading technology company specializing in enterprise software',
metadata: {
externalCompanyId: 'COMP-12345',
industry: 'Technology',
companySize: '50-200',
atsSystemId: 'ATS-ORG-789'
},
ownerEmail: 'owner@example.com'
})
};
fetch('https://api.instaview.sk/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://api.instaview.sk/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' => 'Acme Corporation',
'description' => 'Leading technology company specializing in enterprise software',
'metadata' => [
'externalCompanyId' => 'COMP-12345',
'industry' => 'Technology',
'companySize' => '50-200',
'atsSystemId' => 'ATS-ORG-789'
],
'ownerEmail' => 'owner@example.com'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.instaview.sk/company"
payload := strings.NewReader("{\n \"name\": \"Acme Corporation\",\n \"description\": \"Leading technology company specializing in enterprise software\",\n \"metadata\": {\n \"externalCompanyId\": \"COMP-12345\",\n \"industry\": \"Technology\",\n \"companySize\": \"50-200\",\n \"atsSystemId\": \"ATS-ORG-789\"\n },\n \"ownerEmail\": \"owner@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.instaview.sk/company")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Acme Corporation\",\n \"description\": \"Leading technology company specializing in enterprise software\",\n \"metadata\": {\n \"externalCompanyId\": \"COMP-12345\",\n \"industry\": \"Technology\",\n \"companySize\": \"50-200\",\n \"atsSystemId\": \"ATS-ORG-789\"\n },\n \"ownerEmail\": \"owner@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.instaview.sk/company")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Acme Corporation\",\n \"description\": \"Leading technology company specializing in enterprise software\",\n \"metadata\": {\n \"externalCompanyId\": \"COMP-12345\",\n \"industry\": \"Technology\",\n \"companySize\": \"50-200\",\n \"atsSystemId\": \"ATS-ORG-789\"\n },\n \"ownerEmail\": \"owner@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Acme Corporation",
"createdAt": "2024-11-16T10:30:00Z",
"updatedAt": "2024-11-16T10:30:00Z",
"description": "Leading technology company",
"ownerEmail": "owner@example.com",
"metadata": {
"externalCompanyId": "COMP-12345",
"industry": "Technology"
}
}Create Company
Creates a new company using an ATS API key. Direct client keys cannot create companies via this endpoint.
curl --request POST \
--url https://api.instaview.sk/company \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Acme Corporation",
"description": "Leading technology company specializing in enterprise software",
"metadata": {
"externalCompanyId": "COMP-12345",
"industry": "Technology",
"companySize": "50-200",
"atsSystemId": "ATS-ORG-789"
},
"ownerEmail": "owner@example.com"
}
'import requests
url = "https://api.instaview.sk/company"
payload = {
"name": "Acme Corporation",
"description": "Leading technology company specializing in enterprise software",
"metadata": {
"externalCompanyId": "COMP-12345",
"industry": "Technology",
"companySize": "50-200",
"atsSystemId": "ATS-ORG-789"
},
"ownerEmail": "owner@example.com"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Acme Corporation',
description: 'Leading technology company specializing in enterprise software',
metadata: {
externalCompanyId: 'COMP-12345',
industry: 'Technology',
companySize: '50-200',
atsSystemId: 'ATS-ORG-789'
},
ownerEmail: 'owner@example.com'
})
};
fetch('https://api.instaview.sk/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://api.instaview.sk/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' => 'Acme Corporation',
'description' => 'Leading technology company specializing in enterprise software',
'metadata' => [
'externalCompanyId' => 'COMP-12345',
'industry' => 'Technology',
'companySize' => '50-200',
'atsSystemId' => 'ATS-ORG-789'
],
'ownerEmail' => 'owner@example.com'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.instaview.sk/company"
payload := strings.NewReader("{\n \"name\": \"Acme Corporation\",\n \"description\": \"Leading technology company specializing in enterprise software\",\n \"metadata\": {\n \"externalCompanyId\": \"COMP-12345\",\n \"industry\": \"Technology\",\n \"companySize\": \"50-200\",\n \"atsSystemId\": \"ATS-ORG-789\"\n },\n \"ownerEmail\": \"owner@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.instaview.sk/company")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Acme Corporation\",\n \"description\": \"Leading technology company specializing in enterprise software\",\n \"metadata\": {\n \"externalCompanyId\": \"COMP-12345\",\n \"industry\": \"Technology\",\n \"companySize\": \"50-200\",\n \"atsSystemId\": \"ATS-ORG-789\"\n },\n \"ownerEmail\": \"owner@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.instaview.sk/company")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Acme Corporation\",\n \"description\": \"Leading technology company specializing in enterprise software\",\n \"metadata\": {\n \"externalCompanyId\": \"COMP-12345\",\n \"industry\": \"Technology\",\n \"companySize\": \"50-200\",\n \"atsSystemId\": \"ATS-ORG-789\"\n },\n \"ownerEmail\": \"owner@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Acme Corporation",
"createdAt": "2024-11-16T10:30:00Z",
"updatedAt": "2024-11-16T10:30:00Z",
"description": "Leading technology company",
"ownerEmail": "owner@example.com",
"metadata": {
"externalCompanyId": "COMP-12345",
"industry": "Technology"
}
}Overview
The create company endpoint allows ATS integration keys to create new companies in the InstaView system. This is essential for multi-tenant ATS platforms that need to onboard new clients and manage their data in isolation.ATS Key Requirement
403 Forbidden error. ATS keys must be created by InstaView administrators.Use Cases
- Client Onboarding: Create companies for new ATS clients
- Multi-Tenant Management: Set up company isolation for ATS platforms
- White-Label Solutions: Create companies for white-label integrations
- Platform Integration: Onboard companies from external ATS systems
Basic Company Creation
{
"name": "Client Company Name",
"website": "https://clientcompany.com",
"industry": "Technology"
}
ATS Integration Workflow
// 1. Create company for new ATS client
const company = await createCompany({
name: "Client Company",
website: "https://client.com"
});
// 2. Create jobs for this company
await createJob(company.id, jobData);
// 3. Create contacts for the jobs
await createContact(company.id, contactData);
Company Isolation
Each company’s data is completely isolated. Companies created by an ATS key can only be accessed by that ATS key (or by regular API keys belonging to that company).Related Resources
ATS Integration Guide
Companies Resource Guide
List Companies
Authorizations
API key for authentication using Bearer scheme
Query Parameters
Required for ATS API keys to specify which company to access. Ignored for standard company API keys.
Body
Company name
2 - 100"Acme Corporation"
Company description
1 - 1000"Leading technology company specializing in enterprise software"
Custom metadata for extensibility (max 10KB, 5 levels deep, 50 keys)
{
"externalCompanyId": "COMP-12345",
"industry": "Technology",
"companySize": "50-200",
"atsSystemId": "ATS-ORG-789"
}
Email of the company owner. If provided, the system will automatically assign or invite the user.
254"owner@example.com"
Response
Company created successfully
Company ID
"123e4567-e89b-12d3-a456-426614174000"
Company name
"Acme Corporation"
Created timestamp
"2024-11-16T10:30:00Z"
Updated timestamp
"2024-11-16T10:30:00Z"
Company description
"Leading technology company"
Email of the company owner
254"owner@example.com"
Custom metadata
{
"externalCompanyId": "COMP-12345",
"industry": "Technology"
}