Create a company record
curl --request POST \
--url https://api.attio.com/v2/objects/companies/records \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"values": {
"domains": [
"attio.com"
],
"name": "Attio",
"description": "Customer relationship magic",
"team": [
"alice@attio.com"
],
"primary_location": "1 Infinite Loop, Cupertino, CA, 95014, US"
}
}
}
'import requests
url = "https://api.attio.com/v2/objects/companies/records"
payload = { "data": { "values": {
"domains": ["attio.com"],
"name": "Attio",
"description": "Customer relationship magic",
"team": ["alice@attio.com"],
"primary_location": "1 Infinite Loop, Cupertino, CA, 95014, US"
} } }
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({
data: {
values: {
domains: ['attio.com'],
name: 'Attio',
description: 'Customer relationship magic',
team: ['alice@attio.com'],
primary_location: '1 Infinite Loop, Cupertino, CA, 95014, US'
}
}
})
};
fetch('https://api.attio.com/v2/objects/companies/records', 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.attio.com/v2/objects/companies/records",
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([
'data' => [
'values' => [
'domains' => [
'attio.com'
],
'name' => 'Attio',
'description' => 'Customer relationship magic',
'team' => [
'alice@attio.com'
],
'primary_location' => '1 Infinite Loop, Cupertino, CA, 95014, US'
]
]
]),
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.attio.com/v2/objects/companies/records"
payload := strings.NewReader("{\n \"data\": {\n \"values\": {\n \"domains\": [\n \"attio.com\"\n ],\n \"name\": \"Attio\",\n \"description\": \"Customer relationship magic\",\n \"team\": [\n \"alice@attio.com\"\n ],\n \"primary_location\": \"1 Infinite Loop, Cupertino, CA, 95014, US\"\n }\n }\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.attio.com/v2/objects/companies/records")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"values\": {\n \"domains\": [\n \"attio.com\"\n ],\n \"name\": \"Attio\",\n \"description\": \"Customer relationship magic\",\n \"team\": [\n \"alice@attio.com\"\n ],\n \"primary_location\": \"1 Infinite Loop, Cupertino, CA, 95014, US\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attio.com/v2/objects/companies/records")
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 \"data\": {\n \"values\": {\n \"domains\": [\n \"attio.com\"\n ],\n \"name\": \"Attio\",\n \"description\": \"Customer relationship magic\",\n \"team\": [\n \"alice@attio.com\"\n ],\n \"primary_location\": \"1 Infinite Loop, Cupertino, CA, 95014, US\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": {
"workspace_id": "14beef7a-99f7-4534-a87e-70b564330a4c",
"object_id": "97052eb9-e65e-443f-a297-f2d9a4a7f795",
"record_id": "bf071e1f-6035-429d-b874-d83ea64ea13b"
},
"created_at": "2022-11-21T13:22:49.061281000Z",
"web_url": "https://app.attio.com/salarya/person/bf071e1f-6035-429d-b874-d83ea64ea13b",
"values": {
"domains": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "workspace-member",
"id": "a976f6a9-fc2b-4acb-91e7-afb2d18b4e64"
},
"domain": "attio.com",
"root_domain": "attio.com",
"attribute_type": "domain"
}
],
"name": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "workspace-member",
"id": "a976f6a9-fc2b-4acb-91e7-afb2d18b4e64"
},
"value": "Attio",
"attribute_type": "text"
}
],
"description": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "workspace-member",
"id": "a976f6a9-fc2b-4acb-91e7-afb2d18b4e64"
},
"value": "Customer relationship magic",
"attribute_type": "text"
}
],
"created_at": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "system",
"id": null
},
"value": "2023-01-01T15:00:00.000000000Z",
"attribute_type": "timestamp"
}
],
"created_by": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "system",
"id": null
},
"referenced_actor_type": "workspace-member",
"referenced_actor_id": "a976f6a9-fc2b-4acb-91e7-afb2d18b4e64",
"attribute_type": "actor-reference"
}
],
"twitter": [],
"team": [],
"primary_location": [],
"last_email_interaction": [],
"categories": [],
"logo_url": [],
"twitter_follower_count": [],
"last_calendar_interaction": [],
"linkedin": [],
"foundation_date": [],
"strongest_connection_user": [],
"estimated_arr_usd": [],
"strongest_connection_strength_legacy": [],
"next_calendar_interaction": [],
"employee_range": [],
"first_interaction": [],
"angellist": [],
"facebook": [],
"first_email_interaction": [],
"strongest_connection_strength": [],
"first_calendar_interaction": [],
"instagram": [],
"last_interaction": []
}
}
}{
"status_code": 400,
"type": "invalid_request_error",
"code": "value_not_found",
"message": "Cannot find select attribute with select option title \"In Progress\"."
}{
"status_code": 403,
"type": "auth_error",
"code": "unauthorized",
"message": "You do not have the necessary permissions to create this record."
}{
"status_code": 404,
"type": "invalid_request_error",
"code": "not_found",
"message": "Object with slug/ID \"people\" not found."
}{
"status_code": 409,
"type": "invalid_request_error",
"code": "concurrent_write_conflict",
"message": "The record was modified by another request while this write was being validated. Please try again."
}Companies
Create a company record
Creates a new company record. This endpoint will throw on conflicts of unique attributes, like domains. If you would prefer to update company records on conflicts, please use the Assert company record endpoint instead. Please note, the logo_url attribute cannot currently be set via the API.
Required scopes: record_permission:read-write, object_configuration:read.
Supported token levels: workspace, user.
POST
/
v2
/
objects
/
companies
/
records
Create a company record
curl --request POST \
--url https://api.attio.com/v2/objects/companies/records \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"values": {
"domains": [
"attio.com"
],
"name": "Attio",
"description": "Customer relationship magic",
"team": [
"alice@attio.com"
],
"primary_location": "1 Infinite Loop, Cupertino, CA, 95014, US"
}
}
}
'import requests
url = "https://api.attio.com/v2/objects/companies/records"
payload = { "data": { "values": {
"domains": ["attio.com"],
"name": "Attio",
"description": "Customer relationship magic",
"team": ["alice@attio.com"],
"primary_location": "1 Infinite Loop, Cupertino, CA, 95014, US"
} } }
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({
data: {
values: {
domains: ['attio.com'],
name: 'Attio',
description: 'Customer relationship magic',
team: ['alice@attio.com'],
primary_location: '1 Infinite Loop, Cupertino, CA, 95014, US'
}
}
})
};
fetch('https://api.attio.com/v2/objects/companies/records', 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.attio.com/v2/objects/companies/records",
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([
'data' => [
'values' => [
'domains' => [
'attio.com'
],
'name' => 'Attio',
'description' => 'Customer relationship magic',
'team' => [
'alice@attio.com'
],
'primary_location' => '1 Infinite Loop, Cupertino, CA, 95014, US'
]
]
]),
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.attio.com/v2/objects/companies/records"
payload := strings.NewReader("{\n \"data\": {\n \"values\": {\n \"domains\": [\n \"attio.com\"\n ],\n \"name\": \"Attio\",\n \"description\": \"Customer relationship magic\",\n \"team\": [\n \"alice@attio.com\"\n ],\n \"primary_location\": \"1 Infinite Loop, Cupertino, CA, 95014, US\"\n }\n }\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.attio.com/v2/objects/companies/records")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"values\": {\n \"domains\": [\n \"attio.com\"\n ],\n \"name\": \"Attio\",\n \"description\": \"Customer relationship magic\",\n \"team\": [\n \"alice@attio.com\"\n ],\n \"primary_location\": \"1 Infinite Loop, Cupertino, CA, 95014, US\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attio.com/v2/objects/companies/records")
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 \"data\": {\n \"values\": {\n \"domains\": [\n \"attio.com\"\n ],\n \"name\": \"Attio\",\n \"description\": \"Customer relationship magic\",\n \"team\": [\n \"alice@attio.com\"\n ],\n \"primary_location\": \"1 Infinite Loop, Cupertino, CA, 95014, US\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": {
"workspace_id": "14beef7a-99f7-4534-a87e-70b564330a4c",
"object_id": "97052eb9-e65e-443f-a297-f2d9a4a7f795",
"record_id": "bf071e1f-6035-429d-b874-d83ea64ea13b"
},
"created_at": "2022-11-21T13:22:49.061281000Z",
"web_url": "https://app.attio.com/salarya/person/bf071e1f-6035-429d-b874-d83ea64ea13b",
"values": {
"domains": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "workspace-member",
"id": "a976f6a9-fc2b-4acb-91e7-afb2d18b4e64"
},
"domain": "attio.com",
"root_domain": "attio.com",
"attribute_type": "domain"
}
],
"name": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "workspace-member",
"id": "a976f6a9-fc2b-4acb-91e7-afb2d18b4e64"
},
"value": "Attio",
"attribute_type": "text"
}
],
"description": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "workspace-member",
"id": "a976f6a9-fc2b-4acb-91e7-afb2d18b4e64"
},
"value": "Customer relationship magic",
"attribute_type": "text"
}
],
"created_at": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "system",
"id": null
},
"value": "2023-01-01T15:00:00.000000000Z",
"attribute_type": "timestamp"
}
],
"created_by": [
{
"active_from": "2023-01-01T15:00:00.000000000Z",
"active_until": null,
"created_by_actor": {
"type": "system",
"id": null
},
"referenced_actor_type": "workspace-member",
"referenced_actor_id": "a976f6a9-fc2b-4acb-91e7-afb2d18b4e64",
"attribute_type": "actor-reference"
}
],
"twitter": [],
"team": [],
"primary_location": [],
"last_email_interaction": [],
"categories": [],
"logo_url": [],
"twitter_follower_count": [],
"last_calendar_interaction": [],
"linkedin": [],
"foundation_date": [],
"strongest_connection_user": [],
"estimated_arr_usd": [],
"strongest_connection_strength_legacy": [],
"next_calendar_interaction": [],
"employee_range": [],
"first_interaction": [],
"angellist": [],
"facebook": [],
"first_email_interaction": [],
"strongest_connection_strength": [],
"first_calendar_interaction": [],
"instagram": [],
"last_interaction": []
}
}
}{
"status_code": 400,
"type": "invalid_request_error",
"code": "value_not_found",
"message": "Cannot find select attribute with select option title \"In Progress\"."
}{
"status_code": 403,
"type": "auth_error",
"code": "unauthorized",
"message": "You do not have the necessary permissions to create this record."
}{
"status_code": 404,
"type": "invalid_request_error",
"code": "not_found",
"message": "Object with slug/ID \"people\" not found."
}{
"status_code": 409,
"type": "invalid_request_error",
"code": "concurrent_write_conflict",
"message": "The record was modified by another request while this write was being validated. Please try again."
}Was this page helpful?