サーバAPI

1. はじめに

本APIを利用することで、SmartBeatで収集されたデータを取得することができる。

2. サーバAPI

2-1. GET errors

エラ一覧取得

 

リクエスト例
GET /1/errors HTTP/1.1
Authorization: Basic <master authorization string>
Content-Type: application/json
Accept: application/json
{
"range":{"last_days":7},
"next_id":123,
"error_statuses":["open","working"]
}

 

cURLでのコマンド例
curl -v -X GET -u "<API Key>:<API Token>" -H "Content-Type: application/json" -d '{"range":{"last_days":7},"next_id":123,"error_statuses":["open","working"]}' https://api.smrtbeat.com/1/errors
リソースURL

https://api.smrtbeat.com/1/errors

リソース情報
フォーマット
JSON
メソッド
GET
認証
必須(Basic認証)

ユーザ名、パスワードには、APIキー及びAPI Tokenを利用してください。値はアプリを選択後、 設定 => 一般設定より確認できます。

例)
APIキー:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
API Token:01234567890123456789
の場合は、下の文字列が<master authorization string>の部分に入ります。

YWFhYWFhYWEtYmJiYi1jY2NjLWRkZGQtZWVlZW
VlZWVlZWVlOjAxMjM0NTY3ODkwMTIzNDU2Nzg5

※実際には改行されません

リクエスト数制限
あり

 

要求パラメータ
range
Optional
エラー取得対象の期間

パラメータは、日数指定あるいは、期間指定のどちらかになります。

<日数での指定方法>
下記のように、last_daysに 1〜90の範囲で日数を指定してください。

{"range": {"last_days":7}}

※日数が 1 の時のみ、過去24時間となります。

<期間での指定方法>
下記のようなフォーマット(YYYY-MM-DD)で指定してください。

{"range": {"custom": {"from":"2015-01-01", "to":"2015-01-10"}}}

※指定可能な日付は、当日〜90日前となります。

パラメータを省略した場合は、最新の1週間となります。

next_id
Optional
要求オフセット

前回の応答の続きを要求する場合、前回の応答に含まれる「next_id」の値をセットしてください。
初回要求の場合は、本パラメータは不要です。

error_statuses
Optional
エラーステータス

配列形式で値を設定します。複数の値を設定することが可能です。
パラメータを省略した場合は全てのステータスが設定されます。

設定可能な値:
open | working | resolved | wont_fix | reopened | closed

 

応答例
{
"next_id": 1234,
"errors": [
{
"error_id": 534,
"error_name": "java.lang.NullPointerException",
"error_status": "open",
"error_count": 118,
"affected_users": 22,
"error_location": "OnClickHandler.java : 46",
"first_occurrence": "2014-02-11 17:25:19 GMT+09:00",
"last_occurrence": "2014-12-25 10:37:04 GMT+09:00",
"tags": [
{"id":1,"name":"tag1"},
{"id":2,"name":"tag2"}
],
"app_versions": [ "1.0", "1.1"],
"os_versions": ["5.0", "4.4.4", "4.1.2", "4.0.3"],
"url":"https://dash.smrtbeat.com/console/error_detail?a=111&e=534&range=20140211-20141225"
},
{
"error_id" : 567,
"error_name": "yyyyyy",
….
}
]
}

 

応答パラメータ
next_id
次回要求id

結果の件数が、応答可能な最大数(1,000エラー)より大きい場合に返ります。次回要求時につけることで、続きの結果を返します。

エラー一覧

errors/error_id
エラーID
errors/error_name
エラー名
errors/error_status
エラーステータス
errors/error_count
エラー発生数
errors/affected_users
影響ユーザ数
errors/error_location
エラー発生箇所
errors/first_occurrence
初回発生日時
errors/last_occurrence
最終発生日時
errors/tags
タグリスト
errors/app_versions
エラーが発生したアプリのバージョンの一覧
errors/os_versions
エラーが発生したOSのバージョンの一覧
errors/url
エラー詳細へのリンク

2-2. GET date listing

アプリ統計情報取得可能な対象のdateの取得

リクエスト例
GET /1/date_list HTTP/1.1
Authorization: Basic <master authorization string>
Content-Type: application/json
Accept: application/json
{
}
cURLでのコマンド例
curl -v -X GET -u "<API Key>:<API Token>" -H "Content-Type: application/json" -d '{ }' https://api.smrtbeat.com/1/date_list
リソースURL

https://api.smrtbeat.com/1/date_list

リソース情報
フォーマット
JSON
メソッド
GET
認証
必須(Basic認証)

ユーザ名、パスワードには、APIキー及びAPI Tokenを利用してください。値はアプリを選択後、 設定 => 一般設定より確認できます。

例)
APIキー:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
API Token:01234567890123456789
の場合は、下の文字列が<master authorization string>の部分に入ります。

YWFhYWFhYWEtYmJiYi1jY2NjLWRkZGQtZWVlZW
VlZWVlZWVlOjAxMjM0NTY3ODkwMTIzNDU2Nzg5

※実際には改行されません

リクエスト数制限
なし
応答例
[ {
"date" : "2016-04-13",
"start_timestamp" : "2016-04-13 00:00:00 GMT+09:00",
"end_timestamp" : "2016-04-14 00:00:00 GMT+09:00"
}, {
"date" : "2016-04-12",
"start_timestamp" : "2016-04-12 00:00:00 GMT+09:00",
"end_timestamp" : "2016-04-13 00:00:00 GMT+09:00"
}, {
"date" : "2016-04-11",
"start_timestamp" : "2016-04-11 00:00:00 GMT+09:00",
"end_timestamp" : "2016-04-12 00:00:00 GMT+09:00"
}, {
"date" : "2016-04-10",
"start_timestamp" : "2016-04-10 00:00:00 GMT+09:00",
"end_timestamp" : "2016-04-11 00:00:00 GMT+09:00"
} ]
応答パラメータ (Array)
date

統計データ取得可能な対象のdate

start_timestamp

対象dateの開始日時

end_timestamp

対象dateの終了日時

2-3. GET version listing

指定されたdateのアプリバージョンの一覧の取得

リクエスト例
GET /1/app_versions HTTP/1.1
Authorization: Basic <master authorization string>
Content-Type: application/json
Accept: application/json
{
"date": "2016-04-14"
}
cURLでのコマンド例
curl -v -X GET -u "<API Key>:<API Token>" -H "Content-Type: application/json" -d '{ "date": "2016-04-14" }' https://api.smrtbeat.com/1/app_versions
リソースURL

https://api.smrtbeat.com/1/app_versions

リソース情報
フォーマット
JSON
メソッド
GET
認証
必須(Basic認証)

ユーザ名、パスワードには、APIキー及びAPI Tokenを利用してください。値はアプリを選択後、 設定 => 一般設定より確認できます。

例)
APIキー:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
API Token:01234567890123456789
の場合は、下の文字列が<master authorization string>の部分に入ります。

YWFhYWFhYWEtYmJiYi1jY2NjLWRkZGQtZWVlZW
VlZWVlZWVlOjAxMjM0NTY3ODkwMTIzNDU2Nzg5

※実際には改行されません

リクエスト数制限
あり
要求パラメータ
date
Required

アプリバージョン取得対象のdate

レスポンス例
{
"date" : "2016-04-14",
"start_timestamp" : "2016-04-14 00:00:00 GMT+09:00",
"end_timestamp" : "2016-04-15 00:00:00 GMT+09:00",
"app_versions" : [ "*", "1.0.0", "1.0.1", "2.0.0SR1", "2.0.0", "2.1.1", "2.2.0", "3.0" ]
}
応答パラメータ
date

リクエストで渡されたdate

start_timestamp

対象のdateの開始日時

end_timestamp

対象のdateの終了日時

app_versions

統計情報取得可能なアプリバージョン

2-4. GET app statistics

対象のアプリバージョンあるいは、全体の統計情報の取得

リクエスト例
GET /1/app_statistics HTTP/1.1
Authorization: Basic <master authorization string>
Content-Type: application/json
Accept: application/json
{
"date" : "2016-04-10",
"app_version":"*"
}
cURLでのコマンド例
curl -v -X GET -u "<API Key>:<API Token>" -H "Content-Type: application/json" -d '{ "date" : "2016-04-14","app_version":"*" }' https://api.smrtbeat.com/1/app_statistics
リソースURL

https://api.smrtbeat.com/1/app_statistics

リソース情報
フォーマット
JSON
メソッド
GET
認証
必須(Basic認証)

ユーザ名、パスワードには、APIキー及びAPI Tokenを利用してください。値はアプリを選択後、 設定 => 一般設定より確認できます。

例)
APIキー:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
API Token:01234567890123456789
の場合は、下の文字列が<master authorization string>の部分に入ります。

YWFhYWFhYWEtYmJiYi1jY2NjLWRkZGQtZWVlZW
VlZWVlZWVlOjAxMjM0NTY3ODkwMTIzNDU2Nzg5

※実際には改行されません

リクエスト数制限
あり
要求パラメータ
date
Required

統計情報取得対象のdate

app_version
Required

アプリバージョン名あるいは「*」(全体を取得する場合)

応答例
{
"date" : "2016-04-14",
"start_timestamp" : "2016-04-14 00:00:00 GMT+09:00",
"end_timestamp" : "2016-04-15 00:00:00 GMT+09:00",
"app_version" : "*",
"errors" : 222,
"crashes" : 187,
"signals" : 35,
"exceptions" : 35,
"affected_users_crash" : 12,
"affected_users_crash_signal" : 10,
"affected_users_crash_non_signal" : 3,
"unique_users" : 1244,
"ooms" : 10,
"returing_user_rate" : 0.540,
"user_loss_rate" : 0.460,
"user_loss_rate_with_crash" : 0.450,
"user_loss_rate_no_crash" : 0.480
}
応答パラメータ
date

統計情報取得対象のdate

start_timestamp

対象のdateの開始日時

end_timestamp

対象のdateの終了日時

app_version

統計情報取得対象のアプリバージョン

errors

エラー総数

crashes

クラッシュ発生数(SIGNAL含む)

signals

クラッシュ発生数(SIGNALのみ)

exceptions

例外発生数

affected_users_crash

クラッシュ影響ユーザ数

affected_users_crash_signal

クラッシュ(シグナルのみ)影響ユーザ数

affected_users_crash_non_signal

クラッシュ(シグナル除く)影響ユーザ数

unique_users

ユーザ数

ooms

OOM発生数

returing_user_rate

翌日リターン率(アプリバージョンを指定した場合はnullを返却)

user_loss_rate

翌日離脱率(アプリバージョンを指定した場合はnullを返却)

user_loss_rate_with_crash

翌日離脱率(クラッシュ影響ユーザ)(アプリバージョンを指定した場合はnullを返却)

user_loss_rate_no_crash

翌日離脱率(クラッシュ影響なしユーザ)(アプリバージョンを指定した場合はnullを返却)

2-5. GET app rankings

指定されたdateの各種ランキングの取得

リクエスト例
GET /1/app_rankings HTTP/1.1
Authorization: Basic <master authorization string>
Content-Type: application/json
Accept: application/json
{
"date": "2016-04-14"
}
cURLでのコマンド例
curl -v -X GET -u "<API Key>:<API Token>" -H "Content-Type: application/json" -d '{ "date": "2016-04-14" }' https://api.smrtbeat.com/1/app_rankings
リソースURL

https://api.smrtbeat.com/1/app_rankings

リソース情報
フォーマット
JSON
メソッド
GET
認証
必須(Basic認証)

ユーザ名、パスワードには、APIキー及びAPI Tokenを利用してください。値はアプリを選択後、 設定 => 一般設定より確認できます。

例)
APIキー:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
API Token:01234567890123456789
の場合は、下の文字列が<master authorization string>の部分に入ります。

YWFhYWFhYWEtYmJiYi1jY2NjLWRkZGQtZWVlZW
VlZWVlZWVlOjAxMjM0NTY3ODkwMTIzNDU2Nzg5

※実際には改行されません

リクエスト数制限
あり
要求パラメータ
date
Required

ランキング取得対象のdate

レスポンス例
{
"app_version" : {
"usage" : [ { "name" : "1.1" , "count" : 1 } ],
"crashes" : [ { "name" : "1.1" , "count" : 0 } ]
},
"os_version" : {
"usage" : [ { "name" : "9.3.4" , "count" : 1 } ],
"crashes" : [ { "name" : "9.3.4" , "count" : 0 } ]
},
"model" : {
"usage" : [ { "name" : "iPhone 6S [iPhone8,1]" , "count" : 1 } ],
"crashes" : [ { "name" : "iPhone 6S [iPhone8,1]" , "count" : 0 } ]
}
}
応答パラメータ

アプリバージョンランキング

app_version/usage

アプリバージョン別利用ユーザ数ランキング(リスト)

app_version/crashes

アプリバージョン別クラッシュ数ランキング(リスト)

OSバージョンランキング

os_version/usage

OSバージョン別利用ユーザ数ランキング(リスト)

os_version/crashes

OSバージョン別クラッシュ数ランキング(リスト)

モデルランキング(iOS/Androidの場合)

model/usage

モデル別利用ユーザ数ランキング(リスト)

model/crashes

モデル別クラッシュ数ランキング(リスト)

ブラウザランキング(Webの場合)

browser/usage

ブラウザ別利用ユーザ数ランキング(リスト)

browser/crashes

ブラウザ別クラッシュ数ランキング(リスト)

2-6. GET app rankings change

ランキング履歴の取得

リクエスト例
GET /1/app_rankings_change HTTP/1.1
Authorization: Basic <master authorization string>
Content-Type: application/json
Accept: application/json
{
"range":{"last_days":7}
}
cURLでのコマンド例
curl -v -X GET -u "<API Key>:<API Token>" -H "Content-Type: application/json" -d '{ "range":{"last_days":7} }' https://api.smrtbeat.com/1/app_rankings_change
API Endpoint:

https://api.smrtbeat.com/1/app_rankings_change

リソース情報
フォーマット
JSON
メソッド
GET
認証
必須(Basic認証)

ユーザ名、パスワードには、APIキー及びAPI Tokenを利用してください。値はアプリを選択後、 設定 => 一般設定より確認できます。

例)
APIキー:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
API Token:01234567890123456789
の場合は、下の文字列が<master authorization string>の部分に入ります。

YWFhYWFhYWEtYmJiYi1jY2NjLWRkZGQtZWVlZW
VlZWVlZWVlOjAxMjM0NTY3ODkwMTIzNDU2Nzg5

※実際には改行されません

リクエスト数制限
あり
要求パラメータ
range
Required

ランキング履歴取得対象の期間

パラメータは、日数指定あるいは、期間指定のどちらかになります。

<日数での指定方法>
下記のように、last_daysに 1〜90の範囲で日数を指定してください。

{"range": {"last_days":7}}

<期間での指定方法>
下記のようなフォーマット(YYYY-MM-DD)で指定してください。

{"range": {"custom": {"from":"2015-01-01", "to":"2015-01-10"}}}

※指定可能な日付は、当日〜90日前となります。

パラメータを省略した場合は、最新の1週間となります。

limit
Optional
取得バージョン数は、デフォルト:5、最大:100です
Example Response:
{
"dates":["2016-01-07","2016-01-06","2016-01-05","2016-01-04","2016-01-03","2016-01-02","2016-01-01"],
"app_version": {
"usage":[
{"name":"1.0","data":[100,90,80,50,30,10,0]},
{"name":"1.1","data":[0,50,90,80,70,60,50]},
{"name":"1.2","data":[0,0,30,50,90,70,50]},
{"name":"1.3","data":[0,0,0,30,50,70,50]},
{"name":"1.3.1","data":[0,0,0,0,50,90,100]}
]
},
"crashes":[
{"name":"1.0","data":[100,90,80,50,30,10,0]},
{"name":"1.1","data":[0,5,9,8,7,6,5]},
{"name":"1.2","data":[0,0,1,2,4,3,2]},
{"name":"1.3","data":[0,0,0,1,2,2,1]},
{"name":"1.3.1","data":[0,0,0,0,0,1,2]}
]
},
"os_version": {
"usage":[
{"name":"4.4.0","data":[100,90,80,50,30,10,0]},
{"name":"4.4.1","data":[0,0,30,50,90,70,50]},
{"name":"4.4.2","data":[0,0,0,0,50,90,100]}
],
"crashes":[
{"name":"4.4.0","data":[100,90,80,50,30,10,0]},
{"name":"4.4.1","data":[0,0,1,2,4,3,2]},
{"name":"4.4.2","data":[0,0,0,0,0,1,2]}
]
},
"model": {
"usage":[
{"name":"ACME-2","data":[100,90,80,50,80,50,70]},
{"name":"ACME-1","data":[10,15,20,15,17,19,20]},
{"name":"ACME-3","data":[5,5,7,9,1,4,3]}
],
"crashes":[
{"name":"ACME-2","data":[10,9,8,5,8,5,7]},
{"name":"ACME-1","data":[10,15,20,15,17,19,20]},
{"name":"ACME-3","data":[500,500,700,900,100,400,300]}
]
}
}
応答パラメータ

日付リスト

dates

日付(リスト)

アプリバージョン別推移

app_version/usage

利用者の多いアプリバージョンのユーザ数推移

app_version/crashes

クラッシュの多いアプリバージョンのクラッシュ数推移

OSバージョン別推移

os_version/usage

利用者の多いOSバージョンのユーザ数推移

os_version/crashes

クラッシュの多いOSバージョンのクラッシュ数推移

モデル別推移(iOS/Androidの場合)

model/usage

利用者の多いモデルのユーザ数推移

model/crashes

クラッシュの多いモデルのクラッシュ数推移

ブラウザ別推移(Webの場合)

browser/usage

利用者の多いブラウザのユーザ数推移

browser/crashes

クラッシュの多いブラウザのクラッシュ数推移

3. 共通エラー応答

3-1. 認証エラー

Basic認証に失敗した場合、以下の応答を返却する

HTTP/1.1 401 Unauthorized
Content-Type: application/json

 

{ "message": "Authentication failed"}

 

3-2. リクエスト数制限エラー

リクエスト数の上限に達した場合、以下の応答を返却する
ヘッダ部の「X-RateLimit-NextAvailable」が次回アクセス可能時刻(エポック秒)となり、
それまでは、429のステータスコードが同様に返却されます。

HTTP/1.1 429 Too Many Requests
Content-Type: application/json
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-NextAvailable: 123456

 

{“message”: “Rate limit exceeded”}

4. リクエスト数制限

APIへのリクエスト数は以下のとおり制限される

契約単位での制限数
10,000リクエスト/月

※期間はご契約のMAUの集計期間と同じ期間となります。

各アプリ毎の制限数
100リクエスト/時