Get multiple contacts by type

Returns all contacts of a specific type for your ConstructionOnline company account

get https://api.constructiononline.com/api/v2/Contacts?type={type}

This endpoint facilitates communication between ConstructionOnline and third-party contact management or CRM software platforms. Using this endpoint, users can extract leads, clients, or subcontractors from ConstructionOnline and copy the data into another software platform, or simply store it as a collection or data table.

Requested contact types include Leads, ClientLink Users, and TeamLink Users. Users can choose to request a single contact type or a combination of more than one contact type.

Requests

PARAMETERS

type: string

  • Represents a specific type of contact, such as a Lead, ClientLink User, or TeamLink User. Use LEAD for Lead, CLIENT for ClientLink, and SUB for TeamLink (type is case sensitive).
  • More than one type can be requested at a time. If requesting more than one contact type, separate each contact type with a comma. For example: api/v2/Contacts?type=LEAD,CLIENT

Sample URL request:

  • https://api.constructiononline.com/api/v2/Contacts?type=SUB

Example requests in cURL, C#, Python, and JavaScript can be found below:

cURL

# replace {email} with the email address for your ConstructionOnline account
# {password} with your ConstructionOnline password
# {apikey} with your provided API key
# {type} with the specific type(s)


curl https://api.constructiononline.com/api/v2/Contacts?type={type} -u {email}:{password} -H 'APIKey:{apikey}'

C#

/* replace {username} with the email address for your ConstructionOnline account
{password} with your ConstructionOnline password
{apikey} with your provided API key
{type} with the specific type(s) */

public string GetData(string endpoint) {
string username = "{username}";
string password = "{password}";
string apikey = "{apikey}";
HttpResponseMessage response = null;
HttpClientHandler handler = new HttpClientHandler() { AutomaticDecompression = System.Net.DecompressionMethods.GZip };
    using (HttpClient client = new HttpClient(handler)) {
        client.Timeout = new TimeSpan(0, 0, 30);
        client.BaseAddress = new Uri("http://api.constructiononline.com");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password)));
        client.DefaultRequestHeaders.Add("APIKey", apikey);
        client.DefaultRequestHeaders.Add("Accept-Encoding", "gzip");
        response = client.GetAsync(endpoint).Result;
    }
    return response?.Content.ReadAsStringAsync().Result;
}
MessageBox.Show(GetData("api/v2/Contacts?type={type}"));

Python

#replace {username} with the email address for your ConstructionOnline account
#{password} with your ConstructionOnline password
#{apikey} with your provided API key
#{type} with the specific type(s)

import base64, requests, json
apikey = "{apikey}"
username = "{username}"
password = "{password}"
def makeRequest(endpoint):
url = "https://api.constructiononline.com/" + endpoint
userPass = username + ":" + password
headers = {
"APIKey": apikey,
"Accept-Encoding": "gzip, deflate, br",
"Authorization": "Basic " + base64.b64encode(userPass.encode()).decode(),
}
response = requests.get(url, headers=headers)
return json.dumps(json.loads(response.text), indent=2)

#Main Program
print(makeRequest("api/v2/Contacts?type={type}"))

JavaScript

/* replace {username} with the email address for your ConstructionOnline account
{password} with your ConstructionOnline password
{apikey} with the API key you were provided with
{type} with the specific type(s) */

username = '{username}';
password = '{password}';
apikey = '{apikey}';
function makeRequest(endpoint) {
    auth = btoa('${username}:${password}');
    var myHeaders = new Headers();
    myHeaders.append("APIKey", apikey);
    myHeaders.append("Accept-Encoding", "gzip, deflate, br");
    myHeaders.append("Authorization", "Basic ${auth}");
    var requestOptions = {
        method: 'GET',
        headers: myHeaders,
        redirect: 'follow'
   };
    fetch("https://api.constructiononline.com/" + endpoint, requestOptions)
        .then(response => response.text())
        .then(result => console.log(result))
        .catch(error => console.log('error', error));
    return response;
};makeRequest("api/v2/Contacts?type={type}");

Responses

Responses

green 200: Success

A successful request will return a 200 response with the requested contact(s) in the body, as seen below. Definitions for all returned properties can be found here

{
        "ID": 29,
      "FIRSTNAME": "Alice",
      "LASTNAME": "Conway",
      "EMAIL": "aconway@conwaypower.com",
        "ACCOUNT": "999197",
        "LACCESS": "2023-09-21T19:23:10.97",
        "LMOD": "2023-04-21T13:51:13.673",
        "DISPLAY_NAME": "",
        "COMPANY": "Conway Power Equipment",
        "ADDRESS": "",
        "CITY": "Auburn",
        "STATE": "AL",
        "ZIP": "36830",
        "PHONE": "",
        "MOBILE_PHONE": "",
        "MOBILE_PROVIDER": "",
        "FAX": "",
        "LMOD_CON_ID": 29,
        "LMOD_NAME": "",
        "ISCOMPANY": false,
        "MIDDLENAME": "",
      "WEBSITE": "",
        "CREATOR_ID": 29,
        "CREATOR_NAME": "",
        "TIMEZONE_OFFSET": -5.0,
        "AUTO_TIMEZONE": true,
        "COMPANY_ID": 4332,
        "COMPANY_NAME": "",
        "COUNTRY_SETTING": 1,
        "LANGUAGE_SETTING": 1,
        "LAT": 32.538900,
      "LON": -85.492100,
        "COMPANY_PERMISSIONS": 0,
      "IS_COMPANY_ADMIN": true,
        "OFFLINE_FILES": null,
        "FAVORITE_PROJECTS": null,
        "DATE_FORMAT": 0,
      "TIME_FORMAT": 0,
        "TIMEZONE_ID": "America/Chicago",
        "CONTACT_QUALITY": 0,
        "CONTACT_REGION": 0,
        "CONTACT_DIVISION": 0,
        "CONTACT_OFFICE": 0,
        "CONTACT_CATEGORY": 0,
        "CONTACT_TRADE": 0,
        "FIELD_ID": null,
      "MESSAGE_SIGNATURE": "",
        "GENERAL_CALENDAR_COLOR": "#FFA61B",
        "IS_LEAD": 0,
        "IS_SUB": 0,
        "IS_CLIENT": 0
    },

red 404: Error

The server was not able to locate the resource specified in the request. The type may have been entered incorrectly or contacts of the entered type do not exist.

red 429: Error

The user has surpassed the request rate limit for the hour, day, week, or month.

 red 500: Error

There was an internal server error and the server was unable to complete the request.

 

Last updated: Dec 21, 2023