SmartDrive API (1.0.0)

Download OpenAPI specification:Download

Introduction

このページでは、APIを利用してSmartDrive Platformのデータを参照・更新する方法について解説しています。

Note: このドキュメントは完全ではありません。随時更新していますが、実際の動作との乖離が見つかった場合は ご連絡ください。

Authentication

appToken

全てのAPI呼び出しにはアプリケーショントークンによる認証が必要です。 リクエストの x-api-key ヘッダに設定してご利用ください。

curl --request GET \
  --url 'https://smartdrive-api.com/v1.0/devices/010009/locations?ts_from=2019-01-01T00:00:00Z&ts_to=2019-10-01T00:00:00Z' \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' \

アプリケーショントークンは、別途お渡しします。

WIP

Request and Response

Request Content-Type

このAPIはjsonをやり取りするRestfulなAPIです。 PUT/POST/PATCH といった更新系のリクエストのContent-Typeには application/json を指定してください。

Response Content-Type

このAPIはjsonをやり取りするRestfulなAPIです。 特別な注意書きがない限り、ほとんどのAPIのレスポンスはjsonとなります。 参照系のエンドポイントが /devices のようなコレクションを指し示す場合は、レスポンスのdataはリソースの配列になります。 一度のレスポンスでデータが取得しきれない場合は paging プロパティに次の呼び出し時に使うカーソル情報が設定されます。

{
  "meta": {
    "http_status_code": 200,
    "result": true
  },
  "paging": {
    "next": "MTAxNTExOTQ1MjAwNzI5NDE="
  },
  "data": [
    {
      "code": "07144A",
      "organization": {
        "id": "ZrMa7d5WF6cpsV0ejp29",
        "name": "SmartDrive"
      }
    }
  ]
}

/devices/{device_code}/devices/{device_code}/last_location のようにリソース自体、もしくはリソースの プロパティを指し示す場合は、レスポンスのdataはオブジェクトになります。

{
  "meta": {
    "http_status_code": 200,
    "result": true
  },
  "data": {
    "ts": "2014-06-02T23:02:34Z",
    "lat": 35.658581,
    "lng": 139.745433,
    "speed": 6,
    "h_accuracy": 10,
    "v_accuracy": 30
  }
}

削除・更新のエンドポイントの場合、レスポンスのdataは作成・更新されたオブジェクトになります。

{
  "meta": {
    "http_status_code": 200,
    "result": true
  },
  "data": {
    "id": "sV2Wcp9FZrMa7d56p0ej",
    "organization": {
      "id": "ZrMa7d5WF6cpsV0ejp29",
      "name": "SmartDrive"
    },
    "name": "東京タワー",
    "address": "東京都港区芝公園4丁目2−8",
    "coordinates": {
      "lat": 35.658581,
      "lng": 139.745433
    },
    "radius": 100
  }
}

削除のエンドポイントの場合、レスポンスのdataは存在しません。

{
  "meta": {
    "http_status_code": 200,
    "result": true
  }
}

Errors

APIでエラーが発生した場合は、レスポンスのstatus codeが300以上になります。 また、レスポンスのmetaデータにエラーの詳細が格納されます。

WIP

Paging

リソース一覧を取得・検索するAPIのほとんどは、カーソルベースのページネーションが実装されています。

cursor-based pagination

ページング可能なコレクションリソースにおいて、データ量が多く、一度のAPI呼び出しで全てのデータを 取得できないケースでは、レスポンスにpaging.nextというプロパティが設定されます。 次回のAPI呼び出し時にその値を設定することで、残りのデータを取得することができます。 未指定の場合は最初からの取得になります。

Number of digits

各データ型について、特別注釈のない場合の取りうる値は下記のとおりになります。

data type 取りうる値 最大印字文字数
float [-3.4028234663852886e+38, 3.4028234663852886e+38] 47
double [-1.7976931348623157e+308, 1.7976931348623157e+308] 317
boolean true or false 5
int32 [-2147483648, 2147483647] 11
int64 [-9223372036854775808, 9223372036854775807] 20

Devices

IoTデバイスを参照・操作するためのエンドポイント。

List Devices

処理概要

ディストリビューターに紐づけられたデバイスリストを取得します。 エンドユーザーによりアクティベーションが行われると、エンドユーザーの所属している組織がセットされます。

Authorizations:
query Parameters
cursor
string

リソース一覧を取得する際の取得開始位置を示すもので、一覧の途中からデータを抽出するために利用します。 ページング可能なコレクションリソースにおいて、データ量が多く、一度のAPI呼び出しで全てのデータを 取得できないケースでは、レスポンスにpaging.nextというプロパティが設定されます。 次回のAPI呼び出し時にその値を設定することで、残りのデータを取得することができます。 未指定の場合は最初から取得します。

limit
integer <int32> <= 100
Default: 50

一度に取得するリソース数(最大100)

ids
string

IDフィルタ。指定するとそのIDのリソースのみが取得できます。 IDをカンマ区切りで結合した文字列。一度に最大50件まで指定可能。 例) MwZLrkoAlr,2kO7DroQzP,mQkoA9opAg,eykoxz7RlE,meD7qjLXrd

organization_id
string

組織IDフィルタ。指定するとその組織のリソースのみが取得できます。

Responses

200

OK

400

Bad Request

401

Unauthorized

500

Internal Server Error

get/devices
https://smartdrive-api.com/v1.0/devices

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "meta":
    {
    },
  • "paging":
    {
    },
  • "data":
    [
    ]
}

Device last location

処理概要

デバイスの最終位置情報(lat, lng)とそのデータがアップロードされたタイムスタンプを取得します。

Authorizations:
path Parameters
device_code
required
string

対象になるデバイス

Responses

200

OK

get/devices/{device_code}/last_location
https://smartdrive-api.com/v1.0/devices/{device_code}/last_location

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "meta":
    {
    },
  • "data":
    {
    }
}

List device location logs

処理概要

クエリパラメーターで指定された時間範囲のデバイスの位置情報データ履歴を取得します。 ts_from, ts_toフィルタを利用する場合、期間が長いと応答が遅くなります。

Authorizations:
path Parameters
device_code
required
string

対象になるデバイス

query Parameters
ts_from
required
string <date-time>

タイムスタンプフィルタ。 指定するとその時刻以降のリソースのみが取得できます。(指定値を含む) formatはrfc3339。 例) 2014-01-01T00:00:00Z

ts_to
required
string <date-time>

タイムスタンプフィルタ。 指定するとその時刻以前のリソースのみが取得できます。(指定値を含む) formatはrfc3339。 ts_from よりも未来の日時である必要があります。 ts_from に指定する値から最大24時間まで未来の日時を指定できます。 例) 2014-02-01T00:00:00Z

cursor
string

リソース一覧を取得する際の取得開始位置を示すもので、一覧の途中からデータを抽出するために利用します。 ページング可能なコレクションリソースにおいて、データ量が多く、一度のAPI呼び出しで全てのデータを 取得できないケースでは、レスポンスにpaging.nextというプロパティが設定されます。 次回のAPI呼び出し時にその値を設定することで、残りのデータを取得することができます。 未指定の場合は最初から取得します。

limit
integer <int32> <= 3600
Default: 300

一度に取得するリソース数(最大3600)

Responses

200

OK

get/devices/{device_code}/locations
https://smartdrive-api.com/v1.0/devices/{device_code}/locations

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "meta":
    {
    },
  • "paging":
    {
    },
  • "data":
    [
    ]
}

List device last locations

処理概要

デバイス郡の最終位置情報(lat, lng)とそのデータがアップロードされたタイムスタンプを取得します。

Authorizations:
query Parameters
device_codes
required
Array of strings

取得対象になるデバイスコードのリスト。 カンマ区切り。 例) 07144A,07144B 同時に100件まで指定可能。 以下の場合、レスポンスにデバイスのデータは含まれません。

  • 無効なデバイスコード
  • 未利用なのど理由で、最終位置情報が未定義のデバイス

Responses

200

OK

get/device_last_locations
https://smartdrive-api.com/v1.0/device_last_locations

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "meta":
    {
    },
  • "data":
    [
    ]
}

Trips

走行を参照・操作するためのエンドポイント。

List trips

処理概要

走行一覧を取得します。 走行の終了時間昇順で取得されます。

Authorizations:
query Parameters
organization_id
required
string

組織IDフィルタ。指定するとその組織のリソースのみが取得できます。

ts_from
required
string <date-time>

タイムスタンプフィルタ。 指定するとその時刻以降のリソースのみが取得できます。(指定値を含む) formatはrfc3339。 例) 2014-01-01T00:00:00Z

ts_to
required
string <date-time>

タイムスタンプフィルタ。 指定するとその時刻以前のリソースのみが取得できます。(指定値を含む) formatはrfc3339。 例) 2014-02-01T00:00:00Z

cursor
string

リソース一覧を取得する際の取得開始位置を示すもので、一覧の途中からデータを抽出するために利用します。 ページング可能なコレクションリソースにおいて、データ量が多く、一度のAPI呼び出しで全てのデータを 取得できないケースでは、レスポンスにpaging.nextというプロパティが設定されます。 次回のAPI呼び出し時にその値を設定することで、残りのデータを取得することができます。 未指定の場合は最初から取得します。

limit
integer <int32> <= 100
Default: 50

一度に取得するリソース数(最大100)

Responses

200

OK

get/trips
https://smartdrive-api.com/v1.0/trips

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "meta":
    {
    },
  • "paging":
    {
    },
  • "data":
    [
    ]
}