This website uses cookies. By continuing to use this website you are giving consent to cookies being used. For information on cookies and how you can disable them, visit our privacy and cookie policy.

Pipeliner CRM API Getting Started

This is a getting started guide to help you understand the first steps and basics of Pipeliner CRM API. Read the content of this page carefully.

Step #1: Authentication

Every REST call must contain an "Authorization" header with an encoded Pipeliner CRM API Keys.

The Pipeliner CRM API Keys consist of username, password and team’s space name. Each team space has its own Pipeliner CRM API Keys which is used as username and password.

In order to obtain your team space Pipeliner CRM API Keys follow these steps:

1.1 Sign in to Pipeliner CRM Admin Portal here: using your Pipeliner CRM account.
1.2 Click to open your space
1.3 Click on the "Shop API Access Details"
1.4 Copy your Pipeliner CRM API Keys

(see the screenshots below for more help)

Click to open your space
Click on the "Shop API Access Details"
Copy your Pipeliner CRM API Keys

Step #2: Understanding HTTP Method

The API is a JSON API. Learn how to use JSON API.

Endpoints are documented with the HTTP method for the request and a partial resource identifier. Example on how to get the list of Pipeliner CRM users (clients):

GET https://{region}{space_id}/Clients

Prepend your Pipeliner CRM Support URL to the resource identifier to get the full endpoint URL. Curly braces, {}, indicate values you have to supply. Real example on how to query Pipeliner CRM Users API IDs. Users in Pipeliner CRM API are Clients:


Test Case Scenario

In order to get Pipeliner CRM users IDs follow these steps:

2.1 Prepend your support url for clients. In our case it would be
2.2 Enter your API Keys credential. Username = API Token, Password = API Password
2.3 The API returns JSON on a single line. 

Important: If the "Authorization" header is missing within your REST API Call, a response with status code "401 Unauthorized" and header WWW-Authenticate: Basic realm="restapi" is sent to the client.

Prepend your support url for clients
Enter your API Keys credential
The API returns JSON on a single line.

Step #3: Creating a Lead in Pipeliner CRM (Python Example)

In the following steps we show you how to create a lead using Python language.

Use Case

I want to create a new lead in Pipeliner CRM and assign it to a user and sales unit.

Important: If you want to assign a lead to a particular user in Pipeliner CRM, you need to query first the Users Pipeliner CRM API IDs and Sales Units Pipeliner CRM API IDs.

Below you can find the way you can use Python to create a lead in Pipeliner CRM.

import json
import requests

# Here use your API Keys (see step #1)
usr = 'fr1_eu_Oilock3_FN1Y0H6'# usr = API Token
pwd = 'FnrNjSpEK'# pwd = API Password
space_id = 'fr1_eu_Oilock'
region = 'eu-central'

# Build an URL for requesting Pipeliner's API
base_url = 'https://{}{}'.format( region, space_id)

# Get the list of users (clients) and sales units.
clients = requests.get(base_url + '/Clients', auth=(usr, pwd)).json()
units = requests.get(base_url + '/SalesUnits', auth=(usr, pwd)).json()

# Prepare a new lead:
new_lead = {
'OPPORTUNITY_NAME': 'Example Lead',
'OPPORTUNITY_DESCRIPTION': 'This is a create Lead example',
'SALES_UNIT_ID': units[0]['ID'], # First sales unit from the list.
'OWNER_ID': clients[0]['ID'] # First client from the list.

# Run the POST request and create your first lead.
response = + '/Leads',
auth=(usr, pwd))

Next Steps: Read Pipeliner CRM API Documentation and choose the language you would like to use to work with Pipeliner CRM JSON API.

Other Useful Parameters

The GET methods on entity collections support a few parameters for querying, filtering and pagination of the results. Parameters are:

Parameter Type Description
limit int Limits the number of returned entities. (Default=25)
offset int Starting offset of returned entities. (Default=0)
sort string Used to sort retrieved entities.
filter string Filters returned entities by given property/value pairs.
after string Retrieves entities which were modified after specified date.
loadonly string Select only specific fields from the entity.

Range-Based Responses

For a range-based request via query-string parameters, the server responds with a Content-Range header to indicate how many items are being returned and how many total items exist yet to be retrieved: Content-Range: items 0-24/66

Note that the total items available (e.g. 66 in this case) is not zero-based. Hence, requesting the last few items in this data set would return a Content-Range header as follows: Content-Range: items 40-65/66


Sorting utilizes a sort query-string parameter that contains a delimited set of property names. Behavior is, for each property name, sorted in ascending order, and for each property prefixed with a dash ("-") sorted in descending order. Separate each property name/value pair with a vertical bar ("|").

For example, if we want to retrieve Contacts in order of their last name (ascending), first name (ascending) and modification time (descending), the request looks like this:


To achieve a reverse chronological ordering of retrieved entities, use:



The individual filter phrases are separated by a vertical bar ("|") and to separate the names, values and optionally operator a double colon ("::") is used. By default, values are compared by the equality operator. Suppose we want to request Contacts with the name "Todd" who live in "Denver" and have the position of "Manager". Supported Operators:

Operator Condition Limitation Description
eq if(a == b) none Returns entities with equal field values.
ne if(a != b) none Returns entities with not equal field values.
gt if(a > b) none Returns entities with greater field values.
lt if(a < b) none Returns entities with lesser field values.
ge if(a >= b) none Returns entities with greater or equal field values.
le if(a <= b) none Returns entities with lesser or equal field values.
ll if(s%) string only Returns entities with left like field values.
rl if(%s) string only Returns entities with right like field values.
fl if(%s%) string only Returns entities with full like field values.
in if a in [a, b, c] none Returns entities with value in list of values. Values are separated by single ":". E.g. ?filter=FIRST_NAME::Todd:Richard::in


In order to use separator characters "|", ":" and "::" for non-separating purpose, it is required to escape them first. To escape these characters use the separator "\".

A request URI for organizations "Example: Corp" and "Another Corp" might look like:

GET .../Accounts?filter=ORGANIZATION::Example\: Corp:Another Corp::in

It is also advised to a URI encode filter value, so the final query will look like:

GET .../Accounts?filter=ORGANIZATION%3A%3AExample%5C%3A%20Corp%3AAnother%20Corp%3A%3Ain

To use an escape character for non-escaping purpose, simply use double backslash "\\", so a query for company name "N\A" will look like.

GET .../Accounts?filter=ORGANIZATION::N\\A

And after URI encode:

GET .../Accounts?filter=ORGANIZATION::N%5C%5CA

Selecting fields

Selecting specific fields can be useful when there are only specific fields. Requested entities are returned faster than on a full entity load. If the loadonly parameter is not set, a full load is performed. Fields are separated by the vertical bar ("|"). Suppose we want to request only the ID and name from Contacts. The requested URI might look like: