NIH | National Cancer Institute | NCI Wiki  

Error rendering macro 'rw-search'

null

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Once you have received your Client ID and Client Secret from CTRP Support, follow the steps below to use the NCI CTRP REST services

Download XML from CTRP API

1. Get OKTA access token

The following endpoint will generate an Okta access token provided the parameters passed in are valid.

POST:

curl --request POST “https://<clientId>:<clientSecret>@bioappdev.okta.com/oauth2/aus3ym6wniM6O3MGE297/v1/token” \
--header “Accept: application/json” \
--header “Content-Type: application/x-www-form-urlencoded” \
--data-urlencode “grant_type=password” \
--data-urlencode “username=<username>” \
--data-urlencode “password=<password>” \
--data-urlencode “scope=openid”


Parameters:

clientId

Client ID

clientSecret

Client Secret

username

CTRP OKTA account email ID

password

CTRP OKTA account password


Response:

{"token_type":"Bearer","expires_in":43200,"access_token":<accessToken>,"scope":"openid","id_token":<idToken>}


2. Get XML

Include the access token in the 'Authorization: Bearer' parameter when submitting API requests.

GET:

curl --location --request GET 'https://trials.nci.nih.gov/services/trials/<NCT> ' \

--header 'Content-Type: application/json' \

--header 'Accept: application/xml' \

--header 'Authorization: Bearer <accessToken>'


Parameters:

accessToken

Access Token

NCT

Trial ID (e.g. NCI-2017-02883)


Response:

   XML data

Password Rotation

The Client ID and Client Secret will be updated every year. CTRP team will provide new Client ID / Client Secret combination to PRS two weeks before each update. During the two-week grace period, both old and new credentials will work.

Test Site

https://trials-stage.nci.nih.gov/services/trials/

Error Codes

Table 1. Error Code for OKTA API

Error

Code

Message

Invalid Client Id

401

{

    "errorCode": "invalid_client",

    "errorSummary": "Invalid value for 'client_id' parameter.",

    "errorLink": "invalid_client",

    "errorId": "oaejDJuWCiRTQeH8n6WG2116A",

    "errorCauses": []

}

Invalid Client Secret

401

{

    "error": "invalid_client",

    "error_description": "The client secret supplied for a confidential client is invalid."

}

Invalid User Credentials / Account Locked*

400

{

    "error": "invalid_grant",

    "error_description": "The credentials provided were invalid."

}

*User OKTA account will be locked after multiple inputs of wrong credentials. The account will be unlocked automatically after 15 minutes.


Table 2. Error Code for CTRP API

Error

Code

Message

Invalid Token

401

HTML1

Invalid Request

400

<error>Abbreviated trials are not eligible for XML Export.</error>

Invalid Request

400

<error>This trial is in review in CTRP by the CTRO is not eligible to be uploaded to PRS at this time.</error>

Forbidden

403

<error>Authorization failed. User does not have ownership of the trial.</error>

Not Found

404

<error>No match found based on the NCI ID that was provided.</error>

Internal Server Error

500

<error>An error occurred while retrieving the information from CTRP. Please contact the CTRP Help Desk at ctrp_support@nih.gov.</error>

Other Run Time Error

500

HTML2


Appendix

1. Error message for invalid token

<html>

<head>

            <title>JBoss Web/7.5.7.Final-redhat-1 - JBWEB000064: Error report</title>

            <style>

                        <!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}

                        -->

            </style>

</head>

<body>

            <h1>JBWEB000065: HTTP Status 401 - </h1>

            <HR size="1" noshade="noshade">

            <p><b>JBWEB000309: type</b> JBWEB000067: Status report</p>

            <p><b>JBWEB000068: message</b> <u></u></p>

            <p><b>JBWEB000069: description</b> <u>JBWEB000121: This request requires HTTP authentication.</u></p>

            <HR size="1" noshade="noshade">

            <h3>JBoss Web/7.5.7.Final-redhat-1</h3>

</body>

</html>

2. Error message for run time error

<html>

<head>

            <title>JBoss Web/7.5.7.Final-redhat-1 - JBWEB000064: Error report</title>

            <style>

                        <!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}

                        -->

            </style>

</head>

<body>

            <h1>JBWEB000065: HTTP Status 500 - </h1>

            <HR size="1" noshade="noshade">

            <p><b>JBWEB000309: type</b> JBWEB000067: Status report</p>

            <p><b>JBWEB000068: message</b> <u></u></p>

            <p><b>JBWEB000069: description</b> <u>JBWEB000145: The server encountered an internal error that prevented it from

                                    fulfilling this request.</u></p>

            <HR size="1" noshade="noshade">

            <h3>JBoss Web/7.5.7.Final-redhat-1</h3>

</body>

</html>

  • No labels