Less Annoying CRM logo Less Annoying CRM LACRM
Getting Started

Ways to connect



Manage the API keys for your account on the Programmer API settings page. Here you can enable or disable API access, view active keys, and create new ones. Individual key permissions can be customized to allow a key to read, create, edit, or delete information in the CRM.

Note that we encrypt the keys in storage, so you will not be able to retrieve the key after you create it. If you have forgotten a key, we recommend creating a new one and deleting the one you forgot.


We are building an OAuth system for third-party apps to connect with LACRM. When it is ready, we will manage registration through our integration partner program. You can apply to that program and find more information here.

Making API Calls

Make API calls by sending a POST request to https://api.lessannoyingcrm.com/v2/. Your request should include an Authorization header containing only your API key.

The body of your request should be JSON, formatted as follows:

    "Function": "GetContact",
    "Parameters": {
        "ContactId": "1234567890123456789012345678901"

Here is a full example using PHP and cURL. It calls GetUser, which takes no parameters and should always return your user information.


function CallLacrmApi(string $Function, array $Parameters=array()) {
    $CurlHandle = curl_init("https://api.lessannoyingcrm.com/v2/");
    $Headers = array(
        "Content-Type: application/json",
        "Authorization: YOUR_API_KEY_HERE"
    $Body = array(
        "Function" => $Function,
        "Parameters" => $Parameters

    curl_setopt($CurlHandle, CURLOPT_POSTFIELDS, json_encode($Body));
    curl_setopt($CurlHandle, CURLOPT_HTTPHEADER, $Headers);
    curl_setopt($CurlHandle, CURLOPT_RETURNTRANSFER, true);

    $CurlResult = curl_exec($CurlHandle);
    $ReturnValue = false;
    if (curl_errno($CurlHandle)) {
    } else {
        $ResultObject = json_decode($CurlResult, true);
        $HttpCode = curl_getinfo($CurlHandle, CURLINFO_HTTP_CODE);
        if ($HttpCode === 400) {
            error_log("Error $ResultObject[ErrorCode]: $ResultObject[ErrorDescription]");
        } else {
            $ReturnValue = $ResultObject;

    return $ReturnValue;


There are more code examples on the Tutorials page.

Next page: Data types