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 |
Table 2: AerTraffic XSD Link
XSDs |
---|
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
0 Comments