Authentication

Generation of an API key must be done on a per account basis. The Redlist Public API doesn't currently support API Keys that span multiple accounts.

How to Generate an API Key

  1. Login to Redlist and Go to Admin > Integration Hub

  2. Click the blue + button at the top of the page

  3. Click the Redlist option in the Connect Integration modal

  4. Give the integration a Description and upload an image if desired - click Next

  5. Choose the permissions desired - click Create

  6. Copy the ApiKey, Secret, and ShardID - these will need to be included on all api requests for this account

Structuring the API Calls

Add the three required headers with their values (provided in the Redlist Integration Hub) to all Public API calls:

  • apiKey: {{API Key}}

  • vaultSecret: {{Secret}}

  • shardID: {{ShardID}}

Public API GETs and PATCHes

Parameter Usages on GET calls All of these functions can be used with the Get requests since they share this functionality. (ex. GET api/Tasks, GET api/ApplicationTypes, etc)

Pagination

Calling Get without any parameters by default will just include the first 25 records. Pagination supports ordering (sorting) and page size manipulation.

Query Parameters:

orderby - Sets the sorting of the pagination. Accepts a comma separated list or single value of the properties of the object (e.g. Name,Description). Use a space then Asc/Desc to determine direction. If no direction is specified then Asc is assumed.

skip - How many records to skip. Defaults to 0.

take - How many records to take. Defaults to 25; max allowed is 1000. Use in conjunction with skip to paginate results for a performant experience querying data.

Example call:

GET api/Tasks?orderby=CompletedOn Desc&take=25&skip=0 - retrieve records 1-25

GET api/Tasks?orderby=CompletedOn Desc&take=25&skip=25 - retrieve records 26-50

Filtering

Filtering can be applied to any of the GET calls that return a list. Almost any property on the object can be used for filtering. The name of the property should act as the parameter and then the value as the value to filter on. By default, this filtering only works with exact matches. However, by using the fuzzy and extFilter filter rules, more complex comparisons can be made.

Note: if an object allows for logical deletion (has a "Deleted" flag), then deleted records are automatically filtered out unless Deleted=true is specified.

Example

GET api/Tasks?TaskExternalMessagingID=2 - returns the task(s) that have 2 as the value for TaskExternalMessagingID

Fuzzy And ExtFilter

fuzzy - If present, operation will be a "Contains" operation. Enabled if fuzzy=true ex. ?fuzzy=true&Description=lube will search for the term "lube" in all task descriptions

extFilter - If present, will override fuzzy. See more information in the section below for usage

ExtFilters

If extFilter is present, you can indicate the operation that you would like to make. The options are as follows:

ne - Not Equals

gt - Greater Than

ge - Greater Than or Equal to

lt - Less Than

le - Less Than or Equal to

These are to be entered with a space after the value being compared.

Example

GET api/Tasks?TaskExternalMessagingID=2 le&extFilter=true - returns the task(s) that have 2 or less as the value for TaskExternalMessagingID

GET api/Tasks?CompletedOn=null ne&extFilter=true - Get all tasks that are completed

PATCH Endpoint Examples

Rename a task and descriptions

Original

{ "Description" : "Sample Description" }

Patch

[ {"op": "replace", "path": "/Description", "value": "Public API PATCH Test"} ]

After Patch

{ "Description" : "Public API PATCH Test" }

More advanced examples here: https://jsonpatch.com/