API Usage Examples

Login

$ curl -sS -f \
    -H 'content-type:application/json' \
    -d '{"login": "${WATCHER_LOGIN}", "password": "${WATCHER_PASSWORD}"}' \
    ${WATCHER_URL}/vsaas/api/v2/auth/login \
    | jq -r '.session'

RYABq2AgwlgNXsqSkwSMOcX3InI

User List

$ curl -sS -f http://172.17.0.3/vsaas/api/v2/users \
    -H 'x-vsaas-session: RYABq2AgwlgNXsqSkwSMOcX3InI'

[
  {
    "id": 1,
    "login": "admin",
    "is_admin": true,
    "enabled": true,
    "organizations": [
      1
    ],
  }
]

Create User

$ curl -sS -f -X POST http://172.17.0.3/vsaas/api/v2/users \
    -H 'x-vsaas-session: RYABq2AgwlgNXsqSkwSMOcX3InI' \
    -H 'content-type: application/json' \
    -d '{"login": "test-user", "password": "123", "organization_id": 1}'

{
    "id": 2,
    "login": "test-user",
    "is_admin": false,
    "enabled": true,
    "organizations": [
        1
    ],
    ...
}

Change User’s attributes

$ curl -sS -f -X PUT http://172.17.0.3/vsaas/api/v2/users/2 \
    -H 'x-vsaas-session: RYABq2AgwlgNXsqSkwSMOcX3InI' \
    -H 'content-type: application/json' \
    -d '{"name": "John Smith"}'                                         
{
  "is_admin": false,
  "login": "test-user",
  "name": "John Smith",
  "enabled": true,
  "id": 2,
  "organizations": [
    1
  ],
}

Add a Camera

$ curl -sS -f -X POST http://172.17.0.3/vsaas/api/v2/cameras \
    -H 'x-vsaas-session: RYABq2AgwlgNXsqSkwSMOcX3InI' \
    -H 'content-type: application/json' \
    -d '{"title": "First Camera", "stream_url": "fake://clock"}'

{
  "name": "first.camera-543bf23382",
  "enabled": true,
  "title": "First Camera",
  "dvr_depth": null,
  "organization_id": 1,
  "playback_config": {
    "token": "2.TfBNgtUkAAEA"
  },
  "static": true,
  "stream_url": "fake://clock",
  ...
}

Change Camera’s Attributes

$ curl -sS -f -X PUT http://172.17.0.3/vsaas/api/v2/cameras/first.camera-543bf23382 \
    -H 'x-vsaas-session: RYABq2AgwlgNXsqSkwSMOcX3InI' \
    -H 'content-type: application/json' \
    -d '{"dvr_depth": 3}'

{
  "name": "first.camera-543bf23382",
  "enabled": true,
  "dvr_depth": 3,
  ...
}

Camera List

curl -sS -f -X GET http://172.17.0.3/vsaas/api/v2/cameras \
-H 'x-vsaas-session: RYABq2AgwlgNXsqSkwSMOcX3InI'  

[
    {
        "name": "first.camera-543bf23382",
        "enabled": true,
        "title": "First Camera",
        "dvr_depth": null,
        "organization_id": 1,
        "playback_config": {
            "token": "2.TfBNgtUkAAEA"
        },
        "static": true,
        "stream_url": "fake://clock",
        ...
    }
]

Get Playback URL for the Camera

$ curl -sS -f -X GET http://172.17.0.3/vsaas/api/v2/cameras/first.camera-543bf23382 \
    -H 'x-vsaas-session: RYABq2AgwlgNXsqSkwSMOcX3InI' \
    | jq '.playback_config.token'

"2.TfBNgtUkAAEA"

Use this value as a token to construct embed links or as a playback url for your player

  • HTML5 Embed http://172.17.0.3/vsaas/embed/first.camera-543bf23382?token=2.TfBNgtUkAAEA

  • MPEG TS http://172.17.0.3/first.camera-543bf23382/mpegts?token=2.TfBNgtUkAAEA

  • HLS http://172.17.0.3/first.camera-543bf23382/index.m3u8?token=2.TfBNgtUkAAEA

Organization List

Manage Users in the Organization