Info API v1.9

Info API v1.9

Info API

 

Document History

Version

Date

Comments

1.0

10/22/2019

Comments and reversion.

1.1

11/07/2019

 

1.2

11/20/2019

Add example

1.3

11/21/2019

Add request interval check

1.4

11/25/2019

Add file expiration check

1.5

11/29/2019

1.  Add parameter time range in API 2.2

2.  Add parameter error code in all API

3.  Site manager and company manger can use

API

4.  Modify API request frequency check

5.  Add time type check error code

1.6

03/13/2020

Add parameter “errorocdes”, data type is array

1.7

05/28/2021

Add description “CMC site manager and company manger can use this API” on 2.1, 2.2, 2.3  

1.8

06/02/2021

Add get transaction by transaction id API.

1.9

06/08/2021

 Add certificate API.

 

1  Info server  

Its domain name is info.futuredial.com

2  API 

2.1 Get transactions

Get transactions within the specified time range. Maximum time range is 30 days. It can get transactions synchronously or asynchronously. 

The next request cannot be accepted until the previous request has been processed.

CMC site manager and company manger can use this API.

2.1.1 Asynchronous request

Host: https://info.futuredial.com

Path: api/transactions/standardquery

Method: POST

Content-Type: application/json

Parameters:

                {

                                "starttime": "yyyy-MM-dd HH:mm:ss",

                                "endtime": "yyyy-MM-dd HH:mm:ss",

                                "timezone": 0,                                                   # Integer -12~11

                                "timetype": 1,                                                    # 1: timeCreated, 2: serverTime

                                "product": "greent",                                        # greent, irt, greent_asia, irt_asia......

                                                                                                                If no product, product  default is “greent”

  "errorcodes": [1,2,3],   # iferrorcodes is [], all transactions will be returned whatever        errorcode is.

                                "fields": [],                                                       #specified fields will be returned. If it is empty, all fields will be

                                                                                                                returned

                                  "userinfo": ["username", "password"], # username: Base64 string;  password: Base64 string;

                                "async": true                                                      # true: asynchronousa task id will be returned.              

                }

 

Return:

                {

                                "taskid": "xxxxxxxxxxxxxxxxxxxx"

                }

 

For example:

POST https://info.futuredial.com/api/transactions/standardquery

POST data:

{

"starttime": "2019-01-01 00:00:00", 

"endtime": "2019-01-30 00:00:00",

"timezone": 0, 

"timetype": 2, 

"errorcodes": [1],

"product": "greent", 

"fields": [], 

"userinfo": ["xxxx","xxxx"],

"async": true

}

Response:

{"taskid": "03e69f58-9426-4109-87ab-3c0f9a1c5a08"}

 

Get transactions by task id

Host: https://info.futuredial.com

Path: api/transactions/taskresult

Method: GET Parameters                  taskid = xxxxxxxxxxxxxxxxxxxxx

Return:

-          If it is querying, Content-Type is application/json

                {

                "status":  8,

                "taskid": "xxxxxxxxxxxxxxxxxxxx"

                }

-          After querying, in response, Content-Type is application/zip  and a zip file will be returned which includes multiple json files, each json file contains at most 1000 transactions.The result file is valid in 2 days on server.

For example:

GET https://info.futuredial.com/api/transactions/taskresult?taskid=03e69f58-9426-4109-87ab-3c0f9a1c5a08

2.1.2 Synchronous request

Host: https://info.futuredial.com

Path: api/transactions/standardquery

Method: POST

Content-Type: application/json

Parameters:

                {

                                "starttime": "yyyy-MM-dd HH:mm:ss",

                                "endtime": "yyyy-MM-dd HH:mm:ss",

                                "timezone": 0,                                                   # Integer -12~11

                                "timetype": 1,                                                    # 1: timeCreated, 2: serverTime

                                "product": "greent",                                        # greent, irt, greent_asia, irt_asia......

                                                                                                                If no product, product  default is “greent”

  "errorcodes": [1,2,3],   # iferrorcodes is [], all transactions will be returned whatever        errorcode is.

                                "fields": [],                                                       #specified fields will be returned. If it is empty, all fields will be

                                                                                                                returned

                                 "userinfo": ["username", "password"], # username: Base64 string;  password: Base64 string;

                                "async": false                                                    # false: synchronoustransactions will be returned.

                }

 

Return:

                [{data1……},{data2……}]

*If the count of transactions is greater than 1000,  it will switch to asynchronous mode automatically.

 

For example:

POST https://info.futuredial.com /api/transactions/standardquery

POST data:

{

"starttime": "2019-01-02 08:07:00", 

"endtime": "2019-01-02 08:08:00",

"timezone": 0, 

"timetype": 2, 

"errorcodes":[ 1],

"product": "greent", 

"fields": [], 

"userinfo": ["xxxx","xxxx"],

"async": false

}

Response:

[{

                 "_id": "dcaed3b00bf442da8116df3fe56a3800",

                "AndroidVersion": "7.1.1",

                "Baseband": "Q_V1_P14,Q_V1_P14",

                "Buildnumber": "R11s_11_A.27_180912",

                "CurrentSystemMacAddress": "BCAEC5863E7E",

                "Error_code_detail": "",

                "FDResult": "Fail",

                 "FD_IMEI": "868066039191111",

                 "FD_MEID": "86806603919111",

                "IPSWFile": "No firmware",

                "Knoxbit": "false",

                "MacAddress": "F0:6D:78:DD:E0:59",

                "ProcessorCount": "2",

                "ProductVer": "Version: 5.9.1",

                "RCV_Clear": "UNABLE TO CLEAR",

                "Ro_serialno": "563a2c2e",

                "S3Level": "0",

                "SIMExist": "",

                 "StartTime": "2019-01-02 00:04:34",

                "SystemDirectory": "C:\\Windows\\system32",

                "SystemMacAddress": "BCAEC5863E7E;",

                "SystemPageSize": "4096",

                "UserDomainName": "Win7en_ENT_PST",

                "UserName": "user",

                 "barCode": "C:\\Users\\user\\AppData\\Local\\Temp\\868066039191111_2953_5.png",

                "batteryhealthyvalue": "2",

                "batterylevel": "30",

                "color": "N/A",

                "company": "41",

                "currentAndroidLanguage": "zh_CN",

                "dec_meid_imei": "this is imei",

                "deviceLockInfo": "UnLocked",

                "devicememorysize": "64G",

                "errorCode": "1",

                 "esnNumber": "868066039191111",

                "finalLockInfo": "UnLocked",

                "firmwareVersion": "Linux version 4.4.21-perf+ (root@ubuntu-121-180) (gcc version 4.9 20150123 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Sep 12 23:30:23 CST 2018",

                "iccid": "",

                "loadapps": "load apps feature not open",

                "logicalDrives_0": "Drive: [C:\\] VolumeLabel: [] DriveType: [Fixed] DriveFormat: [NTFS] TotalSize:

[256740245504] AvailableFreeSpace: [208117293056]",

                "logicalDrives_1": "Drive: [D:\\] VolumeLabel: [] DriveType: [Fixed] DriveFormat: [NTFS] TotalSize:

[133093220352] AvailableFreeSpace: [81526947840]",

                "logicalDrives_2": "Drive: [E:\\] VolumeLabel: [] DriveType: [Fixed] DriveFormat: [NTFS] TotalSize: [109766328320] AvailableFreeSpace: [56407887872]",

                "modelnumber": "OPPO R11s",

                "operationSystem": "Microsoft Windows NT 6.1.7601 Service Pack 1 32 Bit",

                "operator": "3031",

                "portNumber": "5",

                "productid": "2",

                "prop_encryptionInfo": " [encrypted]",

                "prop_maker": " [OPPO]",

                "prop_model": " [OPPO R11s]",

                "rooted": "normal",

                "runexes": "run exe feature not open",

                 "serialnumber": "563a2c2e",

                "serverTime": {

                                 "$date": "2019-01-02T08:07:08.026Z"

                },

                "site": "53",

                "sourceCarrier": "GSM",

                "sourceMake": "OPPO",

                "sourceModel": "OPPO R11s",

                "sourcePhoneID": "PST_ARD_UNIVERSAL_USB_FD",

                "stopOnSim": "",

                "systemAllMacAddrs": "BCAEC5863E7E;",

                 "systemVersion": "4.0.30319.18444",

                "timeCreated": {

                                 "$date": "2019-01-02T08:07:01.514Z"

                },

                 "timetaken": "00:02:24",

                "whitelistignore": "email;",

                "workstationName": "WIN7EN_ENT_PST",

                "wsgroupid": "50",

                 "wsid": "5539"

}]

 

2.2 Get transactions with IDs

Get transactions within the specified time range by IDs. Maximum time range is one year. It can get transactions synchronously or asynchronously. 

The next request cannot be accepted until the previous request has been processed. 

CMC site manager and company manger can use this API.

2.2.1 Asynchronous request

Host: https://info.futuredial.com

Path: api/transactions/deviceidquery

Method: POST

Content-Type: application/json

Parameters:

                {

                                "starttime": "yyyy-MM-dd HH:mm:ss",

                                "endtime": "yyyy-MM-dd HH:mm:ss",

                                "timezone": 0,                                                   # Integer -12~11

                                "timetype": 1,                                                    # 1: timeCreated, 2: serverTime

                                "deviceids": ["xxx", "xxxx"],                          #deviceid: IMEI, Serial Number, MEID, ESN Number or  MAC

                                                                                                                Address

                                "product": "greent",                                        # greent, irt, greent_asia, irt_asia......

                                                                                                                If no product, product  default is “greent”

  "errorcodes": [1,2,3],   # iferrorcodes is [], all transactions will be returned whatever        errorcode is.

                                "timerange": 0,                                                 # 0: use “starttime”, “endtime”

                                                                                                                1: Today

2: This week

3: This month

4: This year

5: Last year

6: Past 30 days

                                "fields": [],                                                       #specified fields will be returned. If it is empty, all fields will be

                                                                                                                returned

                                 "userinfo": ["username", "password"], # username: Base64 string;  password: Base64 string;

                                "async": true                                                      # true: asynchronousa task id will be returned.              

                }

 

Return:

                {

                                "taskid": "xxxxxxxxxxxxxxxxxxxx"

                }

 

For example:

POST https://info.futuredial.com/api/transactions/deviceidquery

POST data:

{

"starttime": "2019-01-01 00:00:00", 

"endtime": "2019-01-30 00:00:00",

"timezone": 0, 

"timetype": 2,  "errorcodes": [1],

"deviceids":

["354896091063233","869033023504807","868066039191111","867478037559390","355412079324560","3588220522

55010","353306090022298","358810052413895","869718027005708","356604086453163"], "product": "greent", 

"fields":

["_id","errorCode","company","site","operator","StartTime","timeCreated","workstationName","ProductVer","sourceCa rrier","sourceMake","sourceModel","esnNumber","modelnumber","color","serialnumber","devicememorysize","iosVers ion","portNumber","serverTime","timetaken","FD_IMEI","FD_MEID","jailbroken","rooted","finalOpenWIFI","backup_icc id"], 

"userinfo": ["xxxx","xxxx"],

"async": true

}

Response:

{"taskid": "5d70507b-37cd-4c1e-a5e5-cce93467e698"}

Get transactions by task id

Host: <info server>

Path: api/transactions/taskresult

Method: GET Parameters                  taskid = xxxxxxxxxxxxxxxxxxxxx

Return:

-          If it is querying, Content-Type is application/json

                {

                "status": 8

                "taskid": "xxxxxxxxxxxxxxxxxxxx"

                }

-          After querying, in response, Content-Type is application/zip  and a zip file will be returned which includes multiple json files, each json file contains at most 1000 transactions. The result file is valid in 2 days on server.

For example:

GEThttps://info.futuredial.com/api/transactions/taskresult?taskid=5d70507b-37cd-4c1e-a5e5-cce93467e698

 

2.2.2 Synchronous request

Host: https://info.futuredial.com

Path: api/transactions/deviceidquery

Method: POST

Content-Type: application/json

Parameters:

                {

                                "starttime": "yyyy-MM-dd HH:mm:ss",

                                "endtime": "yyyy-MM-dd HH:mm:ss",

                                "timezone": 0,                                                   # Integer -12~11

                                "timetype": 1,                                                    # 1: timeCreated, 2: serverTime

                                "deviceids": ["xxx", "xxxx"],                          #deviceid: IMEI, Serial Number, MEID, ESN Number or  MAC

                                                                                                                Address

                                "product": "greent",                                        # greent, irt, greent_asia, irt_asia......

                                                                                                                If no product, product  default is “greent”

  "errorcodes": [1,2,3],   # iferrorcodes is [], all transactions will be returned whatever        errorcode is.

                                "timerange": 0,                                                 # 0: use “starttime”, “endtime”

                                                                                                                1: Today

2: This week

3: This month

4: This year

5: Last year

6: Past 30 days

                                “fields”: [],                                                       #specified fields will be returned. If it is empty, all fields will be

                                                                                                                returned

                                 "userinfo": ["username", "password"], # username: Base64 string;  password: Base64 string;

                                "async": false                                                    # false: synchronoustransactions will be returned.

                }

 

Return:

                [{data1……},{data2……}]

*If the count of transactions is greater than 1000,  it will switch to asynchronous mode automatically.

 

For example:

POST https://info.futuredial.com/api/transactions/deviceidquery

POST data:

{

"starttime": "2019-01-01 00:00:00", 

"endtime": "2019-01-30 00:00:00",

"timezone": 0, 

"timetype": 2,  "errorcodes": [1],

"deviceids":

["354896091063233","869033023504807","868066039191111","867478037559390","355412079324560","3588220522

55010","353306090022298","358810052413895","869718027005708","356604086453163"], "product": "greent", 

"fields":

["_id","errorCode","company","site","operator","StartTime","timeCreated","workstationName","ProductVer","sourceCa rrier","sourceMake","sourceModel","esnNumber","modelnumber","color","serialnumber","devicememorysize","iosVers ion","portNumber","serverTime","timetaken","FD_IMEI","FD_MEID","jailbroken","rooted","finalOpenWIFI","backup_icc id"], 

"userinfo": ["xxxx","xxxx"],

"async": false

}

Response: 

[{data1……},{data2……}]

 

2.3 Get new transactions

Get transactions from the specified time. Maximum time range is 7 days. It only support synchronous query. 

The next request cannot be accepted until the previous request has been processed. 

CMC site manager and company manger can use this API.

Host: https://info.futuredial.com

Path: api/transactions/latestquery

Method: POST

Content-Type: application/json

Parameters:

                {

"starttime": "yyyy-MM-dd HH:mm:ss", # A specified time in range from current time to seven days ago for the first query; And in the next queries it should be the latest_time_in_result in last return.

                                "firstquery": true,                                           # true for the first query with a specified starttime

# false for the next queries with the latest_time_in_result in last return as starttime

                                "timezone": 0,                                                   # Integer -12~11

                                "product": "greent",                                        # greent, irt, greent_asia, irt_asia......

If no product, product  default is “greent”

  "errorcodes": [1,2,3],   # iferrorcodes is [], all transactions will be returned whatever        errorcode is.

                                "fields": [],                                                       #specified fields will be returned. If it is empty, all fields will be

                                                                                                                returned

                                 "userinfo": ["username", "password"], # username: Base64 string;  password: Base64 string;

                }

 

Return:

                {

                "status": 0,

                               "latest_time_in_result": xxxxxxxxxxxx,

                "result: [{data1……},{data2……}]

                }

*Up to 1000 transactions can be returned for each query

 

For example:

-

"firstquery" is true

POST https://info.futuredial.com/api/transactions/latestquery

POST data:

{

"starttime": "2019-11-19 00:00:00",

"firstquery": true,

"timezone": 8, 

"errorcodes": [1],

"product": "greent", 

"fields": [], 

"userinfo": ["xxxx","xxxx"]

}

 

Response:

{

                "status": 0,

                 "latest_time_in_result": "2019-11-19 19:07:42.637000",

                 "count": 1000,

                "result": [{data1……},{data2……}]

}

 

-     "firstquery" is false

POST https://info.futuredial.com/api/transactions/latestquery

POST data:

{

"starttime": "2019-11-19 19:07:42.637000", 

"firstquery": false,

"timezone": 8, 

"errorcodes":[ 1],

"product": "greent", 

"fields": [], 

"userinfo": ["xxxx","xxxx"]

}

 

Response:

{

                "status": 0,

                "latest_time_in_result": "2019-11-20 16:13:10.866000 ",

                 "count": 960

                "result": [{data1……},{data2……}]

}

 

2.4 Get transaction by transaction id

Get transaction by the specified transaction id. It can only get transaction synchronously. 

The next request cannot be accepted until the previous request has been processed.

CMC site manager and company manger can use this API.

2.4.1 Synchronous request

Host: https://info.futuredial.com

Path: api/transactions/querytransid

Method: POST

Content-Type: application/json

Parameters:

                {

                                "transactionid": "xxxxxx",                                              # transaction id

                                "product": "xxxx",                                            # Product name: greent, irt, greent_asia, irt_asia......  If no product, default is “greent”. Case insensitive.

                                “fields”: [],                                                          #specified fields will be returned. If it is empty, all fields will bereturned

                                 "userinfo": ["username", "password"], # username: Base64 string;  password: Base64 string;

                }

Return:

                [{data……}]

For example:

POST https://info.futuredial.com/api/transactions/querytransid

POST data:

{

"transactionid": "f69abcc6c04d457ca39fcb45f22e571e",

"product": "NDSE",

"fields":

["_id","company","site","operator","device_serialnumber","serverTime","esnNumber","sourceMake","productid","error

Code"],

"userinfo": ["xxxx", "xxxx"]

}

Response:

[{

"_id" : "f69abcc6c04d457ca39fcb45f22e571e",

"device_serialnumber" : "FTX17028453",

"serverTime" : ISODate("2020-06-04T22:59:30.613Z"),

"site" : "1",

"operator" : "146",

"esnNumber" : "FTX17028453",

"company" : "9",

"sourceMake" : "Cisco",

"productid" : "49",

"errorCode" : "0"

}]

 

 

2.5 Get certificate by imei

Get certificate by the specified IMEI. It can only get certificate synchronously. 

The next request cannot be accepted until the previous request has been processed.

CMC site manager and company manger can use this API.

Host: https://info.futuredial.com

Path: api/transactions/getcertificate

Method: POST

Content-Type: application/json

Parameters:

                {

                                "imei": "xxxxxx",                                               # IMEI

"product": "xxxx",                                            # Product name: greent, irt, greent_asia, irt_asia......  If no product, default is “greent”. Case insensitive.

                                 "userinfo": ["username", "password"], # username: Base64 string;  password: Base64 string;

                }

Return:

                {data……}

For example:

POST https://info.futuredial.com/api/transactions/getcertificate

POST data:

{

"imei": "351475390004629",

"product": "greent",

"userinfo": ["xxxx", "xxxx"]

}

Response:

{

    "status": 0,

    "downloadurl": "https://info.futurdial.com/certificate/reports/certs/cert_1623129972.479161024984.pdf",     "description": "This certificate will expire in two days."

}

 

                 

 

2.6 Status code definition

Status code

Definition

0

Successes

1

Time format error

2

Time range exceeded

3

Time zone error

4

Unknown product

5

User info error

6

No permission  

7

DB error

8

Query waiting

9

Query fail

10

JSON format error

11

The last request hasn't been processed

12

No device id

13

file expiration

14

Time type error

15

Error codes type error

16

No current system mac address

17

No company id 

18

No transaction id

19

No certificate found

20

No certificate auth

21

Transaction no certificate

99

Internal Error

 

 

    • Related Articles

    • Futuredial IP Allow List Requirements

      web site name IP status IP Address protocol gs.apple.com Dynamic xxx.xxx.xxx.xxx 80[http],443[https] albert.apple.com Dynamic xxx.xxx.xxx.xxx 80[http],443[https] cs.websl.blackberry.com Dynamic xxx.xxx.xxx.xxx 443[https] gapi.checkmend.com Dynamic ...
    • Testing and Understanding Battery Health

      iPhone and Android devices read battery info differently, leaving it up to human judgement for battery testing. iPhones have much better internal battery testing information that gets pulled from the device. Android devices report less data about ...
    • Functional Testing User Guide

      A PDF Download of the full Functional Testing User Guide (3.7 MB) can be found by selecting "Attachments" for this article.
    • ISD Installation and Configuration Instructions

      System Requirements: Ubuntu server 14.04+ (64-bit) At least 500GB free HD space CPU: i5, 3.2GHz RAM: 8GB   Setup Local server Case 1, First time installation 1. Login as root and using below command:   wget -O - ...
    • Assigning Workstation Groups in CMC

      Users with appropriate access can assign Workstation Groups to specific Workstations in the CMC Portal. A Workstation Group is a collection of settings and instructions that determine what happens when a device is plugged in to Lean One Touch. For ...