REST API service

All data from Perfion can be queried via two different endpoints. The endpoints differ in their input methods. The response of both endpoints is the same.

The syntax of the JSON formatted response data is described in Query Reference.

POST Data endpoint

This endpoint accepts a Perfion JSON query and queries the Perfion Database for data.

Url: POST /data

Parameters:

Parameter

Description

Properties

string query

JSON formatted search.

The Perfion Query JSON is separated into the sections: Select, From, Where, Having and Order.

The syntax is inspired by normal SQL and should therefore be easy to learn.

Content type: application/json

Parameter type: Body

As input, the method takes a Perfion Query in JSON format. The syntax is inspired by normal SQL but is enhanced with the ability to return multi-valued and sequenced data as well as localized data in multiple languages, and a number of other advanced abilities not possible with the regular SQL tabular result format.

The method returns all data in JSON format. For binary features such as images and files, the binaryID GUID value is returned. The actual Binary data can then be retrieved via the File & Image Server included in the Perfion API service.

Authentication:

The endpoint requires authentication. The token is a JWT bearer token. Please refer to Authentication to learn how to get a token.

The token must be supplied in the request header. In C# it can be done on a HttpClient like this:

The endpoint will respond with the following response codes

Response code 200 (OK)

The request was successful. The response body is a JSON object. Read more about the format in Query Reference. 

Response code 400 (Bad request)

Given parameters was missing or invalid. The response body contains is a JSON object formatted in one of the following ways:

Response code 401 (Unauthorized)

No valid authentication token was supplied!

Response code 500 (Internal server error)

Some unexpected error has occurred. The response body contains is a JSON object formatted as follows:

GET Data endpoint

This endpoint excepts an ID reference of a search feature item and executes the Perfion query that is saved on it.

Url: Get /data?searchId=123&index=0&maxCount=5 

Parameters:

Parameter

Description

Properties

int searchId

Represents the identifier for a feature data item placed under a search feature.

Parameter type: query

int index

Optional parameter that injects page index into the saved Perfion query to give control of paging.

Parameter type: query

int maxCount

Optional parameter that injects page max count into the saved Perfion query to give control of paging.

Parameter type: query

The method returns all data in JSON format. For binary features such as images and files, the binaryID GUID value is returned. The actual Binary data can then be retrieved via the File & Image Server included in the Perfion API service.

Authentication:

The endpoint requires authentication. The token is a JWT bearer token. Please refer to Authentication to learn how to get a token.

The token must be supplied in the request header. In C# it can be done on a HttpClient like this:

The endpoint will respond with the following response codes

Response code 200 (OK)

The request was successful. The response body contains is a JSON object formatted as follows.

Response code 400 (Bad request)

Given parameters was missing or invalid. The response body contains is a JSON object formatted in one of the following ways:

Response code 401 (Unauthorized)

No valid authentication token was supplied!                           

Response code 500 (Internal server error)

Some unexpected error has occurred. The response body contains is a JSON object formatted as follows:

POST Get Version endpoint

This endpoint return the version number.

Url: GET /get-version

Parameters: no parameters needed

Authentication:

The endpoint requires authentication. The token is a JWT bearer token. Please refer to Authentication to learn how to get a token.

The token must be supplied in the request header. In C# it can be done on a HttpClient like this:

The endpoint will respond with the following response codes

Response code 200 (OK)

The request was successful. The response body is a JSON object.

{ "Version": "5.2.0" }

Response code 400 (Bad request)

Given parameters was missing or invalid.

Response code 401 (Unauthorized)

No valid authentication token was supplied!

Response code 500 (Internal server error)

Some unexpected error has occurred. The response body contains is a JSON object formatted as follows:

POST Execute Action endpoint

This endpoint execute an action and return an execution Id.

Url: POST /execute-action/{actionId}

Parameters:

Parameter

Description

Properties

int actionId

Action Id to be executed

Content type: application/json

Parameter type: URI

string actionInput

JSON formatted table.

{
"ActionInput": {
"ActionTable1": [
{
"Col1": "123",
"Col2": "456"
},
{
"Col1": "123",
"Col3": "456"
}
],
"ActionTable2": {
"Col1": "123",
"Col2": "456"
}
}
}

Content type: application/json

Parameter type: Body

Authentication:

The endpoint requires authentication. The token is a JWT bearer token. Please refer to Authentication to learn how to get a token.

The token must be supplied in the request header. In C# it can be done on a HttpClient like this:

The endpoint will respond with the following response codes

Response code 200 (OK)

The request was successful. The response body is a JSON object.

{ "ExecutionQueueId": 19 }

Response code 400 (Bad request)

Given parameters was missing or invalid.

Response code 401 (Unauthorized)

No valid authentication token was supplied!

Response code 500 (Internal server error)

Some unexpected error has occurred. The response body contains is a JSON object formatted as follows:

POST Process report endpoint

This endpoint processes a report and return the processed report.

Available from Perfion 2023 R1 SR1.

Url: POST /reports/{reportId}/process?id=3027&language=dan&streamtype=pdf

Parameters:

Parameter

Description

Properties

int reportId

Report Id to be processed.

Parameter type: URI

int id

Id of item or items to be included in the report. Can be comma separated list of id’s if multiple items is to be included.

Parameter type: URI

string language

Language to generate report in. This is an optional parameter.

Parameter type: URI

string streamtype

Report can be generated in the following formats:

  • Pdf

  • Html

  • Mht

  • Rtf

  • Xls

  • Xlsx

  • Csv

  • Text

  • AddInOutput

This is an optional parameter.

Parameter type: URI

string action

The action parameter work for reports as described for Media Services URL Parameters. This is an optional parameter.

Parameter type: URI

string parameters

JSON formatted array of report parameters as specified in the superquery of the report. This is an optional parameter.

[

{"id":'StringTestParam',"values":['Testing']},

{"id":'IntTestParam',"values":['123']},

{"id":'DateTestParam',"values":['2022-12-01']},

{"id":'SelectTestParam',"values":['3593']},

{"id":'MultiTestParam',"values":['1st value','2nd value']}

]

Content type: application/json

Parameter type: Body

Authentication:

The endpoint requires authentication. The token is a JWT bearer token. Please refer to Authentication to learn how to get a token.

The token must be supplied in the request header. In C# it can be done on a HttpClient like this:

The endpoint will respond with the following response codes

Response code 200 (OK)

The request was successful. The response body is a streamed report file.

Response code 400 (Bad request)

Given parameters was missing or invalid.

Response code 401 (Unauthorized)

No valid authentication token was supplied!

Response code 500 (Internal server error)

Some unexpected error has occurred.