API for browsing, adding, editing and deleting Reports.
GET ivrapi/Reports?filter=category={Category}
Returns a list of reports (in grid format) for the specified {Category} (e.g., category=Billing).
GET ivrapi/Reports/{ReportId}/Parameters
Return the parameters for the report identified by ReportId, which must be used to prompt the user for input values.
GET ivrapi/Reports/Categories
Return a list of report categories the user can access.
POST ivrapi/Reports
Generate the report specified in the ReportRequest DTO. Returns a WebServiceTaskId that can be monitored for report progress.
The file can be retrieved via GET ivrapi/WebServiceTasks/{WebServiceTaskId}/IoFile (See http://wsapidocs.ivr.com/web-service-tasks.html).
ReportParameters
{
"ReportId": 0,
"Name": "",
"Description": "",
"Parameters": [],
}
| Field | Description |
|---|---|
| ReportId | The unique id that identifies the report. |
| Name | The name of the report. |
| Description | The description of the report. |
| Parameters | Parameters used to specify the reporting criteria (Start Date, End Date, etc.). |
ReportParameter
{
"LabelText": "",
"VarName": "",
"Range": "",
"RangeType": "",
"SelectionListUrl": "",
"Value": ""
}
| Field | Description |
|---|---|
| LabelText | The label that should be displayed next to the input control when prompting the user for this parameter. |
| VarName | The variable name used by the report internally. |
| DefaultValue | The default value of this setting. |
| Range | The range of acceptable values for this setting based on the RangeType. |
| RangeType | Specifies the type of range for value selection and validation. |
| SelectionListUrl | If present, this URL will be used to get a list of values to select (See http://wsapidocs.ivr.com/resource-lookup-get.html#returning-a-list-of-resource-names). |
| Value | The value of the parameter. When retrieving parameters via ivrapi/Reports/{ReportId}/Parameters, this will be the default value that should be used to initialize the input control (e.g., the date that should be displayed for a RangeType of dtDate). NOTE: Date values must be in LOCAL time. The API will perform conversions to UTC as necessary. |
Range Types and Validation
For consistency, the range types are the same as those used by System & Module Settings.
IMPORTANT
(1) When generating a report via PUT ivrapi/reports, only the Value field in each report parameter should be modified. All of the other fields should remain unchanged.
(2) As noted in the Value column below, unlike System & Module Settings, in cases where an item is selected from a list via SelectionListUrl, the Value should be set to the Name field instead of the Id field returned by the list of resources (See http://wsapidocs.ivr.com/resource-lookup-get.html#returning-a-list-of-resource-names).
| Range Type | Control | Value | Notes |
|---|---|---|---|
| rtAccountGroup | List | Name | Use SelectionListUrl to get a list of values. |
| rtBatch | List | Name | Use SelectionListUrl to get a list of values. |
| rtClassOfService | List | Name | Use SelectionListUrl to get a list of values. |
| rtCodec | List | Name | Use SelectionListUrl to get a list of values. |
| rtCostSchedule | List | Name | Use SelectionListUrl to get a list of values. |
| rtModule | List | Name | Use SelectionListUrl to get a list of values. |
| rtModulesAll | List | Name | Use SelectionListUrl to get a list of values. |
| rtNode | List | Text | Use SelectionListUrl to get a list of values. |
| rtOrigin | List | Text | Use SelectionListUrl to get a list of values. |
| rtPath | Text | Text | Validation will be handled by the API. |
| rtRatePlan | List | Name | Use SelectionListUrl to get a list of values. |
| rtRateSchedule | List | Name | Use SelectionListUrl to get a list of values. |
| rtReadOnly | Text | N/A | Read-only values cannot be modified. |
| rtRouteGroup | List | Name | Use SelectionListUrl to get a list of values. |
| rtDate | Date | Text | Date ISO8601 format. |
| rtTime | 12 hour Time (am/pm) | Text | Value needs to be saved in in 00:00:00 format. |
| rtUTCOffset | List | Integer | Display a list of valid UTC offsets. |
| Text | Text | Not Implemented. | |
| Text | Text | Not Implemented. | |
| rtPaymentGateway | List | Name | Use SelectionListUrl to get a list of values. |
| rtNumericRange | Text | Integer | Range will be specified as 'Min-Max' (e.g., 10-60), so the value must be within this range to be valid. |
| rtNumericList | List of numbers | Integer | Range will be specified as 'Min..Max' (e.g., 1..5). For this example, you would display a drop down list of integers from 1 to 5. |
| rtEnumeratedList | Text | Text | Range will contain a list of acceptable values separated by commas (e.g., Yes,No). |
| rtText | Text | Text | Any value. |
Retrieve the parameters for a Billing Report' for a single account:
GET ivrapi/Reports/19/Parameters
{
"status": "success",
"message": "",
"data": {
"ReportId": 19,
"Name": "Billing Report (Account)",
"Description": "Billing Report (Account)",
"Parameters":
[
{
"LabelText": "Start Date",
"VarName": "StartDate",
"Range": "",
"RangeType": "rtDate",
"SelectionListUrl": "",
"Value": "2017-11-01"
},
{
"LabelText": "End Date",
"VarName": "EndDate",
"Range": "",
"RangeType": "rtDate",
"SelectionListUrl": "",
"Value": "2017-11-30"
},
{
"LabelText": "Account",
"VarName": "Acct",
"Range": "",
"RangeType": "rtText",
"SelectionListUrl": "",
"Value": ""
}
]
}
}
Get a list of reporting categories:
GET ivrapi/Reports/Categories
{
"status": "success",
"message": "",
"data":
[
{
"Id": 0,
"Name": "Accounts"
},
{
"Id": 0,
"Name": "Billing"
},
{
"Id": 0,
"Name": "Fraud"
},
{
"Id": 0,
"Name": "System"
},
{
"Id": 0,
"Name": "Traffic"
}
]
}
Run a Billing Report for account 100 for the month of October 2017:
POST ivrapi/Reports
{
"ReportId": 19,
"Name": "Billing Report (Account)",
"Description": "Billing Report (Account)",
"Parameters":
[
{
"LabelText": "Start Date",
"VarName": "StartDate",
"Range": "",
"RangeType": "rtDate",
"SelectionListUrl": "",
"Value": "2017-10-01" <--
},
{
"LabelText": "End Date",
"VarName": "EndDate",
"Range": "",
"RangeType": "rtDate",
"SelectionListUrl": "",
"Value": "2017-10-31" <--
},
{
"LabelText": "Account",
"VarName": "Acct",
"Range": "",
"RangeType": "rtText",
"SelectionListUrl": "",
"Value": "100" <--
}
]
}