API Reference

Documentation for Channex.io HTTP JSON-based API version 1.0


If you have any comments, suggestions or recommendations, please let us know via [email protected]

API Reference

The Channex.io API is organised around REST. Our API has a predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients. We support cross-origin resource sharing, allowing you to interact securely with our API from a client-side web application. JSON is returned by all API responses, including errors.

API support GET, POST, PUT and DELETE queries.

Each response is valid JSON object and MUST contain at least one key: error, meta or data.

If response has success status, it MUST contain data or meta key at response object.

data object CAN be an Object or Array of Objects.

Each data object contain type and attributes keys with response object definition.

"meta": {
"message": "Human readability message"
"data": {
"type": "session",
"attributes": {
"token": "Bearer Access Token",
"system_role": "admin"

Each POST or PUT query MUST contain a valid JSON Object and use type of passed object as key for data.

"user": {
"email": "[email protected]"

Where user is type of passed entity.


Channex.io supports JSON Web Token authentication method and API Key access.

JSON Web Token

To authenticate User, you should call Sign In method with user credentials. In response, you are receive Session object with token key. Use that token as Bearer Token to authenticate user.

Our Access Tokens (token) is short live and have TTL equal to 24 hours. When this time is up, requests will be rejected with 401 Unauthorized code. In this case, you can refresh token via our Refresh API or sign in again.



curl --request POST "https://staging.channex.io/api/v1/sign_in" \
--header "Content-Type: application/json" \
--data '{
"user" : {
"email": "[email protected]",
"password": "password"


"meta": {
"message": "You are successfully logged in! Add this token to authorization header to make authorized requests."
"data": {
"type": "session",
"attributes": {
"token": "YOUR_TOKEN",
"refresh_token": "REFRESH_TOKEN",
"relationships": {
"user": {
"data": {
"type": "user",
"id": "2cd26047-db52-4c54-8c28-98099021c480",
"attributes": {
"id": "2cd26047-db52-4c54-8c28-98099021c480",
"email": "[email protected]",
"name": "Channex User",
"system_role": "user"

Request protected endpoint:

curl --request GET https://staging.channex.io/api/v1/properties/ \
--header "Authorization: Bearer YOUR_TOKEN" \
--header "Content-Type: application/json"

Immediate Access

For better user experience our API allows user access to system immediate after registration without email address confirmation. Queries Sign Up, Sign In, Confirm return Session object with token key.

API Key Access

Authentication method, where previously generated API Key is used to sign requests:

GET https://staging.channex.io/api/v1/properties/ HTTP/1.1
Host: staging.channex.io
Content-Type: application/json
user-api-key: uU08XiMgk8a7CrY4xUjAReUIuTrn83R123adaVb8Tf/qMcVTEgriuJhXWs/1Q1P

Please, read this article to get more information.


Channex.io uses conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, validation errors, etc.). Codes in the 5xx range indicate an error with Channex.io servers.

Each error response MUST include errors Object with error details.

"errors": {
"code": "validation_error",
"title": "Validation Error",
"details": {
"is_active": [
"can't be blank"

Errors Object MUST include code and title fields, other fields is optional.

Status Codes

200 OK Success Response

400 Bad Request The request was unacceptable, often due to missing a required parameter.

401 Unauthorized No valid Bearer Token provided.

403 Forbidden Access forbidden. User not have rights to call this action.

404 Not Found The requested resource doesn't exist.

422 Unprocessable Entity Validation Error.


The most List API endpoints at Channex.io by default returns only first 10 elements. To get more elements you should implement Pagination traversing logic. To work with pagination, use next arguments:

GET https://staging.channex.io/api/v1/{resource}?pagination[page]={X}&pagination[limit]={Y}

Where resource is requested endpoint, X - number of requested page, Y - count of elements at response.

Please, keep in mind, page counted from 1. Max limit value is 100.

To control how much elements associated with current account, you can use meta section from response:

"meta": {
"limit": 10,
"page": 1,
"total": 4


The most List API Endpoints at Channex.io support order arguments to get elements ordered by requested argument. Order field and direction should be provided as GET argument at API call:

GET https://staging.channex.io/api/v1/{resource}?order[{field}]={direction}

Where field is field name for sort, direction is one of possible values (asc or desc).

Most endpoints by default sort entities by title field at ascending direction.

Filtering data arguments

The most API endpoints at Channex.io supports filtering data arguments. Our filtering API provide operations to comparison and inclusion checks.

Basic Concept

Filtering arguments are passed as regular GET arguments in the query string under the filter prefix. Each field should be wrapped into square brackets: filter[field]. To pass list of possible values, use comma symbol: filter[field]=value1,value2.

By default symbol = mean comparison operator is equal if single value passed or is includes if list of values passed. But you can use other operators, like greater then or less then by passing it as second argument for filter: filter[field][gte]=value or filter[field][lte]=value. You can use more then one comparison operator for one field, to build conditions like DATE greater then 2019-01-01 and less then 2019-02-01.

Supported comparison operators

  • gt (greater than)

  • gte (greater than or equal)

  • lt (less than)

  • lte (less than or equal)

  • eq (equal to) default operation if you pass value after = symbol

  • not (not equal to)


Basic Comparison

Field equal provided value.


Multiple values

Field should be equal to at least one values from provided list.


Multiple fields

Pass several filter arguments.


Comparison operations

Use greater then and less then comparison operations


API Sandbox Server

To provide early access to our API and provide ability make some tests we are prepare sandbox server what you can use for your experiments. You can sign up yourself and use your email and password as the sign in keys.