The Redox Platform API is a RESTful JSON utility that allows you to automate your monitoring and configuration workflows. Currently, the Platform API allows you to programmatically export log data. Eventually, we plan to allow you to perform other actions within the Redox dashboard via Platform API as an alternative.
The Platform API is meant to be used by back-end servers accessing Platform API resources and FHIR® endpoints. It also allows you to use record locator service.
Check out our Platform API reference for log endpoint specifications.
We’re currently using the v1 beta version of the Platform API, which was released in July 2021. We expect to release more versions later as we add new endpoints and roll out more changes to the dashboard.
Our previous v0 alpha version was an experimental set of APIs based on dashboard concepts in early 2021. It may be discontinued at any time with 30-day notice.
Any request made via the Platform API contains the version of the API you're using, as well as your Redox dashboard organization credentials like this:
https://api.redoxengine.com/platform/:version/organization/:id/
You can locate your organization ID in the Organization Profile page of the Redox dashboard.
Platform API requests are limited to about 1 minute before timing out and returning a 504 Gateway Timeout
.
If your request keeps timing out, we recommend defining a shorter time period for results by using the updatedAfter
and updatedBefore
or createdAfter
and createdBefore
query parameters.
Required parameters (e.g., requesting a specific log by ID) should go in the URL path like this: /messages/:id
.
Optional parameters (e.g., for filtering, sorting, or controlling response output) should be included in the query string like this: ?param=123
.
Any datetime
query parameters are in ISO 8601 format (e.g., 2023-01-10T19:46:40.081Z
)
If you want to paginate or count results in the response, you can add these query parameters:
Query parameter | Type | Description |
---|---|---|
_page | Integer | Include this if you want the response to return a specific page number from the results. 1 is the first page. |
_count | Integer | Define the number of records to return per page. The maximum value per page is 50 . |
Every response from the Platform API is contained in a wrapper object, even when the returned value is already an object. This payload wrapper comprises a meta
object, which contains metadata about your request, and a payload
object, which contains the results related to your request.
The payload
object may contain fields that return a single result (singular field name) or an array of results (plural field name).
{"meta": {"version": "1.1.0",},"payload": {"record": {// ...single record},//OR"records": [{// ...first record},{//...second record}]}}
You can page through results via the links provided in the meta.page
object in the response. Specifically, you can page through a set of results using the next
and prev
paths indicated within the meta.page.links
object. At the beginning or end of a set of results, the prev
or next
links are undefined.
You may also see metadata counts, which display the total size of the result set, including totalRecords
, totalPages
, and pageSize
.
{"meta": {"version": "3.1.3", // Required, the version of this payload"page": {"links": {"first": "<path-to-first-page>","prev": "<path-to-first-page>", // undefined on first page"self": "<path-to-this-returned-page>","next": "<path-to-page-after-returned-page>" // undefined on last page},"currentPage": 1, // Required"pageType": "offset", // Required"pageSize": 20, // Optional, size of each page"totalRecords": 124, // Optional"totalPages": 7 // Optional},// ... other metadata about the request/operation/response ...},"payload": {"records": [{// ... first record here ...}]}}
If there are any errors, they're returned in a standard payload. For reference, check out a list of possible error codes (under the Failed response section).
{"meta": {"version": "1.2.3", // Required, the version of this payload// ... other metadata about the request/operation/response},"payload": {"error": {"id": "failure-instance-identifier", // Optional, unique ID for this error"code": "failure.type.code", // Required"title": "Failure Type Title String", // Required"detail": "Specific failure message", // Required"transient": true, // Required, true implies error might resolve and the request should be retried"status": 401, // Optional, response status code"meta": {} // Optional, error metadata},"errors": [{}] // Returned if multiple errors}}
If a request references a specific object (e.g., /<resource>/:id
) but that resource doesn't exist, a 404
is returned.
If a request references a collection of objects (e.g., /resources
) but there aren't results for that resource, then a 200
is returned with an empty results array.