Mednet EDC REST API Reference
This page summarizes the core behavior of the iMednet REST API. It expands upon API Overview and serves as a quick reference for request structure and filter syntax.
Overview
The API exposes clinical study data via JSON responses. Consumers typically use the API to export data to reporting tools, present it in external applications, or compile custom audit trails.
Base URL
https://edc.prod.imednetapi.com
is the production endpoint. Append an
endpoint route such as /api/v1/edc/studies
to access resources.
Security
Each request requires x-api-key
and x-imn-security-key
headers. Keys
should never be shared publicly. Example using curl
:
curl -X GET https://edc.prod.imednetapi.com/api/v1/edc/studies/STUDYKEY/sites \
-H 'x-api-key: XXXXXXXX' \
-H 'x-imn-security-key: XXX-XXX-XX-XXXXXX' \
-H 'Content-Type: application/json'
Headers
Accept
Supported server response media type. Must be
application/json
.x-api-key
Valid API key.
x-imn-security-key
Valid security key.
Content-Type
Supported request content type. Must be
application/json
.
The response includes a Content-Type
header indicating the payload
type. It will also be application/json
.
HTTP verbs
GET
retrieves resources while POST
is used to insert data.
Status codes
200
Request succeeded.
400
Malformed request.
401
Authentication failed.
403
Authorization error such as an invalid
studyKey
.404
Resource not found.
429
Too many requests.
500
Unknown server error.
Filtering
Endpoints accept a filter
query string composed of key, operator and value
segments. recordDataFilter
targets dynamic question data within a record.
Attributes
Valid attributes vary per endpoint. Common examples include studyKey
for
studies, siteId
and siteName
for sites, formId
and formKey
for
forms, and dateCreated
or dateModified
for most resources.
Operators
<
less than
<=
less than or equal to
>
greater than
>=
greater than or equal to
==
equal
!=
not equal
=~
contains (for recordDataFilter
)
Connectors
and
or ;
logical AND
or
or , logical OR
Dates
Dates are UTC timestamps. When filtering visits by startDate
,
endDate
, dueDate
or visitDate
use the YYYY-MM-DD
format.
Filter examples
formId > 10
Forms with an ID greater than 10.
formType == "SUBJECT"
Subject related forms.
formId > 10;formType == "SUBJECT"
Subject related forms with ID greater than 10.
dateCreated>2000-11-05T14:00:00Z
Entities created after 5 November 2000 14:00 UTC.
visitDate<2019-03-19
Visits occurring before 19 March 2019.
recordDataFilter examples
AESER==Serious
Serious adverse events.
AESER==Serious;GENDER==Male
Serious adverse events for male subjects.
AESER==bronch
Adverse events containing
bronch
.
Notes
White space is not allowed between attribute, operator and value. Both filter
and recordDataFilter
require unique attributes and are case sensitive.
Error responses
When a request fails, details are returned in the metadata
section of the
response body. Validation errors include the offending field and value.
Example:
{
"metadata": {
"status": "BAD_REQUEST",
"path": "/api/v1/edc/studies",
"timestamp": "2018-10-18 05:46:29",
"error": {
"code": "1000",
"description": "Field raised validation errors",
"field": {
"attribute": "page",
"value": "XX"
}
}
}
}
Error response fields
code
Error code
description
Error description message
field.attribute
Origination request attribute which caused the error
field.value
The value of request attribute passed in the request
Error codes
1000
Validation error. Request contain invalid value.
9000
Unknown error. Please contact Mednet support for assistance.
9001
Unauthorized error. Insufficient permission to retrieve data.