Skip to main content
POST
/
company
Create company (ATS keys only)
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"
  }
}
'
{
  "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",
  "metadata": {
    "externalCompanyId": "COMP-12345",
    "industry": "Technology"
  }
}
Creates a new company. This endpoint is only available for ATS integration keys and is used for multi-tenant ATS platforms managing multiple client companies.

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

ATS Keys Only: This endpoint requires an ATS integration key. Regular API keys cannot create companies and will receive a 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 candidates for the jobs
await createCandidate(company.id, candidateData);

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).

Authorizations

Authorization
string
header
required

API key for authentication using Bearer scheme

Body

application/json
name
string
required

Company name

Required string length: 2 - 100
Example:

"Acme Corporation"

description
string

Company description

Required string length: 1 - 1000
Example:

"Leading technology company specializing in enterprise software"

metadata
object

Custom metadata for extensibility (max 10KB, 5 levels deep, 50 keys)

Example:
{
"externalCompanyId": "COMP-12345",
"industry": "Technology",
"companySize": "50-200",
"atsSystemId": "ATS-ORG-789"
}

Response

201 - application/json

Company created successfully

id
string
required

Company ID

Example:

"123e4567-e89b-12d3-a456-426614174000"

name
string
required

Company name

Example:

"Acme Corporation"

createdAt
string
required

Created timestamp

Example:

"2024-11-16T10:30:00Z"

updatedAt
string
required

Updated timestamp

Example:

"2024-11-16T10:30:00Z"

description
string

Company description

Example:

"Leading technology company"

metadata
object

Custom metadata

Example:
{
"externalCompanyId": "COMP-12345",
"industry": "Technology"
}