This page describes the Aeris AerTraffic system web services interface for retrieving device traffic and billing data. Similar information is available via our web-based UI, AerPort.
In this article:
AerTraffic Overview
The AerTraffic 2.1 API includes the following set of APIs:
1. The Online/Manual Reports API provides quick reports with a feature to download a report preview and the complete report file.
2. The Scheduled Reports API provides the ability to create report templates with a defined frequency. The API will trigger the reports on their scheduled frequency and an email will be forwarded to the defined recipients once report generation is complete. A link will be provided in the email to allow the user to download the report.
3. The Trend Reports API provides various account trends including device counts, overage charges, and packet/SMS usage.
Base URLs
The URL address for the production service is shown in the table below.
Table 1: AerTraffic Base URL
Base URL |
Version |
Purpose |
---|---|---|
https://aertrafficapi.aeris.com/v1 |
1 |
AerTraffic production instance |
API XSD Documentation
Table 2: AerTraffic XSD Link
Environment |
URL |
---|---|
Production |
Table 3: AerTraffic Sample XSDs Link
API Request, Headers, and Parameters
- AerTraffic 2.1 APIs are available only over HTTPS.
- Each API access must include the appropriate API Key in the request URL as shown in the examples. The parameter name is “apiKey”.
- All API must include a Content-Type header with value application/json.
API Client Authentication
Every request to the API should be authorized with a valid API Key. This should be passed as a query parameter in the URLs.
There is a direct relation between the accountId and the apiKey passed in the URL. A valid apiKey but of a different account will face unauthorized exceptions.
The API Keys are unique and secret keys. These must be saved securely and should be shared with authorized users or applications only.
Unique IDs
There are 2 sets of Unique IDs:
- Request ID: Every response will hold a unique 36-bit, alpha-numeric request ID and can be used to track the complete transaction.
- Archive ID: Every report generated will be stored with a unique 36-bit, alpha-numeric archive ID.
Date Information
- All dates are in Greenwich Mean Time (GMT) for input and output parameters.
- Start date inputs are interpreted as “begin” dates and will return records starting with the first second of the date entered.
- End date inputs are interpreted as “through” dates and will return records ending with the last second of the date entered.
- The billing period calendar month also starts and stops on GMT monthly boundaries.
Report Definitions
Using the API, you can create or update 7 different types of reports as described below.
Account Reports
Account level reports provide general data for all devices in the account, or for a specified group of devices. There are three Account level reports.
1.1.1 Account Traffic Cost Summary Report
- Summarizes usage and overage charges based on Pool Name or Report Group over a specified time period.
- Details
1.1.2 Account Devices Detail Report
- Provides a listing of all devices and device attributes within the selected Device Filters.
- Note: This is a useful report for showing a complete list of your devices and their status. You can also generate this report from the AerPort user interface by using the Reports menu item, Build tab, Report Type "Devices Detail," Status "All." Download the results and view the devices and their statuses in columns I-L.
- Details
1.1.3 Account Devices Summary Report
- Provides a device count based on the group of devices selected.
- Details
Device Reports
Device level reports allow you to obtain detailed data for a specific device or group of devices. There are four Device level reports.
1.1.4 Daily Device Traffic Usage Report
- Provides the total SMS, Data, and Voice usage for the indicated device(s) for each day during a specified time period.
- Details
1.1.5 Device Traffic Summary Report
- Provides the total SMS, Data, and Voice usage for the indicated device(s) during a specified time period.
- Details
1.1.6 Device Traffic Detail
- Provides details for selected traffic types (billable and non-billable) for the indicated device(s) over a specified time period. All traffic events are timestamped.
- Details
1.1.7 Device Status Activity
- Lists all status changes, rate plan changes, and pool changes for the indicated device(s) over a specified time period in chronological order. This report does not contain any traffic information.
- Details
Trend Reports
There are three trend reports available through AerTraffic 2.1.
SMS/Packet Traffic
Provides total SMS (MO and MT) and Packet usage for each day over the past week.
Overage Charges
Provides overage charges for Packet Data, SMS, and Voice for the last 3 months.
Device Summary
Provides a high level view of all devices categorized by current status (Provisioned, Billed or Suspended) for the last 3 months.
Online/Manual Reports
- These reports are generated upon request and provide an immediate report output.
- In the New Portal, these are called Manual Reports. Using the AerPort New Portal UI, you can create these reports using the Build tab, then download them from the Manual Reports tab.
- In Classic AerPort, these are called Recent Reports. In the Classic AerPort UI, you can create these reports using the MyReports tab, then download them from the Recent tab.
Scheduled Reports
- Scheduled reports are generated and delivered to a set of configured email recipients based on a user-defined frequency, for example a billing report or a summary report that is generated and delivered via email once per week.
- To define a scheduled report, report “templates” are created to specify the report type, report parameters and delivery frequency.
- The download link provided in the email is valid for 5 days. After 5 days, the link will expire and the report must be generated again.
- Scheduled reports can be delivered on a daily, weekly, or monthly frequency.
- A maximum of 5 scheduled reports is allowed per account (additional scheduled reports can be requested by contacting your account manager).
- Once report generation is complete, an email containing a link to download the full report is sent to each email recipient.
- The download link provided in the email is valid for 5 days. After 5 days, the link will expire and the report must be retrieved from the report archives (if the report is still available).
- In the New Portal, these are called Scheduled Reports. Using the AerPort New Portal UI, you can create these reports using the Build tab, manage recipients from the Manage tab, then download them from the Scheduled Reports tab.
- In Classic AerPort, these are called Templates. In the Classic AerPort UI, you can create these reports using the MyReports, Templates tab, then download them from the MyReports, MyReports tab
Scheduled Report Generation
- Scheduled reports are recurring and will continue to generate by the indicated frequency until the report template is deleted.
- Scheduled report generation will begin at midnight GMT for the selected frequency and be delivered to the set of configured email recipients once the report is complete.
Email Recipients
- Email recipients for scheduled reports are configured per report type, not by individual report.
- Any change made to the recipient group of one report will affect all other scheduled reports of the same report type.
Report Archives
The amount of time that a report is available in the archives varies.
Online/Manual Reports
- Each online report will be archived for 30 days.
- After 30 days, the report will expire and the report will need to be created again in order to obtain the same data.
Scheduled Reports
- The 5 most recent reports for each scheduled report template will be archived.
- Each daily report will be archived for 5 days.
- Each weekly report will be archived for 5 weeks.
- Each monthly report will be archived for 5 months.
Report Limitations
- The daily scheduled report generation will start at midnight GMT. The device details captured in these reports will be correct up to the last hour.
- Cost reports will be run after the End of Day rating process. Therefore, the cost details captured in these reports will be correct up to midnight GMT.
- The EOD job takes variable time depending on the volume of traffic. Also, the time increases towards the end of the month therefore the report generation time will vary. The report generation will start 15 minutes after the EOD rating process.
- For example: A Traffic Cost Summary Report is scheduled to run daily. On 6/10 the EOD rating process completes at 04:00 GMT. The report generating will start at 04:15 GMT and will reflect the results of the last EOD.
- If the EOD rating process fails and is fixed the next day, then the cost data will not be available for cost reports. The scheduled report will still run but the email will contain a note indicating that the report may not be accurate.
- It may take up to 60 minutes before new devices or recent changes are reflected in reports.
API Details
1. Online/Manual Reports Operations
Table 4: API Operations
Operation |
Request URI |
Description |
|
---|---|---|---|
POST |
/{accountId}/onlineReports?apiKey={apiKey} |
Create a new report. There are 7 types of online/manual reports you can create. |
|
GET |
/{accountId}/onlineReports/{reportId}/status?preview= {boolean}&apiKey={apiKey} |
Get the status of a specific report or download the report. The following report status are possible: FAILED, PERSISTED, IN_PROGRESS, PREVIEW_READY, COMPLETE. Query Params: preview: If preview QueryParam is true, then a Preview report file is returned, else a Complete report file is returned. Note: This API internally redirects to download URL when Report files are available. |
|
GET |
/{accountId}/reports/{reportId}/download?fileAppender= {fileAppender}&fileType={fileType}&apiKey={apikey} |
Download a report file (online or scheduled). Query Params: fileAppender: Preview (to download preview file with 100 records) or Complete (to download complete file). Default is Complete. fileType: To support diff file formats however currently 'csv' is supported. Default is also 'csv'. |
|
GET |
/{accountId}/reports/archives?count={count}&apiKey= {apiKey} |
Get a list of the last {count} 'ONLINE' archived reports. The word 'ONLINE' appears in the reportURL that is returned. Query Params: count: Specify how many archives need to be listed |
|
GET |
/{accountId}/reports/archives/{archiveId}?fileType= {fileType}&fileAppender={fileAppender}&apiKey={apiKey} |
Download an archived report file. Query Params: fileAppender: Preview (to download preview file with 100 records) or Complete (to download complete file). Default is Complete fileType: To support diff file formats however currently 'csv' is supported. Default is also 'csv.' |
Online/Manual Reports - Getting Started
Table 5: Getting Started
Request |
Response |
---|---|
/{accountId}/onlineReports?apiKey={apiKey} |
Status Code: 202 Accepted Show explanation Loading time: 666 Request Headers Location: {root_url}/{accountId}/onlineReports/{reportId}/status?preview=true&apiKey={apiKey} |
/{accountId}/onlineReports/{reportId}/status?preview=true&apiKey={apiKey} |
SUCCESS USE-CASE Status Code: 301 Moved Permanently Request Headers Location:{root_url}/{accountId}/reports/reportId/download?fileAppender=Preview&apiKey=apiKey |
/{accountId}/onlineReports/{reportId}/status?preview=true&apiKey={apiKey} |
IN-PROGRESS AND FAILURE USE-CASE Status Code: 200 OK { "reportStatus" : "IN_PROGRESS", "eta" : "10min", "message" : null } { "reportStatus" : "FAILED", "eta" : "null", "message" : "A Database related error has occurred." } Schema Definition: ReportInProgressResponse |
/{accountId}/reports/reportId/download?fileAppender=Preview&apiKey=apiKey |
A CSV file containing report data is sent back. Response Headers "Content-Disposition", "attachment; filename=" |
1.1 CREATE NEW REPORT
All APIs in this section have the same URL, Variable Path Parameters, Query Parameters, Request Headers, Response Headers, Request Payload, and Response Payload.
1.1.1 Account Traffic Cost Summary Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "TRAFFIC_COST_SUMMARY",
"reportType": "TRAFFIC_COST_SUMMARY",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"duration": {
"duration": "MONTHTODATE",
"startDate": null,
"endDate": null
},
"filters": [],
"groupBy": "REPORT_GROUP",
"sortBy": null,
"reportGroup": null,
"reportOnHierarchy": false,
"isReportPreview": "true",
"outputRecordCount": null,
"schedule": null,
"columns": []
}
Response
HTTP/1.1 202 Accepted
Server: Apache-Coyote/1.1
Location: http://aertrafficapi.aeris.com/v1/{accountId}/onlineReports/e25dd6f6-5f5f-11e4-acf8-0b0da3fe1efc/status?preview=true&apiKey={apiKey}
Content-Length: 0
1.1.2 Account Device Detail Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "DEVICE_DETAIL",
"reportType": "DEVICE_DETAIL",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"duration": {},
"filters": [],
"groupBy": "REPORT_GROUP",
"sortBy": null,
"reportGroup": null,
"reportOnHierarchy": false,
"isReportPreview": "true",
"outputRecordCount": null,
"schedule": null,
"columns": []
}
Response
HTTP/1.1 202 Accepted
Server: Apache-Coyote/1.1
Location: http://aertrafficapi.aeris.com/v1/{accountId}/onlineReports/6d10ee31-5f61-11e4-9697-b972ae2f4993/status?preview=true&apiKey={apiKey}
Content-Length: 0
1.1.3 Account Device Summary Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "DEVICE_SUMMARY",
"reportType": "DEVICE_SUMMARY",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"duration": {
"duration": "MONTHTODATE",
"startDate": null,
"endDate": null
},
"filters": null,
"groupBy": "REPORT_GROUP",
"sortBy": null,
"reportGroup": null,
"reportOnHierarchy": false,
"isReportPreview": "true",
"outputRecordCount": null,
"schedule": null,
"columns": null
}
Response
HTTP/1.1 202 Accepted
Server: Apache-Coyote/1.1
Location: http://aertrafficapi.aeris.com/v1/{accountId}/onlineReports/19fea518-5f62-11e4-9697-dd94a1550c9d/status?preview=true&apiKey={apiKey}
Content-Length: 0
1.1.4 Daily Device Traffic Usage Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "DEVICE_DAILY_TRAFFIC_USAGE",
"reportType": "DEVICE_DAILY_TRAFFIC_USAGE",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"duration": {
"duration": "MONTHTODATE",
"startDate": null,
"endDate": null
},
"filters": [
{
"column": {
"columnName": "MDN",
"value": "5772681090,11835004615,5772527129,5772681082,5772681081,5772681072,5772681071,5772681077"
},
"operator": "IN"
}
],
"sortBy": null,
"reportGroup": null,
"reportOnHierarchy": false,
"isReportPreview": "true",
"outputRecordCount": null,
"schedule": null,
"columns": []
}
Response
HTTP/1.1 202 Accepted
Server: Apache-Coyote/1.1
Location: http://aertrafficapi.aeris.com/v1/{accountId}/onlineReports/879c83db-5f63-11e4-9697-950730e3f669/status?preview=true&apiKey={apiKey}
Content-Length: 0
1.1.5 Device Traffic Summary Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "DEVICE_TRAFFIC_USAGE",
"reportType": "DEVICE_TRAFFIC_USAGE",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"duration": {
"duration": "MONTHTODATE",
"startDate": null,
"endDate": null
},
"filters": [
{
"column": {
"columnName": "MDN",
"value": "5772681090,11835004615,5772527129,5772681082,5772681081,5772681072,5772681071,5772681077"
},
"operator": "IN"
}
],
"sortBy": null,
"reportGroup": null,
"reportOnHierarchy": false,
"isReportPreview": "true",
"outputRecordCount": null,
"schedule": null,
"columns": []
}
Response
HTTP/1.1 202 Accepted
Server: Apache-Coyote/1.1
Location: http://aertrafficapi.aeris.com/v1/{accountId}/onlineReports/bffce362-5f63-11e4-9697-0bd9c9aeda2a/status?preview=true&apiKey={apiKey}
Content-Length: 0
1.1.6 Device Traffic Detail Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "TRAFFIC_DETAIL",
"reportType": "TRAFFIC_DETAIL",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"duration": {
"duration": "LAST_3_DAYS",
"startDate": null,
"endDate": null
},
"filters": [
{
"column": {
"columnName": "ICCID",
"value": "89011702278871667857, 89011702278903587370, 89185002191118367257, 89185002191118172608, 8901882991755039132"
},
"operator": "IN"
},
{
"column": {
"columnName": "TRAFFIC_TYPE",
"value": "ALL"
},
"operator": "IN"
}
],
"sortBy": null,
"reportGroup": null,
"reportOnHierarchy": false,
"isReportPreview": true,
"outputRecordCount": null,
"schedule": null,
"columns": []
}
Response
If successful, this API returns the transaction ID associated with the report creation request.
HTTP/1.1 202 Accepted
Server: Apache-Coyote/1.1
Location: http://aertrafficapi.aeris.com/v1/{accountId}/onlineReports/{archiveId}/status?preview=true&apiKey={apiKey}
Content-Length: 0
1.1.7 Device Status Activity Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "DEVICE_STATUS_ACTIVITY",
"reportType": "DEVICE_STATUS_ACTIVITY",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"duration": {
"duration": "MONTHTODATE",
"startDate": null,
"endDate": null
},
"filters": [
{
"column": {
"columnName": "MDN",
"value": "5772681090,11835004615,5772527129,5772681082,5772681081,5772681072,5772681071,5772681077"
},
"operator": "IN"
}
],
"sortBy": null,
"reportGroup": null,
"reportOnHierarchy": false,
"isReportPreview": "true",
"outputRecordCount": null,
"schedule": null,
"columns": []
}
Response
HTTP/1.1 202 Accepted
Server: Apache-Coyote/1.1
Location: http://aertrafficapi.aeris.com/v1/{accountId}/onlineReports/153cc574-5f64-11e4-9697-9194ab854daf/status?preview=true&apiKey={apiKey}
Content-Length: 0
1.2 GET REPORT STATUS OR DOWNLOAD REPORT
URL GET https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports/{reportId}/status?preview=true&apiKey={apiKey}
Response
Status Code: 200 OK
1.3 DOWNLOAD A REPORT (online or scheduled)
URL GET https://aertrafficapi.aeris.com/v1/{accountId}/reports/{reportId}/download?fileAppender=Preview&apiKey={apiKey}}
Response
Status Code: 200 OK
1.4 GET LIST OF ONLINE REPORT ARCHIVES
URL GET http://aertrafficapi.aeris.com/v1/{accountId}/reports/archives?count=50&apiKey={apiKey}
This API returns the metadata associated with all the reports in {count} number of archives.
Response
[ {
"accountId" : 1,
"reportURL" : "https://aer-reports-prod.s3-us-west-2.amazonaws.com/Prod/{accountId}/2014-12/ONLINE/{reportId}/DEVICE_DETAIL_Complete.csv?AWSAccessKeyId=AKIAITG76A4CJK2HOBYA&Expires=1418062272&Signature=5o2zn62d7KVJm86hCbzFc6iQB%2F0%3D",
"status" : "COMPLETE",
"previewTimeTaken" : 609,
"timeTaken" : 2646,
"lastDownloaded" : "2014-12-01 18:11:12Z",
"reportPreViewURL" : "https://aer-reports-prod.s3-us-west-2.amazonaws.com/Prod/{accountId}/2014-12/ONLINE/{reportId}/DEVICE_DETAIL_Preview.csv?AWSAccessKeyId=AKIAITG76A4CJK2HOBYA&Expires=1418062270&Signature=S4D019u7IhZLjfKtMIJJhueXinQ%3D",
"isScheduled" : false,
"message" : "",
"createTime" : "2014-12-01 18:11:09Z",
"reportName" : "DEVICE_DETAIL",
"reportType" : "DEVICE_DETAIL",
"createdBy" : "aerport@aeris.net",
"lastUpdated" : null,
"reportId" : "{reportID}",
"archiveId" : "{archiveID}"
} ]
1.5 DOWNLOAD AN ARCHIVED REPORT
URL GET https://aertrafficapi.aeris.com/v1/{accountId}/reports/archives/{archiveId}?fileType=csv&fileAppender=Preview&apiKey={apiKey}}
Response
Status Code: 200 OK
2. Scheduled Reports Operations
Table 6: Scheduled Reports - API Operations
Operation |
Request URI |
Description |
|
---|---|---|---|
POST |
/{accountId}/scheduledReports?apiKey={apiKey} |
Create a new scheduled report template. There are 7 types of scheduled reports you can create. |
|
GET |
/{accountId}/scheduledReports?count={count}&apiKey={apiKey} |
Get a list of scheduled report templates for an account. Query Params: count: Specify how many templates need to be listed. |
|
GET |
/{accountId}/scheduledReports/archives?count={count}&apiKey={apiKey} |
Get a map of reports generated (archives) as a result of scheduled templates for an account. The map holds the report ID as key and list of archives corresponding to that ID as a value. Query Params: count: Specify how many templates need to be listed. Default is 5. |
|
GET |
/{accountId}/scheduledReports/{reportId}?apiKey={apiKey} |
View a scheduled report template. Query Params: reportId: Specify the ID of the report to view. |
|
2.5 |
GET |
/{accountId}/reports/archives/{archiveId}? fileType={fileType}&fileAppender={fileAppender}&apiKey={apiKey} |
Download an archived report file (online or scheduled). Query Params: fileAppender: Preview (to download preview file with 100 records) or Complete (to download complete file). Default is Complete. fileType: To support diff file formats however currently 'csv' is supported. Default is also 'csv.' |
PUT |
/{accountId}/scheduledReports/{reportId}?apiKey={apiKey} |
Update a scheduled report template. |
|
DELETE |
/{accountId}/scheduledReports/{reportId}?category={category}&apiKey={apiKey} |
Delete a scheduled report template. Query Params: category: ALL . Default is 'ALL' |
|
DELETE |
/{accountId}/scheduledReports/archives/{archiveId}?requestType={requestType}&apiKey={apiKey} |
Delete an archived report. Query Params: requestType: It can have: 'ONLINE', 'SCHEDULE' and 'TREND' types. Default is 'SCHEDULE' |
|
GET |
/{accountId}/scheduledReports/recipients/{reportType}?apiKey={apiKey} |
View recipient list for a given account ID and report type. Path Params: reportType: Specify report types: DEVICE_DETAIL, TRAFFIC_DETAIL, TRAFFIC_COST_SUMMARY, DEVICE_DAILY_TRAFFIC_USAGE, DEVICE_SUMMARY, DEVICE_STATUS_ACTIVITY, DEVICE_TRAFFIC_USAGE |
|
PUT |
/{accountId}/scheduledReports/recipients?apiKey={apiKey} |
Update recipient list for a given account and report type. Sample json: {"reportType":"DEVICE_DETAIL","recipients":["aerport@aeris.net"]} Note: You can provide multiple comma-separated email address. Max email address limit is 5 |
2.1 CREATE NEW REPORT TEMPLATE
2.1.1 Account Traffic Cost Summary Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "MyTrafficCostSummary",
"reportType": "TRAFFIC_COST_SUMMARY",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"filters": null,
"duration": {
"duration": "MONTHTODATE"
},
"groupBy": "POOL_NAME",
"sortBy": {
"columnName": "STATUS",
"order": "ASC"
},
"schedule": {
"frequency": "DAILY"
},
"reportOnHierarchy": false,
"isReportPreview": false,
"outputRecordCount": 100,
"columns": []
}
Schema definition: ReportResponse
Response
{
"reportId" : "a20807f0-6021-11e4-b40f-b5aae317b0de",
"archiveId" : null,
"reportStatus" : "PERSISTED",
"resourceURL" : "https://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports/a20807f0-6021-11e4-b40f-b5aae317b0de?apiKey={apiKey}",
"reportURL" : null,
"errorMessage" : null,
"data" : null,
"requestType" : null,
"reportPreViewURL" : null,
"eta" : null,
"processStartTime" : null,
"timeTaken" : null,
"onlinePreviewReportProcessed" : null
}
2.1.2 Account Device Detail Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "MyDeviceDetail",
"reportType": "DEVICE_DETAIL",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"filters": null,
"duration": {
"duration": "LASTMONTH"
},
"sortBy": {
"columnName": "STATUS",
"order": "ASC"
},
"schedule": {
"frequency": "SPECIFIC_DAY_OF_MONTH",
"dayOfTheMonth": "1"
},
"reportOnHierarchy": false,
"isReportPreview": false,
"outputRecordCount": 100,
"columns": []
}
Schema definition: ReportResponse
Response
{
"reportId" : "9e82c780-6023-11e4-96c5-b3672df63f9c",
"archiveId" : null,
"reportStatus" : "PERSISTED",
"resourceURL" : "https://aertrafficapi.aeris.com/v1/(AccountId)/scheduledReports/9e82c780-6023-11e4-96c5-b3672df63f9c?apiKey={apiKey}",
"reportURL" : null,
"errorMessage" : null,
"data" : null,
"requestType" : null,
"reportPreViewURL" : null,
"eta" : null,
"processStartTime" : null,
"timeTaken" : null,
"onlinePreviewReportProcessed" : null
}
2.1.3 Account Device Summary Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "MyDeviceSummary",
"reportType": "DEVICE_SUMMARY",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"filters": null,
"groupBy": "REPORT_GROUP",
"sortBy": {
"columnName": "STATUS",
"order": "ASC"
},
"schedule": {
"frequency": "SPECIFIC_DAY_OF_WEEK",
"dayOfTheWeek": "FRIDAY"
},
"reportOnHierarchy": false,
"isReportPreview": false,
"outputRecordCount": 100,
"columns": []
}
Schema definition: ReportResponse
Response
{
"reportId" : "1f9ab8f1-6024-11e4-96c5-cbedbb8e0938",
"archiveId" : null,
"reportStatus" : "PERSISTED",
"resourceURL" : "https://aertrafficapi.aeris.com/v1/(AccountId)/scheduledReports/1f9ab8f1-6024-11e4-96c5-cbedbb8e0938?apiKey={apiKey}",
"reportURL" : null,
"errorMessage" : null,
"data" : null,
"requestType" : null,
"reportPreViewURL" : null,
"eta" : null,
"processStartTime" : null,
"timeTaken" : null,
"onlinePreviewReportProcessed" : null
}
2.1.4 Daily Device Traffic Usage Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "MyDailyDeviceTrafficUsage",
"reportType": "DEVICE_DAILY_TRAFFIC_USAGE",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"filters": [
{
"column": {
"columnName": "MDN",
"value": "5772681090,11835004615,5772527129,5772681082,5772681081,5772681072,5772681071,5772681077"
},
"operator": "IN"
}
],
"duration": {
"duration": "MONTHTODATE"
},
"sortBy": {
"columnName": "STATUS",
"order": "ASC"
},
"schedule": {
"frequency": "SPECIFIC_DAY_OF_MONTH",
"dayOfTheMonth": "15"
},
"reportOnHierarchy": false,
"isReportPreview": false,
"outputRecordCount": 100,
"columns": []
}
Schema definition: ReportResponse
Response
HTTP/1.1 202 Accepted
Server: Apache-Coyote/1.1
Location: http://aertrafficapi.aeris.com/v1/{accountId}/onlineReports/879c83db-5f63-11e4-9697-950730e3f669/status?preview=true&apiKey={apiKey}
Content-Length: 0
2.1.5 Device Traffic Summary Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "MyDeviceTrafficSummary",
"reportType": "DEVICE_TRAFFIC_USAGE",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"filters": [
{
"column": {
"columnName": "MDN",
"value": "5772681090,11835004615,5772527129,5772681082,5772681081,5772681072,5772681071,5772681077"
},
"operator": "IN"
}
],
"duration": {
"duration": "LASTMONTH"
},
"sortBy": {
"columnName": "STATUS",
"order": "ASC"
},
"schedule": {
"frequency": "SPECIFIC_DAY_OF_MONTH",
"dayOfTheMonth": "1"
},
"reportOnHierarchy": false,
"isReportPreview": false,
"outputRecordCount": 100,
"columns": []
}
Schema definition: ReportResponse
Response
{
"reportId" : "5e37a9f3-6025-11e4-96c5-29d0d6e51bf2",
"archiveId" : null,
"reportStatus" : "PERSISTED",
"resourceURL" : "https://aertrafficapi.aeris.com/v1/(AccountId)/scheduledReports/5e37a9f3-6025-11e4-96c5-29d0d6e51bf2?apiKey={apiKey}",
"reportURL" : null,
"errorMessage" : null,
"data" : null,
"requestType" : null,
"reportPreViewURL" : null,
"eta" : null,
"processStartTime" : null,
"timeTaken" : null,
"onlinePreviewReportProcessed" : null
}
2.1.6 Daily Traffic Detail Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "MyDeviceTrafficDetail",
"reportType": "TRAFFIC_DETAIL",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"filters": [
{
"column": {
"columnName": "TRAFFIC_TYPE",
"value": "ALL"
},
"operator": "IN"
},
{
"column": {
"columnName": "MDN",
"value": "5772681090,11835004615,5772527129,5772681082,5772681081,5772681072,5772681071,5772681077"
},
"operator": "IN"
}
],
"duration": {
"duration": "LAST_1_DAY"
},
"sortBy": {
"columnName": "STATUS",
"order": "ASC"
},
"schedule": {
"frequency": "DAILY"
},
"reportOnHierarchy": false,
"isReportPreview": false,
"outputRecordCount": 100,
"columns": []
}
Schema definition: ReportResponse
Response
{
"reportId" : "c89d3674-6025-11e4-96c5-07b2d655c15c",
"archiveId" : null,
"reportStatus" : "PERSISTED",
"resourceURL" : "https://aertrafficapi.aeris.com/v1/(AccountId)/scheduledReports/c89d3674-6025-11e4-96c5-07b2d655c15c?apiKey={apiKey}",
"reportURL" : null,
"errorMessage" : null,
"data" : null,
"requestType" : null,
"reportPreViewURL" : null,
"eta" : null,
"processStartTime" : null,
"timeTaken" : null,
"onlinePreviewReportProcessed" : null
}
2.1.7 Device Status Activity Report
URL POST https://aertrafficapi.aeris.com/v1/{accountId}/onlineReports?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "MyDeviceStatusActivity",
"reportType": "DEVICE_STATUS_ACTIVITY",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"filters": [
{
"column": {
"columnName": "MDN",
"value": "5772681090,11835004615,5772527129,5772681082,5772681081,5772681072,5772681071,5772681077"
},
"operator": "IN"
}
],
"duration": {
"duration": "LASTMONTH"
},
"sortBy": {
"columnName": "STATUS",
"order": "ASC"
},
"schedule": {
"frequency": "SPECIFIC_DAY_OF_MONTH",
"dayOfTheMonth": "1"
},
"reportOnHierarchy": false,
"isReportPreview": false,
"outputRecordCount": 100,
"columns": []
}
Schema definition: ReportResponse
Response
{
"reportId" : "1a05f8d5-6026-11e4-96c5-b190ad485d8e",
"archiveId" : null,
"reportStatus" : "PERSISTED",
"resourceURL" : "https://aertrafficapi.aeris.com/v1/(AccountId)/scheduledReports/1a05f8d5-6026-11e4-96c5-b190ad485d8e?apiKey={apiKey}",
"reportURL" : null,
"errorMessage" : null,
"data" : null,
"requestType" : null,
"reportPreViewURL" : null,
"eta" : null,
"processStartTime" : null,
"timeTaken" : null,
"onlinePreviewReportProcessed" : null
}
2.2 GET LIST OF SCHEDULED TEMPLATES
URL GET http://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports?count={count}&apiKey={apiKey}
This API returns the metadata associated with {count} number of scheduled reports in your account.
Response
{
"accountId" : 1,
"productId" : null,
"onBehalfOf" : 1,
"visibleToSubAccount" : false,
"reportName" : "All Device History (daily)",
"reportId" : {reportId},
"email" : "aerport@aeris.net",
"reportType" : "DEVICE_DETAIL",
"trafficType" : null,
"product" : "ANY",
"reportOnHierarchy" : false,
"allDevices" : false,
"groupBy" : null,
"sortBy" : null,
"filters" : [],
"columns" : [],
"isReportPreview" : false,
"frequency" : "DAILY",
"dayOfTheWeek" : null,
"dayOfTheMonth" : 0,
"lastUpdatedBy" : "aerport@aeris.net",
"lastUpdatedDate" : "2014-12-01 10:05:43Z",
"generationTime" : null,
"creationTime" : "2014-12-01 09:06:00Z",
"reportGroup" : null,
"startDate" : "2014-11-30 00:00:00Z",
"endDate" : "2014-11-30 23:59:59Z",
"scheduleEndDate" : "2999-11-10 09:06:00Z",
"timeToLive" : 0,
"clientURL" : null,
"requestType" : "SCHEDULE",
"responseType" : null,
"lastArchiveId" : {lastArchiveId},
"lastArchiveDate" : "2014-12-01 10:05:43Z",
"outputRecordCount" : null,
"trendDuration" : null,
"fileNameAppender" : null,
"duration" : null,
"processStartTime" : null,
"reportCriteriaFilePath" : null
}
2.3 GET MAP OF SCHEDULE REPORT ARCHIVES
URL GET http://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports/archives?count={count}&apiKey={apiKey}
Response
{
"d4b09f2d-5da1-11e4-93ba-a918c60a4dde" : [ {
"accountId" : 1,
"reportURL" : "https://aer-reports-prod.s3-us-west-2.amazonaws.com/Prod/1/2014-12/SCHEDULE/DAILY/d4b09f2d-5da1-11e4-93ba-a918c60a4dde/bbe93044-7930-11e4-b477-93f314bace93/Test2-27Oct14_Complete.csv?AWSAccessKeyId=AKIAITG76A4CJK2HOBYA&Expires=1418025895&Signature=rXysoMKPnjjRdAu2NeOdQG3S5co%3D",
"status" : "COMPLETE",
"previewTimeTaken" : 0,
"timeTaken" : 2375,
"lastDownloaded" : null,
"reportPreViewURL" : null,
"isScheduled" : true,
"message" : "NO DATA",
"createTime" : "2014-12-01 08:04:55Z",
"reportName" : "Test2-27Oct14",
"reportType" : "DEVICE_DAILY_TRAFFIC_USAGE",
"createdBy" : "aerport@aeris.net",
"lastUpdated" : null,
"reportId" : "d4b09f2d-5da1-11e4-93ba-a918c60a4dde",
"archiveId" : "bbe93044-7930-11e4-b477-93f314bace93"
}, {
"accountId" : 1,
"reportURL" : "https://aer-reports-prod.s3-us-west-2.amazonaws.com/Prod/1/2014-11/SCHEDULE/DAILY/d4b09f2d-5da1-11e4-93ba-a918c60a4dde/f6a59c07-782c-11e4-8513-af5ba55e9ce1/Test2-27Oct14_Complete.csv?AWSAccessKeyId=AKIAITG76A4CJK2HOBYA&Expires=1417914324&Signature=mLddy3mcGzse1FE2p7NTzgafsdc%3D",
"status" : "COMPLETE",
"previewTimeTaken" : 0,
"timeTaken" : 1411,
"lastDownloaded" : null,
"reportPreViewURL" : null,
"isScheduled" : true,
"message" : "NO DATA",
"createTime" : "2014-11-30 01:05:24Z",
"reportName" : "Test2-27Oct14",
"reportType" : "DEVICE_DAILY_TRAFFIC_USAGE",
"createdBy" : "aerport@aeris.net",
"lastUpdated" : null,
"reportId" : "d4b09f2d-5da1-11e4-93ba-a918c60a4dde",
"archiveId" : "f6a59c07-782c-11e4-8513-af5ba55e9ce1"
}
2.4 VIEW SCHEDULED TEMPLATE
URL GET https://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports/{reportId}?apiKey={apiKey}
Schema definition: ReportMetadata
Response
{
"accountId" : {AccountId},
"onBehalfOf" : {Sub-account ID},
"visibleToSubAccount" : false,
"reportName" : "MyTrafficCostSummary",
"reportId" : "a20807f0-6021-11e4-b40f-b5aae317b0de",
"email" : "aerport@aeris.net",
"reportType" : "TRAFFIC_COST_SUMMARY",
"trafficType" : null,
"product" : "ANY",
"reportOnHierarchy" : false,
"allDevices" : false,
"groupBy" : "POOL_NAME",
"sortBy" : null,
"filters" : [ ],
"columns" : [ ],
"isReportPreview" : false,
"frequency" : "DAILY",
"dayOfTheWeek" : null,
"dayOfTheMonth" : 0,
"lastUpdatedBy" : "aerport@aeris.net",
"lastUpdatedDate" : "2014-10-30 10:43:49Z",
"generationTime" : null,
"creationTime" : "2014-10-30 10:43:49Z",
"reportGroup" : null,
"startDate" : "2014-10-01 00:00:00Z",
"endDate" : "2014-10-30 23:59:59Z",
"scheduleEndDate" : "2999-11-10 10:43:49Z",
"timeToLive" : 0,
"clientURL" : null,
"requestType" : "SCHEDULE",
"responseType" : null,
"lastArchiveId" : null,
"lastArchiveDate" : null,
"outputRecordCount" : null,
"trendDuration" : null,
"fileNameAppender" : null,
"duration" : "MONTHTODATE",
"processStartTime" : null
}
2.6 UPDATE SCHEDULED TEMPLATE
URL PUT https://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports/{reportId}?apiKey={apiKey}
Schema definition: ReportDefinition
Request
{
"reportName": "MyTrafficCostSummary_UPDATED",
"reportType": "TRAFFIC_COST_SUMMARY",
"product": "ANY",
"email": "aerport@aeris.net",
"createdBy": "aerport@aeris.net",
"filters": null,
"duration": {
"duration": "MONTHTODATE"
},
"groupBy": "POOL_NAME",
"sortBy": {
"columnName": "STATUS",
"order": "ASC"
},
"schedule": {
"frequency": "DAILY"
},
"reportOnHierarchy": false,
"isReportPreview": false,
"outputRecordCount": 100,
"columns": []
}
Schema definition: ReportResponse
Response
{
"reportId" : "a20807f0-6021-11e4-b40f-b5aae317b0de",
"archiveId" : null,
"reportStatus" : "PERSISTED",
"resourceURL" : "https://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports/a20807f0-6021-11e4-b40f-b5aae317b0de?apiKey={apiKey}",
"reportURL" : null,
"errorMessage" : null,
"data" : null,
"requestType" : null,
"reportPreViewURL" : null,
"eta" : null,
"processStartTime" : null,
"timeTaken" : null,
"onlinePreviewReportProcessed" : null
}
2.7 DELETE SCHEDULED TEMPLATE
URL DELETE https://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports/{reportId}?category={category}&apiKey={apiKey}
Response
HTTP/1.1 204 No Content
2.8 DELETE ARCHIVED REPORT
URL DELETE http://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports/archives/{archiveId}?requestType={requestType}&apiKey={apiKey}
Response
HTTP/1.1 202 Accepted
2.9 VIEW REPORT RECIPIENTS
URL GET https://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports/recipients/{reportType}?apiKey={apiKey}
Response
{
"reportType" : "DEVICE_STATUS_ACTIVITY",
"recipients" : [ "abc@abc.com", "aerport@aeris.net" ],
"accountId" : 1
}
2.10 UPDATE REPORT RECIPIENTS
URL GET https://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports/recipients?apiKey={apiKey}
Schema definition: ReportRecipients
Request
{
"reportType": "DEVICE_STATUS_ACTIVITY",
"recipients": [
"qqq@aa.com",
"abc@abc.com",
"aerport@aeris.net"
]
}
Schema definition: RecipientResponse
Response
{
"resourceURL" : "https://aertrafficapi.aeris.com/v1/{accountId}/scheduledReports/recipients/DEVICE_STATUS_ACTIVITY?apiKey={apiKey}",
"errorMessage" : null
}
3. Trend Reports Operations
Table 7: Trend Reports Operations
Operation |
Request URI |
Description |
|
---|---|---|---|
GET |
/{accountId}/systemReports/trafficSummary? durationInDays=n&apiKey={apiKey}&trafficType= {trafficType}&subAccounts={boolean} |
Get Traffic Summary Report (Packet and SMS) for the last n days. Default 'durationInDays' = 7 days. Default trafficType is SMS. Currently we support only Packet and SMS trafficTypes. Default 'subAccounts' = false; if subAccounts flag if set to 'true' this will include data from child accounts as well. |
|
GET |
/{accountId}/systemReports/costSummary? durationInMonths=n&apiKey={apiKey}&subAccounts= {boolean} |
Get Overage Charges Report for the last n months. Default 'durationInMonths' = 3 months. Default 'subAccounts' = false; if subAccounts flag if set to 'true' this will include data from child accounts as well. |
|
GET |
/{accountId}/systemReports/deviceSummary? durationInMonths=n&apiKey={apiKey}&subAccounts= {boolean} |
Get Device Summary Report for the last n months. Default 'durationInMonths' = 3 months. Default 'subAccounts' = false; if subAccounts flag if set to 'true' this will include data from child accounts as well. |
3.1 Traffic Summary Report
URL GET https://aertrafficapi.aeris.com/v1/{accountId}/systemReports/trafficSummary?durationInDays=7&apiKey={apiKey}&subAccounts=false
Schema definition: TrafficSummaryTrendResponse
Response
[ {
"accountId" : 0,
"deviceId" : 0,
"bytesIn" : 0,
"bytesOut" : 0,
"bytesTransferred" : 0,
"sessionCount" : 0,
"smsMessages" : 0,
"voiceCalls" : 0,
"eventDate" : null,
"voiceDuration" : 0,
"date" : "2016-10-06",
"totalSMSCount" : "1174",
"packetDataKb" : "14357.75",
"totalVoiceCount" : "0"
}, {
"accountId" : 0,
"deviceId" : 0,
"bytesIn" : 0,
"bytesOut" : 0,
"bytesTransferred" : 0,
"sessionCount" : 0,
"smsMessages" : 0,
"voiceCalls" : 0,
"eventDate" : null,
"voiceDuration" : 0,
"date" : "2016-10-07",
"totalSMSCount" : "1150",
"packetDataKb" : "8102.79",
"totalVoiceCount" : "0"
}, {
"accountId" : 0,
"deviceId" : 0,
"bytesIn" : 0,
"bytesOut" : 0,
"bytesTransferred" : 0,
"sessionCount" : 0,
"smsMessages" : 0,
"voiceCalls" : 0,
"eventDate" : null,
"voiceDuration" : 0,
"date" : "2016-10-08",
"totalSMSCount" : "1393",
"packetDataKb" : "5952.46",
"totalVoiceCount" : "0"
} ]
3.2 Overage Charges Report
URL GET https://aertrafficapi.aeris.com/v1/{accountId}/systemReports/costSummary?durationInMonths=2&apiKey={apiKey}&subAccounts=false
Schema definition: CostSummaryTrendResponse
Response
[ {
"month" : "Aug 2014",
"packetDataCharges" : "106.95",
"smsCharges" : ".64",
"voiceCharges" : "0"
}, {
"month" : "Sep 2014",
"packetDataCharges" : "250.05",
"smsCharges" : "4.56",
"voiceCharges" : "10.6"
}, {
"month" : "Oct 2014",
"packetDataCharges" : "28.49",
"smsCharges" : "0",
"voiceCharges" : ".4"
} ]
3.3 Device Summary Report
URL GET https://aertrafficapi.aeris.com/v1/{accountId}/systemReports/deviceSummary?durationInMonths=3&apiKey={apiKey}&subAccounts=false
Schema definition: DeviceSummaryTrendResponse
Response
[ {
"accountId" : "1",
"month" : "2014-08",
"provisionedCount" : "393",
"billedCount" : "282",
"suspendedCount" : "15",
"cancelledCount" : "10640"
}, {
"accountId" : "1",
"month" : "2014-09",
"provisionedCount" : "428",
"billedCount" : "283",
"suspendedCount" : "15",
"cancelledCount" : "10779"
}, {
"accountId" : "1",
"month" : "2014-10",
"provisionedCount" : "390",
"billedCount" : "286",
"suspendedCount" : "15",
"cancelledCount" : "10942"
} ]
Error Codes
Table 8: HTTP Status Codes
Response Codes |
Response Message |
Description |
---|---|---|
200 |
OK |
The request was successful and details about the response can be found in the body of the response. |
202 |
ACCEPTED |
The requested operation has been accepted and the body contains information to query on the progress of the request. |
204 |
NO_CONTENT |
The requested operation was successful and there is no response body. |
301 |
MOVED_PERMANENTLY |
The request was internally redirected to another URL. |
400 |
BAD_REQUEST |
Your request was improperly formatted. You should verify that your request conforms to this specification and re-issue the request in a properly formatted manner. |
401 |
UNAUTHORIZED |
Unauthorized to access a particular resource. |
404 |
NOT_FOUND |
The requested resource does not exist. |
415 |
UNSUPPORTED_MEDIA_TYPE |
The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format. |
422 |
UNPROCESSABLE_ENTITY |
The request was well-formed but was unable to be followed due to semantic errors. |
500 |
INTERNAL_SERVER_ERROR |
API failed to process the request because of an error inside the system. |
Table 9: Top Level Error Codes
Error Code |
Error Message |
---|---|
1000 |
Unexpected Error. |
1001 |
Unexpected Report Processing Error. |
1002 |
Data Validation Error (see Validation Message table below). |
1003 |
A Database related error has occurred. |
1004 |
Unexpected Error while processing the report. Try again later. |
1005 |
Data Exchange format error. |
1006 |
A Cassandra Database related error has occurred. |
Table 10: Validation Messages
Code |
Validation Message |
---|---|
1002 |
* Invalid Report Input Data. * 'All Devices' option is only applicable for Scheduled Reports. * 'Report Preview' is not applicable for Scheduled Reports. * 'CUSTOM' Duration is not applicable for Scheduled Reports. * Invalid Request Type - Should be either ONLINE or SCHEDULE. * Report can be extracted for only previous one month. * Invalid Schedule Frequency. * Invalid Schedule End Date. * Null Schedule End Date not allowed. * Invalid Date Range. * Invalid Date Range - Start date cannot be after end date. * Invalid Date Range - Schedule End Date - Invalid Day of Month value, should be between 1 and 31. * Invalid Date Range - Start date can only be first day of the month. * Invalid Date Range - Start and End Date - Should specify the same month. * Invalid Date Range - End Date - Should be the last date of the previous month. * Invalid Date Range - Future dates not allowed. * Invalid Date Range - Date beyond last 60 days not allowed. * Account Not billable. * Invalid Traffic Type filter. * Input devices not found for the specified Account. * Invalid device ID type value. * Invalid MDN format value. * Invalid MIN format value. * Please enter less than 1000 devices. * Invalid device filter or filter not found. * Device list empty, please enter valid devices for the filter. * 'All devices' report only allowed for a single day. Please enter same start and end date. * 'All devices' option not applicable for this report. |
0 Comments