List Fields
curl --request GET \
--url https://api.lemlist.com/api/fields \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.lemlist.com/api/fields"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.lemlist.com/api/fields', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.lemlist.com/api/fields")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lemlist.com/api/fields",
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: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"success": true,
"data": {
"contact": [
{
"name": "email",
"label": "Email",
"type": "text",
"source": "default"
},
{
"name": "firstName",
"label": "First name",
"type": "text",
"source": "default"
},
{
"name": "revenue",
"label": "Annual Revenue",
"type": "number",
"source": "custom"
},
{
"name": "leadStatus",
"label": "leadStatus",
"type": "text",
"source": "crm_synced",
"crmField": "hs_lead_status"
}
],
"company": [
{
"name": "linkedinUrl",
"label": "LinkedIn URL",
"type": "text",
"source": "default"
},
{
"name": "industry",
"label": "Industry",
"type": "text",
"source": "custom"
}
]
}
}{
"success": false,
"error": "Invalid entity parameter. Must be one of: contact, company"
}{
"error": "Unauthorized"
}{
"success": false,
"error": "Method not allowed. Use GET."
}Fields
List Fields
Lists all available fields for contacts and companies.
GET
/
fields
List Fields
curl --request GET \
--url https://api.lemlist.com/api/fields \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.lemlist.com/api/fields"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.lemlist.com/api/fields', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.lemlist.com/api/fields")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lemlist.com/api/fields",
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: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"success": true,
"data": {
"contact": [
{
"name": "email",
"label": "Email",
"type": "text",
"source": "default"
},
{
"name": "firstName",
"label": "First name",
"type": "text",
"source": "default"
},
{
"name": "revenue",
"label": "Annual Revenue",
"type": "number",
"source": "custom"
},
{
"name": "leadStatus",
"label": "leadStatus",
"type": "text",
"source": "crm_synced",
"crmField": "hs_lead_status"
}
],
"company": [
{
"name": "linkedinUrl",
"label": "LinkedIn URL",
"type": "text",
"source": "default"
},
{
"name": "industry",
"label": "Industry",
"type": "text",
"source": "custom"
}
]
}
}{
"success": false,
"error": "Invalid entity parameter. Must be one of: contact, company"
}{
"error": "Unauthorized"
}{
"success": false,
"error": "Method not allowed. Use GET."
}Returns all available fields for contacts and companies, grouped by entity.
Use this endpoint to discover field names before upserting contacts or companies.
Field sources
| Source | Description |
|---|---|
default | Built-in fields available on every account (e.g. email, firstName, phone) |
custom | Custom fields created by your team |
crm_synced | Fields from your connected CRM’s field mapping configuration |
CRM-synced fields
When your team has a CRM connected, fields withsource: "crm_synced" reflect the field mapping configured between lemlist and your CRM. These fields include an additional crmField property containing the corresponding field name on the CRM side.
If no CRM is connected, no crm_synced fields are returned.
Filtering
Use query parameters to narrow results:entity— return fields for a single entity (contactorcompany)source— return only fields from a specific source (default,custom, orcrm_synced)
Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Query Parameters
Filter by entity type
Available options:
contact, company Filter by field source
Available options:
default, custom, crm_synced Was this page helpful?