About the Nucleus Content Access API

This API allows for programmatic searching of and retrieval from the extensive Nucleus medical visuals catalog via a simple request/response vocabulary, allowing for the integration of Nucleus's thousands of medical images and animations within partner applications.

Check out these example implementations:

Host

All requests should be sent to the server at content-api.nucleusmedical.media over https.

Authentication

Requests must always include a header named 'X-Nucleus-Content-Api-Key' whose value must be an active Nucleus Content API key. Contact a Nucleus representative if you don't have an API key or if you require a new one.

Arguments

The following argument is optional on all calls:

debug
1 or 0 to indicate if debug information should be included in the response. (optional, defaults to 0)

Additional optional and required arguments specific to each endpoint are documented below.

Quick Start

Example: A search for the term "liver injury":

  1. Obtain an API key from your Nucleus representative. If you haven't worked with a Nucleus representative, contact us by telephone at (770) 792-8304 to request an API key.
  2. Make the API call using curl, PHP, or your choice of method to 'https://content-api.nucleusmedical.media/content/?terms=liver+injury', and include a header named "X-Nucleus-Content-Api-Key" with the value being your API key from step 1.
  3. View or parse the JSON-formatted results.

Endpoints

Name
Search for Content
Path
/content
Method
GET
Description
Searches for content in the Nucleus catalog using the supplied arguments.
Required Arguments
At least one of the following arguments must be supplied:
terms
a string containing search terms. Terms are parsed into words and searched. For example: "liver injury"
languages
a string containing a list of one or more comma-delimited language identifiers. For example: "en,es"
types
a string containing a list of one or more comma-delimited type identifiers. For example: "1,256"
Optional Arguments
The following arguments are optional:
count
specify the number of results to return. For example: "10". Defaults to "25".
tags
a string containing a list of one or more comma-delimited tag identifiers, each of which is composed of a numeric tag id, a dash, and a string matching the name of the tag. For example: "15-e11.65" to search for the ICD-10 code "e11.65".
Response
A list of matching content items is returned. Each match includes the item's id, vendor number, title, description, language, type, last modification date, status, match relevance value, a link to a thumbnail representing it, and a link to view the item at the appropriate destination site.
Sample Request
curl --header 'X-Nucleus-Content-Api-Key: {YOUR-API-KEY-HERE}' --request "GET" "https://content-api.nucleusmedical.media/content/?terms=liver+injury&languages=en&types=1%2C256%2C1024&tags=&result-count="
Sample Response
{
    "error-num": 0,
    "error-message": "",
    "error-message-detail": "",
    "status-code": 200,
    "api-version": "0.8",
    "result": {
        "count": 1,
        "page": 1,
        "matches": [
            {
                "item-id": "71328",
                "vendor-number": "exh71413a",
                "title": "Male figure with Brain Injury, Damage to the Spleen and Liver, and Fractures of the Arm and Legs Bilaterally",
                "description": "This medical exhibit depicts a silhouette (outline) view of the full body revealing the skeletal anatomy from the skull down to the feet and showing the brain within the skull, the lungs within the ribcage and the liver and spleen within the abdomen.   This image acts as an overall orientation to the various major injuries in this case and will include traumatic brain injury, multiple facial fractures, right humerus fracture, right brachial plexus injury, left radius fracture, multiple rib fractures, hemothorax, bilateral pneumothorax and lung contusions, liver laceration, spleen laceration, L4 and L5 transverse process fractures, pelvic fractures and right knee and ankle fractures.",
                "language": "en",
                "type": "Medical Exhibit",
                "last-modified": "2020-03-05",
                "status": "Published",
                "match-relevance": "222",
                "thumb-path": "https://api.nucleusmedical.media/v1/thumb/exh71413a/128",
                "view-path": "https://nmal.nucleusmedicalmedia.com/view-item?ItemID=71328"
            }
        ]
    }
}
Name
Get Content Item Metadata
Path
/content/{item-id}
Method
GET
Description
Returns information about a specific item in the Nucleus catalog as determined by the {item-id} part of the path, where {item-id} may be either the item-id or the vendor-number.
Required Arguments
None
Optional Arguments
None
Response
Information for the single specified content item is returned. The information includes the item's id, vendor number, title, description, language, type, last modification date, status, match relevance value, a link to a thumbnail representing it, and a link to view the item at the appropriate destination site.
Sample Request
curl --header 'X-Nucleus-Content-Api-Key: {YOUR-API-KEY-HERE}' --request "GET" "https://content-api.nucleusmedical.media/content/AND13013/"
Sample Response
{
    "error-num": 0,
    "error-message": "",
    "error-message-detail": "",
    "status-code": 200,
    "api-version": "0.8",
    "result": {
        "count": 1,
        "matches": [
            {
                "item-id": "78588",
                "title": "Treating High Blood Sugar",
                "vendor-number": "AND13013",
                "description": "MEDICAL ANIMATION TRANSCRIPT:  This video will teach you how to manage and treat high blood sugar. Please watch the entire video before treating your high blood sugar. After you eat food that contains carbohydrates, your body breaks it down into a sugar called glucose. Your body makes a hormone called insulin that helps you either use or store blood sugar. When you have diabetes, your body does not make enough insulin or cannot use the insulin it makes properly. This can cause you to have too much sugar in your blood, which is a condition called hyperglycemia. Hyperglycemia can happen when you do not take enough insulin or diabetes medicine; take other medicines that increase blood sugar; eat more food or carbohydrates than you usually do; do not get enough exercise or physical activity; get sick, injured, or have surgery; have emotional stress, such as family or work problems; or have changes to hormone levels, such as during menstrual periods. If you have hyperglycemia or your blood sugar is too high, you may feel very thirsty and have to urinate a lot. You may also feel very tired and notice your vision is blurry. If you do not treat hyperglycemia, your blood sugar may build up to a dangerously high level, requiring you to seek immediate emergency care. The first step to understanding how to treat high blood sugar is knowing your normal blood sugar target range. If you feel or notice symptoms of hyperglycemia, be sure to check your blood sugar level right away. If your blood sugar is above your target range make sure you drink plenty of water or other sugar free liquids to stay hydrated. Take your insulin or diabetes medication the way your health care provider says you should. Do not take extra medication without first checking with your health care provider. Check your blood sugar every four hours. Follow your normal meal plan and increase your physical activity or exercise if you can. Do not exercise if your blood sugar is above 240. Exercise may make your blood sugar level go even higher. Contact your health care provider if your blood sugar stays above your target range or you notice the following symptoms that may need immediate treatment-- shortness of breath, breath that smells fruity, or your mouth feels very dry. You can help prevent hyperglycemia by regularly checking your blood sugar, following your normal meal plan, taking your diabetes medication as prescribed by your doctor, controlling stress, and exercising regularly.",
                "language": "en",
                "last-modified": "2020-07-02",
                "thumb-path": "https://api.nucleusmedical.media/v1/thumb/AND13013/128",
                "view-path": "https://nmal.nucleusmedicalmedia.com/view-item?ItemID=78588"
            }
        ]
    }
}
Name
Get Content Item Display URL
Path
/url/{item-id}
Method
GET
Description
Returns the time-limited URL to display the specific item from the Nucleus catalog as determined by the {item-id} part of the path, where {item-id} may be either an item-id or a vendor-number.
Required Arguments
None
Optional Arguments
The following arguments are optional:
max-bounds
the maximum bounding size for the item's display. In the case of an image type, this is the maximum dimension of the image at the returned URL.
Response
A URL is returned that will display the specified item.
Sample Request
curl --header 'X-Nucleus-Content-Api-Key: {YOUR-API-KEY-HERE}' --request "GET" "https://content-api.nucleusmedical.media/url/AND13013/?max-bound=128"
Sample Response
{
    "error-num": 0,
    "error-message": 0,
    "result": {
        "urls": {
            "AND13013": "https://images.nucleusmedical.media/AND13013_b34f10ddbdc4c267dd41e8a5b31d690c/ff3261fa/AND13013/H270xW480/image.jpg"
        }
    }
}
Name
List Available Types
Path
/types
Method
GET
Description
Returns a list of the available content item types.
Required Arguments
None
Optional Arguments
None
Response
A list of available content item types is returned. Each item type includes the type's id and display name. The id returned may be used to limit searches by including it in the 'types' argument.
Sample Request
curl --header 'X-Nucleus-Content-Api-Key: {YOUR-API-KEY-HERE}' --request "GET" "https://content-api.nucleusmedical.media/types/"
Sample Response
{
    "error-num": 0,
    "error-message": "",
    "error-message-detail": "",
    "status-code": 200,
    "api-version": "0.8",
    "result": {
        "count": 3,
        "matches": [
            {
                "type-id": "1",
                "type-name": "Animation"
            },
            {
                "type-id": "1024",
                "type-name": "Medical Exhibit"
            },
            {
                "type-id": "256",
                "type-name": "Stock Illustration"
            }
        ]
    }
}
Name
List Available Languages
Path
/languages
Method
GET
Description
Returns a list of the available content item languages.
Required Arguments
None
Optional Arguments
None
Response
A list of available content item languages is returned. Each language includes the language's id and display name. The id returned may be used to limit searches by including it in the 'languages' argument.
Sample Request
curl --header 'X-Nucleus-Content-Api-Key: {YOUR-API-KEY-HERE}' --request "GET" "https://content-api.nucleusmedical.media/languages/"
Sample Response
{
    "error-num": 0,
    "error-message": "",
    "error-message-detail": "",
    "status-code": 200,
    "api-version": "0.8",
    "result": {
        "count": 2,
        "matches": [
            {
                "language-id": "en",
                "language-name": "English"
            },
            {
                "language-id": "es",
                "language-name": "EspaƱol (Spanish)"
            }
        ]
    }
}

Responses

API responses are formatted as JSON and include error-num, error-message, status code, and current API version elements at a minimum. An error-num value greater than zero indicates a failure. The error-message value provides additional information about the failure.

If the error-num value is zero, the repsonse will also include a result element which contains the results of the request.

Searching

API Key
Debug
No Yes
Count
Terms
ICD-10 Code
Languages
Types

Get Item Metadata

API Key
Debug
No Yes
Item

Get Item Display URL

API Key
Debug
No Yes
Item
Max Bound

List Available Item Types

API Key
Debug
No Yes

List Available Languages

API Key
Debug
No Yes

Try It Response

Result