Let the platform do the work

//filter/count GET

Overview

Counts filtered records.

Summary

This endpoint will return a count of records filtered by an expression. The filter can be applied to multiple fields and have multiple and/or conditions in it. Alternatively, you may use an existing filter by specifying its id. If both a filter definition and a filter id are passed, the two filters will be joined with an AND. Care will need to be taken to make sure that any filters used have appropriate indexes on the server side otherwise the runtime of the endpoint will be very long. Related fields can be searched by specifying the field name as: "link_name.remote_field", so if you wished to search the Accounts module by a related member account you would use "members.sic_code".

Request Arguments

Name Type Description Required
filter String

The filter expression. Filter expressions are explained below. Note that JSON-encoded filters can be specified as query parameters in one of two ways for GET requests:

  1. By specifying individual filter arguments as distinct parameters. Example: filter[0][id]=1.
  2. By specifying the whole filter as a single JSON-encoded string. Note that this syntax is currently not supported on certain modules. Example: filter=[{"id":"1"}].
False
filter_id String Identifier for a preexisting filter. If filter is also set, the two filters are joined with an AND. False
max_num Integer A maximum number of records to return. Default is 20. False
offset Integer The number of records to skip over before records are returned. Default is 0. False
fields String Comma delimited list of fields to return. The field date_modified will always be returned.
Example: name,account_type,description
False
view String Instead of defining the fields argument, the view argument can be used instead. The field list is constructed at the server side based on the view definition which is requested. This argument can be used in combination with the fields argument. Common views are "record" and "list".
Example: record
False
order_by String How to sort the returned records, in a comma delimited list with the direction appended to the column name after a colon.
Example: name:DESC,account_type:DESC,date_modified:ASC
False

Filter Expressions

There are four types of filters:

Basic

This will filter the results by checking the field "name" for value "Nelson Inc". This will only find exact matches.
Query String Example
filter=[{"name":"Nelson Inc"}]

Full

This expression allows you to specify what operation you want to use for filtering on the field. In the example you would match any record where the field "name" starts with the value "Nelson".
Query String Example
filter=[{"name":{"$starts":"Nelson"}}]
Below is a list of operation types:
Operation Description
$equals Performs an exact match on that field.
$not_equals Matches on non-matching values.
$starts Matches on anything that starts with the value.
$ends Matches anything that ends with the value.
$contains Matches anything that contains the value
$in Finds anything where field matches one of the values as specified as an array.
$not_in Finds anything where field does not matches any of the values as specified as an array.
$is_null Checks if the field is null. This operation does not need a value specified.
$not_null Checks if the field is not null. This operation does not need a value specified.
$lt Matches when the field is less than the value.
$lte Matches when the field is less than or equal to the value.
$gt Matches when the field is greater than the value.
$gte Matches when the field is greater than or equal to the value.

Sub-expressions

This allows you to group filter expressions into or/and groupings. By default all expressions are and'ed together. The example expression would match if the field "name" was either "Nelson Inc" or "Nelson LLC". The only currently accepted sub-expression types are "$and" and "$or".
Query String Example
filter=[{"$or": [{"name":"Nelson Inc"}, {"name":"Nelson LLC"}]}]

Modules

There are two module expressions, they operate on modules instead of fields. The current module can be specified by either using the module name "_this" or by leaving the module name as a blank string. The example expression would filter the records in the current module to only your favorites. The only currently accepted module expressions are "$favorite" and "$owner".
Query String Example
filter=[{"$favorite":"_this"}]

Response Arguments

Name Type Description
record_count
Integer Displays the number of records that meet the criteria

Response

  {
    "record_count": 5761
}

Change Log

Version Change
v10 Added /<module>/filter/count GET endpoint.

Topics