REGISTER NOW: Supercharge Your Cloud Integrations and Register for our Webinar on 9/26
CRM API

Give your users access to customer data from any CRM service.

Build with our common CRM API to quickly integrate your app with services like Salesforce, Microsoft Dynamics, Oracle Sales Cloud, and Hubspot.

big yellow left quotation mark

Kloudless allows you to develop against a core set of APIs to integrate faster, quicker, cheaper. It doesn’t make any sense to have to build each integration separately.

customer image
Kent Erickson

SVP Product Management at Bigtincan

Write code once and reuse it for any service

Use Kloudless to integrate with many CRM services in the effort it takes you to build just one integration to Salesforce. We take care of all the Connector maintenance and updates, so you don’t have to.

Explore our API documentation
Salesforce
Microsoft Dynamics
Oracle Sales Cloud
Pipeliner CRM
Zoho
Hubspot CRM
SugarCRM
              
                  # Retrieve a list of CRM accounts
curl -H "Authorization: Bearer $BEARER_TOKEN" \
    "https://api.kloudless.com/v1/accounts/me/crm/accounts/"
# Retrieve a list of CRM contacts
curl -H "Authorization: Bearer $BEARER_TOKEN" \
    "https://api.kloudless.com/v1/accounts/me/crm/contacts/"
# Retrieve a list of all known CRM object types
curl -H "Authorization: Bearer $BEARER_TOKEN" \
    "https://api.kloudless.com/v1/accounts/me/crm/schemas/"
              
            
              
                  
from kloudless import Account

account = Account(token=BEARER_TOKEN)

# Retrieve a list of CRM accounts
response = account.get("crm/accounts")

# Retrieve a list of CRM contacts
response = account.get("crm/contacts")

# Retrieve a list of all known CRM object types
response = account.get("crm/schemas")

              
            
              
                  
const account = new Kloudless.sdk.Account({ token: BEARER_TOKEN });

// Retrieve a list of CRM accounts
let response = await account.get({ url: 'crm/accounts' });

// Retrieve a list of CRM contacts
response = await account.get({ url: 'crm/contacts' });

// Retrieve a list of all known CRM object types
response = await account.get({ url: 'crm/schemas' });
              
            
              
                  
import com.google.gson.JsonObject;
import com.kloudless.Account;
import com.kloudless.models.ResourceList;

Account account = new Account("YOUR BEARER TOKEN");

// Retrieve a list of CRM accounts
ResourceList resourceList =
        (ResourceList) account.get("/crm/accounts");
JsonObject data = resourceList.getData();

// Retrieve a list of CRM contacts
resourceList =
        (ResourceList) account.get("/crm/contacts");
data = resourceList.getData();

// Retrieve a list of all known CRM object types
resourceList =
        (ResourceList) account.get("/crm/schemas");
data = resourceList.getData();
              
            
              
                  # Search a Salesforce account with KQL
curl -G -H "Authorization: Bearer $BEARER_TOKEN" \
     "https://api.kloudless.com/v1/accounts/me/crm/search" \
     --data-urlencode "lang=KQL" \
     --data-urlencode "q=SELECT Id, Name, Amount FROM Opportunity WHERE Amount >= 36000"
              
            
              
                  
from kloudless import Account

account = Account(token=BEARER_TOKEN)

# Search a Salesforce account with KQL
params = {
    "lang": "KQL",
    "q": "SELECT Id, Name, Amount FROM Opportunity WHERE Amount >= 36000"
}
response = account.get("crm/search", params=params)
              
            
              
                  
const account = new Kloudless.sdk.Account({ token: BEARER_TOKEN });

// Search a Salesforce account with KQL
const response = await account.get({
  url: 'crm/search',
  params: {
      lang: 'KQL',
      q: 'SELECT Id, Name, Amount FROM Opportunity WHERE Amount >= 36000'
  }
});
              
            
              
                  
import com.google.gson.JsonObject;
import com.kloudless.Account;
import com.kloudless.models.ResourceList;

Account account = new Account("YOUR BEARER TOKEN");

// Search a Salesforce account with KQL
String KQL = "SELECT Id, Name, Amount FROM Opportunity " +
    "WHERE Amount >= 36000";
String url = "/crm/search?lang=KQL&q=" +
    URLEncoder.encode(KQL);

ResourceList resourceList = (ResourceList) account.get(url);
JsonObject data = resourceList.getData();
              
            
              
                  # Retrieve the current cursor
CURSOR=$(curl -H "Authorization: Bearer $BEARER_TOKEN" \
              "https://api.kloudless.com/v1/accounts/me/activity" \
              | jq ".cursor")

# Once the user makes a change, retrieve new activity
curl -H "Authorization: Bearer $BEARER_TOKEN" \
        "https://api.kloudless.com/v1/accounts/me/activity?cursor=$CURSOR"
              
            
              
                  
from kloudless import Account

account = Account(token=BEARER_TOKEN)

# Retrieve the current cursor
response = account.get('activity')
cursor = response.data['cursor']

# Once the user makes a change, retrieve new activity
response = account.get('activity', params={"cursor": cursor})
              
            
              
                  
const account = new Kloudless.sdk.Account({ token: BEARER_TOKEN });

// Retrieve the current cursor
let response = await account.get({ url: 'activity' });
let cursor = response.data.cursor;

// Once the user makes a change, retrieve new activity
response = await account.get({
  url: 'activity',
  params: { cursor }
});

              
            
              
                  
import com.google.gson.JsonObject;
import com.kloudless.Account;
import com.kloudless.models.ResourceList;

Account account = new Account("YOUR BEARER TOKEN");

// Retrieve the current cursor
ResourceList response = 
    (ResourceList) account.get("/activity");
JsonObject data = response.getData();
String cursor = response.getCursor();

// Once the user makes a change, retrieve new activity
response =
    (ResourceList) account.get("/activity?cursor=" + cursor);
data = response.getData();
              
            

Built by developers, for developers

One general CRM API that delivers all the features you need from CRUD to real-time webhooks. Here are some example use cases.

Records management

Sync data to any CRM

Query for sales data

Unified search with Kloudless Query Language

Monitor for changes

Get real time events for CRM data changes

View more code samples

Bigtincan’s AI-powered sales enablement automation platform uses Kloudless’ Unified CRM API to provide out-of-the-box data sync capability to any of their customers’ CRM services. By expanding their integrations portfolio, Kloudless gave Bigtincan a competitive differentiator, which enabled them to close key deals and increase revenue by 53%.

blackboard title copy

Deployment Options

Take advantage of our flexible hosting options to run Kloudless according to your business’ requirements.

Cloud

Securely and reliably hosted by Kloudless — the quickest way to start building integrations.

  • Fully managed by Kloudless
  • Pre-configured connectors to get started quickly
  • 99.9% uptime
  • Bank-level encryption both in transit and at rest
Self-hosted

Kloudless Enterprise is a Docker container, AWS AMI, or OVA to deploy in private infrastructure.

  • Complete data privacy and regulatory compliance
  • On-prem connectors, such as Exchange and Oracle
  • Clustering for high availability
  • Custom SLAs including 24/7 support

Enough reading — let’s code.
Try our CRM API today.

Not a developer? Talk to an expert.

An arrow pointing to the 'get your api key' button