SQL API Calls
The PCR-360 API offers the ability to send a SELECT query to retrieve any data the system offers. It is important to note that this functionality is limited to only SELECT statements and no data can be modified (UPDATE statements) or destroyed (DELETE statements). Having the ability to SELECT any data that is required is a very powerful tool. This allows the API to be more flexible when retrieving data than any standard endpoint.
To use the SQL endpoint, make a POST request to the SQL endpoint using one of the three possible data formats (JSON, XML, or PHP). This may seem odd as retrieving data is usually done via a GET request, however, SQL statements can become quite long and, to avoid issues with URL maximum lengths, we have decided to utilize POST requests for this functionality.
Click the Headers link for more information on the API Header. Click the Making a Request link for the basics of initiating a request.
Using POST Calls
Using POST Calls
- POST requests will ignore parameters supplied as a query string and need any additional parameters in the request Body.
To configure the number of Pages/Results returned by the API (this is most useful for the SQL Endpoint), you can send these as additional Parameter's in the Body.
Parameter
Data Type Default
Description
limit
Interger 20
Number of listings to show.
page
Interger 1
Page number to show.
- API fields are not case sensitive, and will always be returned in the lower case format.
SQL End Point
http://DOMAIN/api/API_KEY/sql.OUTPUT
Below is the single parameter for making an SQL POST request.
Parameter | Required | Data Type | Notes |
---|---|---|---|
sql | yes | string | SQL SELECT statement |
Using the Data Dictionary
Please see the Data Dictionary for the structure of the database which will assist in creating queries.
The Data Dictionary can be used as an index to see what data might be related to other tables for ease in building up the SELECT and FROM portions of the statements you desire to build up. Specific data on identified fields can be further filtered in the WHERE portion of the statement.
Sample SQL Call
Call:
POST DOMAIN/KEY/sql.json
Headers:
Key | Value |
---|---|
Content-Type | application/json |
Pcr-Html-Encoded | TRUE |
Body:
Key | Value |
---|---|
sql | SELECT RECID FROM SERVICES |
This call will be expected to RECIDs from the SERVICES Table in JSON format.
Sample Return
{
"status": "success",
"page": "1",
"count": 20,
"total_count": "324500",
"results": [
{
"RECID": "1"
},
{
"RECID": "2"
},
{
"RECID": "3"
},
{
"RECID": "4"
},
{
"RECID": "5"
},
{
"RECID": "6"
},
{
"RECID": "7"
},
{
"RECID": "8"
},
{
"RECID": "9"
},
{
"RECID": "10"
},
{
"RECID": "11"
},
{
"RECID": "12"
},
{
"RECID": "13"
},
{
"RECID": "14"
},
{
"RECID": "15"
},
{
"RECID": "16"
},
{
"RECID": "17"
},
{
"RECID": "18"
},
{
"RECID": "19"
},
{
"RECID": "20"
}
]
}
Classes of Service
Classes of Service values can be retrieved only through the SQL endpoint. Retrieving these values is needed for using the Authentication Token Mode of the API.
Call:
POST DOMAIN/KEY/sql.json
Body:
Key | Value |
---|---|
sql | SELECT RECID, CODE, DESCRIPTION FROM CLASSES_OF_SERVICE |
Return:
{
"status": "success",
"page": 1,
"count": 3,
"total_count": "3",
"results": [
{
"RECID": "1",
"CODE": "0",
"DESCRIPTION": "First Class"
},
{
"RECID": "2",
"CODE": "9",
"DESCRIPTION": "Second Class"
},
{
"RECID": "3",
"CODE": "100",
"DESCRIPTION": "Third Class"
}
]
}