Querying Data

Please, note that as OfficeRnD is evolving as the leading Flexible Workspace Management Platform, we're doing our best to document all available system entities and their properties that we believe are important for external usage.

We explicitly may not document some properties that we believe should be used only internally. We will strongly recommend that you don't use fields that are not documented here as we might change them in the future. We can guarantee future API compatibility only for documented entities and their properties.

Populate

The OfficeRnD API allows you to request related entity information using the $populate method. For example, a visit has an associated visitor (contact information) which you can pull by id and populate the data together with the 'visit' entity. Those objects can be expanded inline with the $populate request parameter.

Objects that can be expanded are noted in this documentation. This parameter is available on all GET API requests. This option works for both object lists and single object requests.

Select

Sometimes you may not need all the fields of a given object. You can optimize your queries by passing the $select request parameter to filter only the fields you need.

This parameter is available to all GET requests. This option works for both object lists or single object requests.

Filter

You can filter the results of get requests by adding query parameters. For example, if you want to find all members which are part of a company you can add team= in the query string.

You can use wildcard matches on some string fields if you want to find a group of entities. Use $sw, $ew, $cs for starts with, ends with and contains matches. If you need to perform a case insensitive search, just use $swi, $ewi and $csi.

For example, if you want to find all members with a name starting with "john" no matter the case you can pass name.$swi=john.

Please, note that as these are query parameters their values need to be URL encoded.

Paging

OfficeRnD API allows you to pass paging parameters in order to correctly traverse through a high number of results. In order to tranvere through the results of a listing API, you need to use the $limit, $next or $prev query parameters. If successsful, the response will return a list of only limited number of results and additional metadata in headers.

The $limit parameter

In order to limit the number of results returned you can use to $limit query parameter and pass a number.

Example

The example below will return only 10 items from the list of results.

$limit=10

The $next parameter

To successfully travers a list of results, you need use the $limit parameter in combination with the $next parameter. While $limit reduces the number of returned results, the $next parameter points to the start of the current page. If $next parameter is not passed, the first page is assumed.

Example

The example below will return 10 items from the list of results at next page with pointer eyJrIjoibmFtZSIsInYiOiJTYW1wbGUiLCJwIjoyMCwiX2lkIjoiNWE3YTE2MDQwMGExNjA0MDAwYThjMzcifQ==.

$limit=10&$next=eyJrIjoibmFtZSIsInYiOiJTYW1wbGUiLCJwIjoyMCwiX2lkIjoiNWE3YTE2MDQwMGExNjA0MDAwYThjMzcifQ==

The $prev parameter

The $prev parameter is an alternative to the $next parameter and can be used when moving through the results pages backwords. In other words, if you need to go to the previous results page rather than the next one. You need use the $limit parameter in combination with the $prev parameter.

Example

The example below will return 10 items from the list of results at previous page with pointer eyJrIjoibmFtZSIsInYiOiJTYW1wbGUiLCJwIjoyMCwiX2lkIjoiNWE3YTE2MDQwMGExNjA0MDAwYThjMzcifQ==.

$limit=10&$prev=eyJrIjoibmFtZSIsInYiOiJTYW1wbGUiLCJwIjoyMCwiX2lkIjoiNWE3YTE2MDQwMGExNjA0MDAwYThjMzcifQ==

Note: If both $next and $prev are passed to the request $next pointer takes precedence.

Response headers

Each request which contains the $limit and $next or $prev parameters will return additional headers in the response with metadata regarding the request.

  • rnd-cursor-next - a cursor pointer to the next page. The value of this header should be passed as $next query parameter. If there is no next page this header will not be returned.
  • rnd-cursor-prev - a cursor pointer to the previous page. The value of this header should be passed as $prev query parameter. If there is no previous page this header will not be returned.
  • rnd-range-start - the numeric index of the first returned item. If the full list consists of 300 items and you iterate over all items using a $limit of 10, on the second page you will get items with numeric index 11 to 20. rnd-range-start will be 11.
  • rnd-range-end - the numeric index of the last returned item. If the full list consists of 300 items and you iterate over all items using a $limit of 10, on the second page you will get items with numeric index 11 to 20. rnd-range-end will be 20.

Note: Objects which have paging enabled are noted in this documentation.

Sorting

OfficeRnD API allows you to pass sorting description using the $sort query parameter. For example, you may want to list all members and sort them by name. This result can be achieved using the $sort request parameter. The value of this parameter needs to be comprized by the name of the field you want to sort by, followed by a colon and the sorting direction (asc for ascending descfor descending). If you want to request a list to be sorted by the name property ascending you need to pass - $sort=name:asc

Note: Objects that can be expanded are noted in this documentation.

๐Ÿ“˜

Schema

Please, note that as OfficeRnD is evolving we're doing our best to document all available system entities and their properties that we believe are important for external usage.

We explicitly may not document some properties that we believe should be used only internally. We will strongly recommend that you don't use fields that are not documented here as we might change them in the future. We can guarantee future API compatibility only for documented entities and their properties.


Did this page help you?