Pipeliner CRM Hybrid API

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. Sign in to Pipeliner CRM Admin Portal here: https://workspace.pipelinersales.com using your Pipeliner CRM account.
  2. Click to open your space.
  3. Click on the “Show API Access Details.”
  4. Copy your Pipeliner CRM API Keys

(see the screenshots below for more help)

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):

Copy to Clipboard

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:

Copy to Clipboard

Test Case Scenario

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

  1. Prepend your support url for clients. In our case it would be eu-central.pipelinersales.com/rest_services/v1/fr1_eu_Oilock/Clients
  2. Enter your API Keys credential. Username = API Token, Password = API Password.
  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.

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. Below you can find the way you can use Python to create a lead in Pipeliner CRM:

Copy to Clipboard

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.

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:

Copy to Clipboard

To achieve a reverse chronological ordering of retrieved entities, use: -PPL_CHRONOLOGICAL|-CREATED for sorting.


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:

Copy to Clipboard

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

Copy to Clipboard

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

Copy to Clipboard

And after URI encode:

Copy to Clipboard

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:

Copy to Clipboard