List CRM Objects
Retrieve every CRM object in your Zeeg workspace with full attribute schemas, including standard people and companies plus any custom objects you created
curl --request GET \
--url https://api.zeeg.me/v2/crm/objects \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zeeg.me/v2/crm/objects"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zeeg.me/v2/crm/objects', 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.zeeg.me/v2/crm/objects",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.zeeg.me/v2/crm/objects"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zeeg.me/v2/crm/objects")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeeg.me/v2/crm/objects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodypeople, companies) are always present. Custom objects appear once created.
Use this endpoint first to map your existing schema before importing records — every attribute key returned here is the identifier you use when writing record values.
Authorizations
Response
OK
true
200
Hide child attributes
Hide child attributes
Unique identifier for the object. Used in all record API calls.
"people"
Singular display name.
"Person"
Plural display name.
"People"
true for built-in objects (people, companies). false for custom objects.
true
Whether the object is enabled in the workspace.
true
Full list of attribute definitions for this object.
Hide child attributes
Hide child attributes
Attribute key used when reading or writing record values.
"job_title"
Human-readable label shown in the UI.
"Job Title"
Attribute data type. Cannot be changed after creation.
text, number, phone_number, date, datetime, checkbox, select, multiselect, rating, relation, status, user, currency "text"
Whether a value is required when creating a record.
false
true for built-in attributes, false for custom attributes added by your workspace.
false
Whether values must be unique across all records. Applies to text, phone, and number types.
false
Whether the attribute is archived. Archived attributes are hidden from the UI but their data is preserved.
false
ISO 8601 timestamp when the attribute was created.
"2025-06-01T10:00:00+00:00"
ISO 8601 timestamp when the attribute was last updated.
"2025-06-01T10:00:00+00:00"
Available options. Present only for select, multiselect, and status attributes.
Hide child attributes
Hide child attributes
The option label shown in the UI and stored as the attribute value.
512"Active"
Color name for the option. Allowed values: gray, primary, warning, success, cyan, sky, violet, fuchsia, rose, blue, green, red, pink, black, yellow, orange.
"success"
Server-assigned option ID. Omit when adding a new option; include when updating an existing one to preserve it.
1
Slug of the related object. Present only for relation attributes. Immutable after creation.
"companies"
Display label for the relation. Present only for relation attributes. Can be updated via PATCH.
"Company"
Cardinality of the relation. Present only for relation attributes.
one_to_one, many_to_one, one_to_many, many_to_many "many_to_one"
true when relationType is one_to_many or many_to_many. Present only for relation attributes.
false
ISO 4217 currency code. Present only for currency attributes. Immutable after creation.
"EUR"
How the currency value is displayed. Present only for currency attributes.
code, name, symbol "symbol"
Whether decimal places are shown. Present only for currency attributes.
true
Whether a thousands separator is used. Present only for currency attributes.
true
"2025-01-15T09:00:00+00:00"
"2025-06-01T12:00:00+00:00"
curl --request GET \
--url https://api.zeeg.me/v2/crm/objects \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zeeg.me/v2/crm/objects"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zeeg.me/v2/crm/objects', 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.zeeg.me/v2/crm/objects",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.zeeg.me/v2/crm/objects"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zeeg.me/v2/crm/objects")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeeg.me/v2/crm/objects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body