Create Company
Create a new Company under a partner and an ATS integration. The authenticated partner becomes the owning partner of the resulting record.
curl -X POST "https://api.getkini.com/companies/" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"name": "Example Company GmbH",
"ats": "personio",
"partner_company_id": "EXT-COMPANY-001",
"website": "https://www.example.com",
"logo": "https://www.example.com/logo.png",
"primary_color": "#1F3A93",
"street": "Example Street 1",
"city": "Berlin",
"country": "Germany",
"postcode": "10115",
"contact_name": "Jane Doe",
"contact_email": "jane.doe@example.com",
"contact_phone": "+49 30 1234567"
}'
import requests
import json
url = "https://api.getkini.com/companies/"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"name": "Example Company GmbH",
"ats": "personio",
"partner_company_id": "EXT-COMPANY-001",
"website": "https://www.example.com",
"logo": "https://www.example.com/logo.png",
"primary_color": "#1F3A93",
"street": "Example Street 1",
"city": "Berlin",
"country": "Germany",
"postcode": "10115",
"contact_name": "Jane Doe",
"contact_email": "jane.doe@example.com",
"contact_phone": "+49 30 1234567"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.getkini.com/companies/", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"name": "Example Company GmbH",
"ats": "personio",
"partner_company_id": "EXT-COMPANY-001",
"website": "https://www.example.com",
"logo": "https://www.example.com/logo.png",
"primary_color": "#1F3A93",
"street": "Example Street 1",
"city": "Berlin",
"country": "Germany",
"postcode": "10115",
"contact_name": "Jane Doe",
"contact_email": "jane.doe@example.com",
"contact_phone": "+49 30 1234567"
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"name": "Example Company GmbH",
"ats": "personio",
"partner_company_id": "EXT-COMPANY-001",
"website": "https://www.example.com",
"logo": "https://www.example.com/logo.png",
"primary_color": "#1F3A93",
"street": "Example Street 1",
"city": "Berlin",
"country": "Germany",
"postcode": "10115",
"contact_name": "Jane Doe",
"contact_email": "jane.doe@example.com",
"contact_phone": "+49 30 1234567"
}`)
req, err := http.NewRequest("POST", "https://api.getkini.com/companies/", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.getkini.com/companies/')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"name": "Example Company GmbH",
"ats": "personio",
"partner_company_id": "EXT-COMPANY-001",
"website": "https://www.example.com",
"logo": "https://www.example.com/logo.png",
"primary_color": "#1F3A93",
"street": "Example Street 1",
"city": "Berlin",
"country": "Germany",
"postcode": "10115",
"contact_name": "Jane Doe",
"contact_email": "jane.doe@example.com",
"contact_phone": "+49 30 1234567"
}'
response = http.request(request)
puts response.body
{
"id": 1,
"name": "Example Company GmbH",
"slug": "example-company-gmbh",
"ats": "personio",
"ats_name": "Personio",
"partner": 1,
"partner_company_id": "EXT-COMPANY-001",
"website": "https://www.example.com",
"logo": "https://www.example.com/logo.png",
"primary_color": "#1F3A93",
"street": "Example Street 1",
"city": "Berlin",
"country": "Germany",
"postcode": "10115",
"job_sync_active": true,
"candidate_sync_active": true,
"contact_name": "Jane Doe",
"contact_email": "jane.doe@example.com",
"contact_phone": "+49 30 1234567",
"jobs_last_synced_at": "2026-08-06T04:12:07.118934Z",
"status": "active",
"is_test": false,
"magic_link": "https://app.getkini.com/magic/EXAMPLEmagiclinktoken12345x/",
"created_at": "2025-11-18T09:24:31.664829Z",
"updated_at": "2026-07-29T14:03:55.812446Z"
}
/companies/
Target server for requests. Edit to use your own host.
Authenticate every request with an API key from the Kini Partner App, sent as Authorization: Bearer <your_api_key>.
Authorization: Bearer <your_api_key>.The media type of the request body
Display name of the company
Slug of the ATS integration to link this company to. Retrieve the full list of available slugs from List Integrations.
External identifier of the company in the partner's system
Company website URL
URL of the company logo
Hex color used to brand the company's job board
Street address of the company
City of the company
Country of the company
Postal code of the company
Full name of the main point of contact
Email address of the main point of contact
Phone number of the main point of contact
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Authenticate every request with an API key from the Kini Partner App, sent as Authorization: Bearer \<your_api_key\>.
Body
Slug of the ATS integration to link this company to. Retrieve the full list of available slugs from List Integrations.
personioExternal identifier of the company in the partner's system
EXT-COMPANY-001