AerTraffic – Device Reports API

What’s Here?

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™.

AerTraffic Overview

The AerTraffic 2.1 API includes the following set of APIs:

The Online Reports API provides quick reports with a feature to download a report preview and the complete report file.

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.

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.

Base URL

Version

Purpose

https://aertrafficapi.aeris.com/v1

1

AerTraffic production instance

Table 1: AerTraffic Base URL

API XSD Documentation

Environment

URL

Production

https://aertrafficapi.aeris.com/index.html

Table 2: AerTraffic XSD Link

Table 3: AerTraffic Sample XSDs Link

API Request, Headers and Parameters

  • AerTraffic 2.1 APIs are only available 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 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

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:

Account Traffic Cost Summary Report

  • Formerly named Traffic Cost Summary Report
  • Summarizes usage and overage charges based on Pool Name or Report Group over a specified time period.

Account Devices Detail Report

  • Formerly named Device Detail Report
  • Provides a listing of all devices and device attributes within the selected Device Filters.

Account Devices Summary Report

  • Formerly named Device Summary Report
  • Provides a device count based on the group of devices selected.

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:

Daily Device Traffic Usage Report

  • Formerly named: Daily Traffic Cost Report
  • Provides the total SMS, Data, and Voice usage for the indicated device(s) for each day during a specified time period.

Device Traffic Summary Report

  • Formerly named Traffic Detail Report
  • Provides details for all network and traffic events (billable and non-billable) for the indicated device(s) over a specified time period. All traffic events are time-stamped.

Device Status Activity

  • Formerly named Device Activity Report
  • 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.

TREND REPORTS

There are three trend reports available through AerTraffic 2.1:

Device Summary

Provides a high level view of all devices categorized by current status (Provisioned, Billed or Suspended) for the last 3 months.

Overage Charges

Provides overage charges for Packet Data, SMS, and Voice for the last 3 months.

SMS/Packet

Provides total SMS (MO and MT) and Packet usage for each day over the past week.

Online Reports

  • Online reports are generated upon request and provide an immediate report output.

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).

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 will vary:

ONLINE REPORTS

  • Each online report will be archived for 5 days.
  • After 5 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

Online Reports Operations

Operation

Request URI

Description

POST

/{accountId}/onlineReports?apiKey={apiKey}

Create a new report.

GET

/{accountId}/onlineReports/{reportId}/status?preview= {BOOLEAN}&apiKey={apiKey}

Get the status of a specific report. The following report status are possible: FAILED, PERSISTED, IN_PROGRESS, PREVIEW_READY, COMPLETE. Query Params: preview: If preview QueryParam is true then Preview report file is returned else Complete report file is returned. Note: This API internally redirects to download URL when Report Files are available

GET

reports/{reportId}/download?fileAppender= {fileAppender}&fileType={fileType}&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'.

GET

/{accountId}/reports/archives?count={count}&apiKey= {apiKey}

Get a list of the last n 'ONLINE' archived reports. Query Params: count: Specify how many archives needs 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.'

Table 4: API Operations

Online Reports - 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="

Table 5: Getting Started

CREATE NEW REPORT
Account Traffic Cost Summary Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports?apiKey={API Key}

Schema definition: ReportDefinition

Account Device Detail Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports?apiKey={API Key}

Schema definition: ReportDefinition

Account Device Summary Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports?apiKey={API Key}

Schema definition: ReportDefinition

Daily Device Traffic Usage Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports?apiKey={API Key}

Schema definition: ReportDefinition

Device Traffic Summary Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports?apiKey={API Key}

Schema definition: ReportDefinition

Daily Traffic Detail Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports?apiKey={API Key}

Schema definition: ReportDefinition

Device Status Activity Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports?apiKey={API Key}

Schema definition: ReportDefinition

GET REPORT STATUS

URL GET https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports/{reportId}/status?preview=true&apiKey={apiKey}

Schema definition: ReportDefinition

GET LIST OF ONLINE REPORT ARCHIVES

URL GET http://aertrafficapi.aeris.com/v1/{accountID}/reports/archives?count=1&apiKey={apiKey}

Schema definition: ReportDefinition

Scheduled Reports Operations

Operation

Request URI

Description

POST

/{accountId}/scheduledReports?apiKey={apiKey}

Create new scheduled report template

GET

/{accountId}/scheduledReports?count={count}&apiKey={apiKey}

Get a list of scheduled templates for an account. Query Params: count: Specify count of templates needs 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 count of templates needs to be listed. Default is 5

GET

/{accountId}/scheduledReports/{reportId}?apiKey={apiKey}

View a scheduled report template Query Params: count: Specify how many archives needs to be listed

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.' Query Params: count: Specify how many archives needs to be listed

PUT

/{accountId}/scheduledReports/{reportId}?apiKey={apiKey}

Update a scheduled report template

DELETE

/{accountId}/scheduledReports/{reportId}?category={category}&apiKey={apiKey}

/{accountId}/scheduledReports/{reportId}?category={category}&apiKey={apiKey}

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

Table 6: Scheduled Reports - API Operations

CREATE NEW REPORT TEMPLATE

Account Traffic Cost Summary Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/scheduledReports?apiKey={API Key}

Schema definition: ReportDefinition

Account Device Detail Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports?apiKey={API Key}

Schema definition: ReportDefinition

Account Device Summary Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/scheduledReports?apiKey={API Key}

Schema definition: ReportDefinition

Daily Device Traffic Usage Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports?apiKey={API Key}

Schema definition: ReportDefinition

Device Traffic Summary Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports?apiKey={API Key}

Schema definition: ReportDefinition

Daily Traffic Detail Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports?apiKey={API Key}

Schema definition: ReportDefinition

Device Status Activity Report

URL POST https://aertrafficapi.aeris.com/v1/{accountID}/onlineReports?apiKey={API Key}

Schema definition: ReportDefinition

GET LIST OF SCHEDULED TEMPLATES

URL GET http://aertrafficapi.aeris.com/v1/1/scheduledReports?apiKey={apiKey}

GET MAP OF SCHEDULE REPORT ARCHIVES

URL GET http://aertrafficapi.aeris.com/v1/1/scheduledReports/archives?apiKey={apiKey}

VIEW SCHEDULED TEMPLATE

URL GET https://aertrafficapi.aeris.com/v1/{account ID}/scheduledReports/{report ID}?apiKey={API Key}

Schema definition: ReportMetadata

UPDATE SCHEDULED TEMPLATE

URL PUT https://aertrafficapi.aeris.com/v1/{account ID}/scheduledReports/{report ID}?apiKey={API Key}

Schema definition: ReportDefinition

Schema definition: ReportResponse

DELETE SCHEDULED TEMPLATE

URL DELETE https://aertrafficapi.aeris.com/v1/{account ID}/scheduledReports/{report ID}?apiKey={API Key}

DELETE ARCHIVED REPORT

URL DELETE http://aertrafficapi.aeris.com/v1/1/scheduledReports/archives/{archiveId}?apiKey={apiKey}

VIEW REPORT RECIPIENTS

URL GET https://aertrafficapi.aeris.com/v1/{account ID}/scheduledReports/recipients/{Report Type}?apiKey={API Key}

UPDATE REPORT RECIPIENTS

URL GET https://aertrafficapi.aeris.com/v1/{account ID}/scheduledReports/recipients?apiKey={API Key}

Schema definition: ReportRecipients

Schema definition: RecipientResponse

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.

Table 7: Trend Reports Operations

Traffic Summary Report

URL GET https://aertrafficapi.aeris.com/v1/{accountID}/systemReports/trafficSummary?durationInDays=7&apiKey={API Key}&subAccounts=false

Schema definition: TrafficSummaryTrendResponse

Overage Charges Report

URL GET https://aertrafficapi.aeris.com/v1/{accountID}/systemReports/costSummary?durationInMonths=2&apiKey={API Key}&subAccounts=false

Schema definition: CostSummaryTrendResponse

Device Summary Report

URL GET https://aertrafficapi.aeris.com/v1/{accountID}/systemReports/deviceSummary?durationInMonths=3&apiKey={API Key}&subAccounts=false

Schema definition: DeviceSummaryTrendResponse

Error 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 8: HTTP Status 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 9: Top Level Error Codes

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.

Table 10: Validation Messages

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.