Skip to content

Seald Dashboard API Reference

Seald Dashboard API documentation

API Password authentication

This section describes the API to authenticate with a password. This is used in the dashboard, but should almost never be used programatically. Look at the "API Token authentication" section instead.

disableEventlog admin

GET /dashboardapi/v2/admin/disable_eventlog/

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

200 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

disableEventlog admin (POST)

POST /dashboardapi/v2/admin/disable_eventlog/

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Check dashboardapi session status

GET /dashboardapi/v2/admin/status/

Responses

StatusMeaningDescription
200OKnone

Send a password retrieval request

POST /dashboardapi/v2/admin/forgot_password/

If challenge is not sent, send an email to email with a challenge.
If challenge is set and new_password is not set, check that challenge is correct.
If challenge and new_password are set, change the password of the administrator.

Parameters

NameInTypeRequiredDescription
emailbodystring(email)true
challengebodystringfalse
new_passwordbodystring
Length: [ 8 .. 1024]
false
Request body samples
json
{
  "email": "user@example.com",
  "challenge": "string",
  "new_password": "stringst"
}
{
  "email": "user@example.com",
  "challenge": "string",
  "new_password": "stringst"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Generate a SSKS API Key

POST /dashboardapi/v2/admin/generate_ssks_apikey/

Generate a SSKS API Key

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Login an HTTP session to the dashboardapi

POST /dashboardapi/v2/admin/login/

Parameters

NameInTypeRequiredDescription
emailbodystring(email)true
passwordbodystringtrue
otpbodystringfalse
ttlbodyintegerfalse
Request body samples
json
{
  "email": "user@example.com",
  "password": "string",
  "otp": "",
  "ttl": 0
}
{
  "email": "user@example.com",
  "password": "string",
  "otp": "",
  "ttl": 0
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Logout from an HTTP session

POST /dashboardapi/v2/admin/logout/

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Set up a new password for dashboardapi

POST /dashboardapi/v2/admin/update_password/

Parameters

NameInTypeRequiredDescription
old_passwordbodystringtrue
new_passwordbodystring
Length: [ 8 .. 1024]
true
Request body samples
json
{
  "old_password": "string",
  "new_password": "stringst"
}
{
  "old_password": "string",
  "new_password": "stringst"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

API Token authentication

list apitokens

GET /dashboardapi/v2/apitokens/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» idstring(uuid)false
» createdstring(date-time)false
» valid_untilstring(date-time)¦nulltrue
» namestringtrue
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created": "2019-08-24T14:15:22Z",
      "valid_until": "2019-08-24T14:15:22Z",
      "name": "string"
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created": "2019-08-24T14:15:22Z",
      "valid_until": "2019-08-24T14:15:22Z",
      "name": "string"
    }
  ]
}

create apitokens

POST /dashboardapi/v2/apitokens/

Parameters

NameInTypeRequiredDescription
idbodystring(uuid)false
createdbodystring(date-time)false
valid_untilbodystring(date-time)¦nulltrue
namebodystringtrue
api_keybodystring(uuid)false
Request body samples
json
{
  "valid_until": "2019-08-24T14:15:22Z",
  "name": "string"
}
{
  "valid_until": "2019-08-24T14:15:22Z",
  "name": "string"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
idstring(uuid)false
createdstring(date-time)false
valid_untilstring(date-time)¦nulltrue
namestringtrue
api_keystring(uuid)false
Response body examples

201 Response

json
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created": "2019-08-24T14:15:22Z",
  "valid_until": "2019-08-24T14:15:22Z",
  "name": "string",
  "api_key": "7f819f8f-8220-4dcd-b7e3-37c81ead8b7a"
}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created": "2019-08-24T14:15:22Z",
  "valid_until": "2019-08-24T14:15:22Z",
  "name": "string",
  "api_key": "7f819f8f-8220-4dcd-b7e3-37c81ead8b7a"
}

destroy apitokens

DELETE /dashboardapi/v2/apitokens/{id}/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
204No Contentnone

Users management

list users

GET /dashboardapi/v2/users/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.
display_namequerystringfalseOnly match Users whose display name contains this.
emailquerystring(email)falseOnly match Users whose email address contains this.
email_all_statequerybooleanfalseIf true, Users with previously disabled email address will also match.
connector_valuequerystringfalseIf provided with connector_type, only match Users who have a connector matching this type and value.
connector_typequerystring
Allowed values: "MO", "EM", "PH", "AP"
falseIf provided with connector_value, only match Users who have a connector matching this type and value.
connector_all_statequerybooleanfalseIf true, Users with previously disabled connector will also match.
team_disabledquerybooleanfalseIf false, only match current non-revoked users. If true, only match Users who have been disabled from the team.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» idstring(uuid)true
» display_namestringtrue
» in_teamstringfalse
» is_groupstringfalse
» group_team_idstringfalse
» createdstring(date-time)true
» last_heartbeatstring(date-time)true
» last_usagestring(date-time)true
» primary_emailstringfalse
» team_disabledbooleantrue
» group_is_group_initializedstringfalse
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "display_name": "string",
      "in_team": "string",
      "is_group": "string",
      "group_team_id": "string",
      "created": "2019-08-24T14:15:22Z",
      "last_heartbeat": "2019-08-24T14:15:22Z",
      "last_usage": "2019-08-24T14:15:22Z",
      "primary_email": "string",
      "team_disabled": true,
      "group_is_group_initialized": "string"
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "display_name": "string",
      "in_team": "string",
      "is_group": "string",
      "group_team_id": "string",
      "created": "2019-08-24T14:15:22Z",
      "last_heartbeat": "2019-08-24T14:15:22Z",
      "last_usage": "2019-08-24T14:15:22Z",
      "primary_email": "string",
      "team_disabled": true,
      "group_is_group_initialized": "string"
    }
  ]
}

sigchainNotOk users

GET /dashboardapi/v2/users/sigchain_not_ok/

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
idstring(uuid)true
display_namestringtrue
in_teamstringfalse
is_groupstringfalse
group_team_idstringfalse
createdstring(date-time)true
last_heartbeatstring(date-time)true
last_usagestring(date-time)true
primary_emailstringfalse
team_disabledbooleantrue
group_is_group_initializedstringfalse
Response body examples

200 Response

json
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "display_name": "string",
  "in_team": "string",
  "is_group": "string",
  "group_team_id": "string",
  "created": "2019-08-24T14:15:22Z",
  "last_heartbeat": "2019-08-24T14:15:22Z",
  "last_usage": "2019-08-24T14:15:22Z",
  "primary_email": "string",
  "team_disabled": true,
  "group_is_group_initialized": "string"
}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "display_name": "string",
  "in_team": "string",
  "is_group": "string",
  "group_team_id": "string",
  "created": "2019-08-24T14:15:22Z",
  "last_heartbeat": "2019-08-24T14:15:22Z",
  "last_usage": "2019-08-24T14:15:22Z",
  "primary_email": "string",
  "team_disabled": true,
  "group_is_group_initialized": "string"
}

retrieve users

GET /dashboardapi/v2/users/{id}/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
display_namequerystringfalseOnly match Users whose display name contains this.
emailquerystring(email)falseOnly match Users whose email address contains this.
email_all_statequerybooleanfalseIf true, Users with previously disabled email address will also match.
connector_valuequerystringfalseIf provided with connector_type, only match Users who have a connector matching this type and value.
connector_typequerystring
Allowed values: "MO", "EM", "PH", "AP"
falseIf provided with connector_value, only match Users who have a connector matching this type and value.
connector_all_statequerybooleanfalseIf true, Users with previously disabled connector will also match.
team_disabledquerybooleanfalseIf false, only match current non-revoked users. If true, only match Users who have been disabled from the team.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
idstring(uuid)true
display_namestringtrue
in_teamstringfalse
is_groupstringfalse
group_team_idstringfalse
createdstring(date-time)true
last_heartbeatstring(date-time)true
last_usagestring(date-time)true
primary_emailstringfalse
team_disabledbooleantrue
group_is_group_initializedstringfalse
Response body examples

200 Response

json
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "display_name": "string",
  "in_team": "string",
  "is_group": "string",
  "group_team_id": "string",
  "created": "2019-08-24T14:15:22Z",
  "last_heartbeat": "2019-08-24T14:15:22Z",
  "last_usage": "2019-08-24T14:15:22Z",
  "primary_email": "string",
  "team_disabled": true,
  "group_is_group_initialized": "string"
}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "display_name": "string",
  "in_team": "string",
  "is_group": "string",
  "group_team_id": "string",
  "created": "2019-08-24T14:15:22Z",
  "last_heartbeat": "2019-08-24T14:15:22Z",
  "last_usage": "2019-08-24T14:15:22Z",
  "primary_email": "string",
  "team_disabled": true,
  "group_is_group_initialized": "string"
}

sigchain users

GET /dashboardapi/v2/users/{id}/sigchain/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
idstring(uuid)true
display_namestringtrue
in_teamstringfalse
is_groupstringfalse
group_team_idstringfalse
createdstring(date-time)true
last_heartbeatstring(date-time)true
last_usagestring(date-time)true
primary_emailstringfalse
team_disabledbooleantrue
group_is_group_initializedstringfalse
Response body examples

200 Response

json
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "display_name": "string",
  "in_team": "string",
  "is_group": "string",
  "group_team_id": "string",
  "created": "2019-08-24T14:15:22Z",
  "last_heartbeat": "2019-08-24T14:15:22Z",
  "last_usage": "2019-08-24T14:15:22Z",
  "primary_email": "string",
  "team_disabled": true,
  "group_is_group_initialized": "string"
}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "display_name": "string",
  "in_team": "string",
  "is_group": "string",
  "group_team_id": "string",
  "created": "2019-08-24T14:15:22Z",
  "last_heartbeat": "2019-08-24T14:15:22Z",
  "last_usage": "2019-08-24T14:15:22Z",
  "primary_email": "string",
  "team_disabled": true,
  "group_is_group_initialized": "string"
}

sigchainDetails users

GET /dashboardapi/v2/users/{id}/sigchain_details/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
idstring(uuid)true
display_namestringtrue
in_teamstringfalse
is_groupstringfalse
group_team_idstringfalse
createdstring(date-time)true
last_heartbeatstring(date-time)true
last_usagestring(date-time)true
primary_emailstringfalse
team_disabledbooleantrue
group_is_group_initializedstringfalse
Response body examples

200 Response

json
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "display_name": "string",
  "in_team": "string",
  "is_group": "string",
  "group_team_id": "string",
  "created": "2019-08-24T14:15:22Z",
  "last_heartbeat": "2019-08-24T14:15:22Z",
  "last_usage": "2019-08-24T14:15:22Z",
  "primary_email": "string",
  "team_disabled": true,
  "group_is_group_initialized": "string"
}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "display_name": "string",
  "in_team": "string",
  "is_group": "string",
  "group_team_id": "string",
  "created": "2019-08-24T14:15:22Z",
  "last_heartbeat": "2019-08-24T14:15:22Z",
  "last_usage": "2019-08-24T14:15:22Z",
  "primary_email": "string",
  "team_disabled": true,
  "group_is_group_initialized": "string"
}

Automatic removal of a user

POST /dashboardapi/v2/users/{id}/full_revoke/

This endpoint will revoke all devices of a user, then will disable him from the team.
The endpoint launches an asynchronous task that should take less than a second for small users, but up to a minute for users with many devices. So you might need to wait to see it applied.

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Check sigchain integrity of a user or a group

POST /dashboardapi/v2/users/{id}/sigchain_checks/

This endpoint will manually launch a sigchain integrity check (which is otherwise automatically scheduled on a daily basis). The following checks will be performed :

  • Sigchain compliance (transaction, signature, and consistency);
  • Whether or not what's written in sigchain is the same than in database.

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
createdstring(date-time)true
bearduser_idstring(uuid)true
last_check_datetimestring(date-time)true
last_check_is_okbooleantrue
last_check_crashedbooleantrue
last_check_skippedbooleantrue
notificationsobjecttrue
Response body examples

201 Response

json
{
  "created": "2019-08-24T14:15:22Z",
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "last_check_datetime": "2019-08-24T14:15:22Z",
  "last_check_is_ok": true,
  "last_check_crashed": true,
  "last_check_skipped": true,
  "notifications": {}
}
{
  "created": "2019-08-24T14:15:22Z",
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "last_check_datetime": "2019-08-24T14:15:22Z",
  "last_check_is_ok": true,
  "last_check_crashed": true,
  "last_check_skipped": true,
  "notifications": {}
}

teamUserDisable users

POST /dashboardapi/v2/users/{id}/team_user_disable/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Group management

list groups

GET /dashboardapi/v2/groups/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» createdstring(date-time)true
» is_group_initializedbooleantrue
» bearduserobjecttrue
»» idstring(uuid)true
»» display_namestringtrue
» device_idstring(uuid)true
» primary_emailstringfalse
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "created": "2019-08-24T14:15:22Z",
      "is_group_initialized": true,
      "bearduser": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "display_name": "string"
      },
      "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940",
      "primary_email": "string"
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "created": "2019-08-24T14:15:22Z",
      "is_group_initialized": true,
      "bearduser": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "display_name": "string"
      },
      "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940",
      "primary_email": "string"
    }
  ]
}

create groups

POST /dashboardapi/v2/groups/

Parameters

NameInTypeRequiredDescription
group_namebodystring
Length: [ 1 .. 64]
false
encrypt_pubkeybodystring
Length: [ 10 .. 2048]
true
signing_pubkeybodystring
Length: [ 10 .. 2048]
true
encrypted_encryption_privkeybodystring
Length: [ 10 .. 4096]
true
encrypted_signing_privkeybodystring
Length: [ 10 .. 4096]
true
membersbody[string]true
adminsbody[string]
Default: []
false
message_keysbody[object]true
» created_for_keybodystring(uuid)true
» encrypted_message_keybodystringtrue
» created_for_key_hashbodystringfalse
Request body samples
json
{
  "group_name": "",
  "encrypt_pubkey": "stringstri",
  "signing_pubkey": "stringstri",
  "encrypted_encryption_privkey": "stringstri",
  "encrypted_signing_privkey": "stringstri",
  "members": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ],
  "admins": [],
  "message_keys": [
    {
      "created_for_key": "8c64c67e-80c8-4b6b-bb2c-9ae3b4ae7b04",
      "encrypted_message_key": "string",
      "created_for_key_hash": ""
    }
  ]
}
{
  "group_name": "",
  "encrypt_pubkey": "stringstri",
  "signing_pubkey": "stringstri",
  "encrypted_encryption_privkey": "stringstri",
  "encrypted_signing_privkey": "stringstri",
  "members": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ],
  "admins": [],
  "message_keys": [
    {
      "created_for_key": "8c64c67e-80c8-4b6b-bb2c-9ae3b4ae7b04",
      "encrypted_message_key": "string",
      "created_for_key_hash": ""
    }
  ]
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

retrieve groups

GET /dashboardapi/v2/groups/{id}/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

200 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

groupdevices groups

GET /dashboardapi/v2/groups/{id}/groupdevices/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

200 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

members groups

GET /dashboardapi/v2/groups/{id}/members/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

200 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

members groups (POST)

POST /dashboardapi/v2/groups/{id}/members/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
edited_beardusers_device_messagesbodyobjecttrue
transaction_data_membersbodyobjectfalse
added_adminsbody[string]false
Request body samples
json
{
  "edited_beardusers_device_messages": {},
  "transaction_data_members": false,
  "added_admins": [
    "string"
  ]
}
{
  "edited_beardusers_device_messages": {},
  "transaction_data_members": false,
  "added_admins": [
    "string"
  ]
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

members groups (PATCH)

PATCH /dashboardapi/v2/groups/{id}/members/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
edited_beardusers_device_messagesbodyobjecttrue
transaction_data_membersbodyobjectfalse
added_adminsbody[string]false
Request body samples
json
{
  "edited_beardusers_device_messages": {},
  "transaction_data_members": false,
  "added_admins": [
    "string"
  ]
}
{
  "edited_beardusers_device_messages": {},
  "transaction_data_members": false,
  "added_admins": [
    "string"
  ]
}

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

200 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

members groups (DELETE)

DELETE /dashboardapi/v2/groups/{id}/members/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
204No Contentnone

fullRevoke groups

POST /dashboardapi/v2/groups/{id}/full_revoke/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

initSigchain groups

POST /dashboardapi/v2/groups/{id}/init_sigchain/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
transaction_databodyobjecttrue
transaction_data_membersbodyobjecttrue
Request body samples
json
{
  "transaction_data": {},
  "transaction_data_members": {}
}
{
  "transaction_data": {},
  "transaction_data_members": {}
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

rename groups

POST /dashboardapi/v2/groups/{id}/rename/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
group_namebodystring
Length: [ 1 .. 64]
true
Request body samples
json
{
  "group_name": "string"
}
{
  "group_name": "string"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

renew groups

POST /dashboardapi/v2/groups/{id}/renew/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
transaction_databodyobjecttrue
encrypt_pubkeybodystring
Length: [ 10 .. 2048]
true
signing_pubkeybodystring
Length: [ 10 .. 2048]
true
encrypted_encryption_privkeybodystring
Length: [ 10 .. 4096]
true
encrypted_signing_privkeybodystring
Length: [ 10 .. 4096]
true
message_keysbody[object]true
» created_for_keybodystring(uuid)true
» encrypted_message_keybodystringtrue
» created_for_key_hashbodystringfalse
Request body samples
json
{
  "transaction_data": {},
  "encrypt_pubkey": "stringstri",
  "signing_pubkey": "stringstri",
  "encrypted_encryption_privkey": "stringstri",
  "encrypted_signing_privkey": "stringstri",
  "message_keys": [
    {
      "created_for_key": "8c64c67e-80c8-4b6b-bb2c-9ae3b4ae7b04",
      "encrypted_message_key": "string",
      "created_for_key_hash": ""
    }
  ]
}
{
  "transaction_data": {},
  "encrypt_pubkey": "stringstri",
  "signing_pubkey": "stringstri",
  "encrypted_encryption_privkey": "stringstri",
  "encrypted_signing_privkey": "stringstri",
  "message_keys": [
    {
      "created_for_key": "8c64c67e-80c8-4b6b-bb2c-9ae3b4ae7b04",
      "encrypted_message_key": "string",
      "created_for_key_hash": ""
    }
  ]
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

serverDeleteMembers groups

POST /dashboardapi/v2/groups/{id}/server_delete_members/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
bearduser_idsbody[string]true
Request body samples
json
{
  "bearduser_ids": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ]
}
{
  "bearduser_ids": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ]
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Devices management

list keys

GET /dashboardapi/v2/keys/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.
userquerystring(uuid)trueOnly match device Keys related to this user.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» idstring(uuid)true
» createdstring(date-time)true
» device_namestringtrue
» statestringtrue
» bearduser_idstring(uuid)true
» last_seenobjecttrue
»» successbooleantrue
»» ipstringtrue
»» key_idstring(uuid)true
»» bearduser_idstring(uuid)true
»» datetimestring(date-time)true
»» locationobjecttrue
»» user_agentstringtrue
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created": "2019-08-24T14:15:22Z",
      "device_name": "string",
      "state": "string",
      "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
      "last_seen": {
        "success": true,
        "ip": "string",
        "key_id": "1e779c8a-6786-4c89-b7c3-a6666f5fd6b5",
        "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
        "datetime": "2019-08-24T14:15:22Z",
        "location": {},
        "user_agent": "string"
      }
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created": "2019-08-24T14:15:22Z",
      "device_name": "string",
      "state": "string",
      "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
      "last_seen": {
        "success": true,
        "ip": "string",
        "key_id": "1e779c8a-6786-4c89-b7c3-a6666f5fd6b5",
        "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
        "datetime": "2019-08-24T14:15:22Z",
        "location": {},
        "user_agent": "string"
      }
    }
  ]
}

findPublicKeys keys

GET /dashboardapi/v2/keys/find_public_keys/

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
idstring(uuid)true
createdstring(date-time)true
device_namestringtrue
statestringtrue
bearduser_idstring(uuid)true
last_seenobjecttrue
» successbooleantrue
» ipstringtrue
» key_idstring(uuid)true
» bearduser_idstring(uuid)true
» datetimestring(date-time)true
» locationobjecttrue
» user_agentstringtrue
Response body examples

200 Response

json
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created": "2019-08-24T14:15:22Z",
  "device_name": "string",
  "state": "string",
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "last_seen": {
    "success": true,
    "ip": "string",
    "key_id": "1e779c8a-6786-4c89-b7c3-a6666f5fd6b5",
    "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
    "datetime": "2019-08-24T14:15:22Z",
    "location": {},
    "user_agent": "string"
  }
}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created": "2019-08-24T14:15:22Z",
  "device_name": "string",
  "state": "string",
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "last_seen": {
    "success": true,
    "ip": "string",
    "key_id": "1e779c8a-6786-4c89-b7c3-a6666f5fd6b5",
    "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
    "datetime": "2019-08-24T14:15:22Z",
    "location": {},
    "user_agent": "string"
  }
}

revoke keys

POST /dashboardapi/v2/keys/{id}/revoke/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Messages management

list messages

GET /dashboardapi/v2/messages/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.
recipientquerystring(uuid)falseOnly match Messages which have this user or group as recipient. If recipient is a user and the user has access to the Message indirectly, through a group, it will only show if the user has already accessed the Message at least once.
ownerquerystring(uuid)falseOnly match Messages which have this user as owner, which means that they have sent the message.
meta_dataquerystringfalseOnly match Messages whose meta data includes this.
hide_revokedquerystringfalseIf set exactly to true, messages that are revoked for given recipient will be filtered out.
only_visiblequerybooleanfalseIf true, only match Messages created by a user, and not service messages.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» idstring(uuid)true
» owner_idstring(uuid)true
» createdstring(date-time)true
» meta_dataobjecttrue
» allow_downloadbooleantrue
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
      "created": "2019-08-24T14:15:22Z",
      "meta_data": {},
      "allow_download": true
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
      "created": "2019-08-24T14:15:22Z",
      "meta_data": {},
      "allow_download": true
    }
  ]
}

retrieve messages

GET /dashboardapi/v2/messages/{id}/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
recipientquerystring(uuid)falseOnly match Messages which have this user or group as recipient. If recipient is a user and the user has access to the Message indirectly, through a group, it will only show if the user has already accessed the Message at least once.
ownerquerystring(uuid)falseOnly match Messages which have this user as owner, which means that they have sent the message.
meta_dataquerystringfalseOnly match Messages whose meta data includes this.
hide_revokedquerystringfalseIf set exactly to true, messages that are revoked for given recipient will be filtered out.
only_visiblequerybooleanfalseIf true, only match Messages created by a user, and not service messages.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
idstring(uuid)true
owner_idstring(uuid)true
createdstring(date-time)true
meta_dataobjecttrue
allow_downloadbooleantrue
is_everyone_revokedstringfalse
nb_readstringfalse
self_destruct_datestringfalse
Response body examples

200 Response

json
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  "created": "2019-08-24T14:15:22Z",
  "meta_data": {},
  "allow_download": true,
  "is_everyone_revoked": "string",
  "nb_read": "string",
  "self_destruct_date": "string"
}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  "created": "2019-08-24T14:15:22Z",
  "meta_data": {},
  "allow_download": true,
  "is_everyone_revoked": "string",
  "nb_read": "string",
  "self_destruct_date": "string"
}

availableAdminkeys messages

GET /dashboardapi/v2/messages/{id}/available_adminkeys/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
recipientquerystring(uuid)falseOnly match Messages which have this user or group as recipient. If recipient is a user and the user has access to the Message indirectly, through a group, it will only show if the user has already accessed the Message at least once.
ownerquerystring(uuid)falseOnly match Messages which have this user as owner, which means that they have sent the message.
meta_dataquerystringfalseOnly match Messages whose meta data includes this.
hide_revokedquerystringfalseIf set exactly to true, messages that are revoked for given recipient will be filtered out.
only_visiblequerybooleanfalseIf true, only match Messages created by a user, and not service messages.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

200 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

recipients messages

GET /dashboardapi/v2/messages/{id}/recipients/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
recipientquerystring(uuid)falseOnly match Messages which have this user or group as recipient. If recipient is a user and the user has access to the Message indirectly, through a group, it will only show if the user has already accessed the Message at least once.
ownerquerystring(uuid)falseOnly match Messages which have this user as owner, which means that they have sent the message.
meta_dataquerystringfalseOnly match Messages whose meta data includes this.
hide_revokedquerystringfalseIf set exactly to true, messages that are revoked for given recipient will be filtered out.
only_visiblequerybooleanfalseIf true, only match Messages created by a user, and not service messages.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
user_idstring(uuid)true
Response body examples

200 Response

json
{
  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}
{
  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

addEncryptedMessageKey messages

POST /dashboardapi/v2/messages/{id}/add_encrypted_message_key/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
recipientquerystring(uuid)falseOnly match Messages which have this user or group as recipient. If recipient is a user and the user has access to the Message indirectly, through a group, it will only show if the user has already accessed the Message at least once.
ownerquerystring(uuid)falseOnly match Messages which have this user as owner, which means that they have sent the message.
meta_dataquerystringfalseOnly match Messages whose meta data includes this.
hide_revokedquerystringfalseIf set exactly to true, messages that are revoked for given recipient will be filtered out.
only_visiblequerybooleanfalseIf true, only match Messages created by a user, and not service messages.
encrypted_message_keysbody[object]true
» created_for_keybodystring(uuid)true
» encrypted_message_keybodystringtrue
» created_for_key_hashbodystringfalse
Request body samples
json
{
  "encrypted_message_keys": [
    {
      "created_for_key": "8c64c67e-80c8-4b6b-bb2c-9ae3b4ae7b04",
      "encrypted_message_key": "string",
      "created_for_key_hash": ""
    }
  ]
}
{
  "encrypted_message_keys": [
    {
      "created_for_key": "8c64c67e-80c8-4b6b-bb2c-9ae3b4ae7b04",
      "encrypted_message_key": "string",
      "created_for_key_hash": ""
    }
  ]
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

addEntrustedMessageKey messages

POST /dashboardapi/v2/messages/{id}/add_entrusted_message_key/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
recipientquerystring(uuid)falseOnly match Messages which have this user or group as recipient. If recipient is a user and the user has access to the Message indirectly, through a group, it will only show if the user has already accessed the Message at least once.
ownerquerystring(uuid)falseOnly match Messages which have this user as owner, which means that they have sent the message.
meta_dataquerystringfalseOnly match Messages whose meta data includes this.
hide_revokedquerystringfalseIf set exactly to true, messages that are revoked for given recipient will be filtered out.
only_visiblequerybooleanfalseIf true, only match Messages created by a user, and not service messages.
emailbodystring(email)false
created_for_valuebodystringfalse
created_for_typebodystringfalse
message_keybodystringtrue
created_for_additional_factorbodyobjectfalse
Request body samples
json
{
  "email": "user@example.com",
  "created_for_value": "string",
  "created_for_type": "string",
  "message_key": "string",
  "created_for_additional_factor": {}
}
{
  "email": "user@example.com",
  "created_for_value": "string",
  "created_for_type": "string",
  "message_key": "string",
  "created_for_additional_factor": {}
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

allowDownload messages

POST /dashboardapi/v2/messages/{id}/allow_download/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
recipientquerystring(uuid)falseOnly match Messages which have this user or group as recipient. If recipient is a user and the user has access to the Message indirectly, through a group, it will only show if the user has already accessed the Message at least once.
ownerquerystring(uuid)falseOnly match Messages which have this user as owner, which means that they have sent the message.
meta_dataquerystringfalseOnly match Messages whose meta data includes this.
hide_revokedquerystringfalseIf set exactly to true, messages that are revoked for given recipient will be filtered out.
only_visiblequerybooleanfalseIf true, only match Messages created by a user, and not service messages.
allow_downloadbodybooleantrue
Request body samples
json
{
  "allow_download": true
}
{
  "allow_download": true
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

findRecoverableMessageKey messages

POST /dashboardapi/v2/messages/{id}/find_recoverable_message_key/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
bearduser_idbodystring(uuid)true
adminkey_idbodystring(uuid)true
Request body samples
json
{
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "adminkey_id": "4fab4ba1-c221-4702-93a3-b774838ea8bd"
}
{
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "adminkey_id": "4fab4ba1-c221-4702-93a3-b774838ea8bd"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Revoke a message

POST /dashboardapi/v2/messages/{id}/revoke/

If multiple recipients or all are provided, the response body format is changed to :

VariableTypeDescription
revokedString[]Users that have been revoked for corresponding message
erroredString[]Users that has not been revoked because something went wrong (eg. : if the user does not exist)

Parameters

NameInTypeRequiredDescription
idpathstringtrue
recipientquerystring(uuid)falseOnly match Messages which have this user or group as recipient. If recipient is a user and the user has access to the Message indirectly, through a group, it will only show if the user has already accessed the Message at least once.
ownerquerystring(uuid)falseOnly match Messages which have this user as owner, which means that they have sent the message.
meta_dataquerystringfalseOnly match Messages whose meta data includes this.
hide_revokedquerystringfalseIf set exactly to true, messages that are revoked for given recipient will be filtered out.
only_visiblequerybooleanfalseIf true, only match Messages created by a user, and not service messages.
userbodystring(uuid)false
usersbody[string]false
emailbodystringfalse
entrusted_created_for_valuebodystringfalse
entrusted_created_for_typebodystringfalse
entrusted_usersbody[object]false
» entrusted_created_for_valuebodystringfalse
» entrusted_created_for_typebodystringfalse
allbodybooleanfalse
Request body samples
json
{
  "user": "76f62a58-5404-486d-9afc-07bded328704",
  "users": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ],
  "email": "string",
  "entrusted_created_for_value": "string",
  "entrusted_created_for_type": "string",
  "entrusted_users": [
    {
      "entrusted_created_for_value": "string",
      "entrusted_created_for_type": "string"
    }
  ],
  "all": true
}
{
  "user": "76f62a58-5404-486d-9afc-07bded328704",
  "users": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ],
  "email": "string",
  "entrusted_created_for_value": "string",
  "entrusted_created_for_type": "string",
  "entrusted_users": [
    {
      "entrusted_created_for_value": "string",
      "entrusted_created_for_type": "string"
    }
  ],
  "all": true
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

selfDestructDate messages

POST /dashboardapi/v2/messages/{id}/self_destruct_date/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
recipientquerystring(uuid)falseOnly match Messages which have this user or group as recipient. If recipient is a user and the user has access to the Message indirectly, through a group, it will only show if the user has already accessed the Message at least once.
ownerquerystring(uuid)falseOnly match Messages which have this user as owner, which means that they have sent the message.
meta_dataquerystringfalseOnly match Messages whose meta data includes this.
hide_revokedquerystringfalseIf set exactly to true, messages that are revoked for given recipient will be filtered out.
only_visiblequerybooleanfalseIf true, only match Messages created by a user, and not service messages.
datebodystring(date)¦nulltrue
Request body samples
json
{
  "date": "2019-08-24"
}
{
  "date": "2019-08-24"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Message access management

list messageaccesses

GET /dashboardapi/v2/messageaccesses/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.
messagequerystring(uuid)trueOnly match MessageAccesses related to this message.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» createdstring(date-time)true
» added_by_idstring(uuid)true
» message_idstring(uuid)true
» bearduser_idstring(uuid)true
» path[string]true
» read_firststring(date-time)true
» read_laststring(date-time)true
» read_timeintegertrue
» revokedbooleantrue
» revoked_datestring(date-time)true
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "created": "2019-08-24T14:15:22Z",
      "added_by_id": "d510dc72-551b-40c1-bb6a-2bcfb13ad89f",
      "message_id": "d7d9d9fd-478f-40e6-b651-49b7f19878a2",
      "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
      "path": [
        "497f6eca-6276-4993-bfeb-53cbbbba6f08"
      ],
      "read_first": "2019-08-24T14:15:22Z",
      "read_last": "2019-08-24T14:15:22Z",
      "read_time": 0,
      "revoked": true,
      "revoked_date": "2019-08-24T14:15:22Z"
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "created": "2019-08-24T14:15:22Z",
      "added_by_id": "d510dc72-551b-40c1-bb6a-2bcfb13ad89f",
      "message_id": "d7d9d9fd-478f-40e6-b651-49b7f19878a2",
      "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
      "path": [
        "497f6eca-6276-4993-bfeb-53cbbbba6f08"
      ],
      "read_first": "2019-08-24T14:15:22Z",
      "read_last": "2019-08-24T14:15:22Z",
      "read_time": 0,
      "revoked": true,
      "revoked_date": "2019-08-24T14:15:22Z"
    }
  ]
}

Entrusted Keys

list entrustedmessagekeys

GET /dashboardapi/v2/entrustedmessagekeys/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.
messagequerystring(uuid)trueMessage ID of the requested message.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» createdstring(date-time)true
» created_for_valuestringtrue
» created_for_typestringtrue
» converted_for_idstring(uuid)true
» read_firststring(date-time)true
» read_laststring(date-time)true
» read_timeintegertrue
» revokedbooleantrue
» revoked_datestring(date-time)true
» replies[string]true
» created_for_additional_factorstringfalse
» created_forstringfalse
» created_for_emailstringfalse
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "created": "2019-08-24T14:15:22Z",
      "created_for_value": "string",
      "created_for_type": "string",
      "converted_for_id": "a2bcc1f6-dae3-48fe-b858-28d4824682c1",
      "read_first": "2019-08-24T14:15:22Z",
      "read_last": "2019-08-24T14:15:22Z",
      "read_time": 0,
      "revoked": true,
      "revoked_date": "2019-08-24T14:15:22Z",
      "replies": [
        "2019-08-24T14:15:22Z"
      ],
      "created_for_additional_factor": "string",
      "created_for": "string",
      "created_for_email": "string"
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "created": "2019-08-24T14:15:22Z",
      "created_for_value": "string",
      "created_for_type": "string",
      "converted_for_id": "a2bcc1f6-dae3-48fe-b858-28d4824682c1",
      "read_first": "2019-08-24T14:15:22Z",
      "read_last": "2019-08-24T14:15:22Z",
      "read_time": 0,
      "revoked": true,
      "revoked_date": "2019-08-24T14:15:22Z",
      "replies": [
        "2019-08-24T14:15:22Z"
      ],
      "created_for_additional_factor": "string",
      "created_for": "string",
      "created_for_email": "string"
    }
  ]
}

Anonymous access management

Some actions can be performed on client side (or any other third party), without sharing any critical credential.

For authenticating those actions, you can have a shared secret between your backend and DashboardAPI, enabling your backend generating a JWT with restricted privileges.

A JWTSharedSecret is a secret with restricted permissions (you can limit what privilege a JWTSharedSecret can put in a JWT). The following permissions are available :

Permission IDPermission nameEndpoint
-1PERMISSION_ALL/api/anonymous/*
0PERMISSION_ANONYMOUS_CREATE_MESSAGE/api/anonymous/message_create/
1PERMISSION_ANONYMOUS_RETRIEVE_KEYS/api/anonymous/key_find/
2PERMISSION_ANONYMOUS_RETRIEVE_SIGCHAIN/api/anonymous/sigchain_find/

List all JWTSharedSecret

GET /dashboardapi/v2/jwtsharedsecret/

List all JWTSharedSecret

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» idstring(uuid)false
» createdstring(date-time)false
» shared_secretstringfalse
» permissions[integer]true
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created": "2019-08-24T14:15:22Z",
      "shared_secret": "string",
      "permissions": [
        -1
      ]
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created": "2019-08-24T14:15:22Z",
      "shared_secret": "string",
      "permissions": [
        -1
      ]
    }
  ]
}

Generate a JWTSharedSecret

POST /dashboardapi/v2/jwtsharedsecret/

Generate a JWTSharedSecret

Parameters

NameInTypeRequiredDescription
idbodystring(uuid)false
createdbodystring(date-time)false
shared_secretbodystringfalse
permissionsbody[integer]true
Request body samples
json
{
  "permissions": [
    -1
  ]
}
{
  "permissions": [
    -1
  ]
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
idstring(uuid)false
createdstring(date-time)false
shared_secretstringfalse
permissions[integer]true
Response body examples

201 Response

json
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created": "2019-08-24T14:15:22Z",
  "shared_secret": "string",
  "permissions": [
    -1
  ]
}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created": "2019-08-24T14:15:22Z",
  "shared_secret": "string",
  "permissions": [
    -1
  ]
}

Delete a JWTSharedSecret

DELETE /dashboardapi/v2/jwtsharedsecret/{id}/

Delete a JWTSharedSecret

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
204No Contentnone

Prevalidated connectors token

list domainvalidationkeys

GET /dashboardapi/v2/domainvalidationkeys/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» idstringtrue
» keystringtrue
» domainstringtrue
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "string",
      "key": "string",
      "domain": "string"
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "string",
      "key": "string",
      "domain": "string"
    }
  ]
}

refresh domainvalidationkeys

POST /dashboardapi/v2/domainvalidationkeys/{id}/refresh/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Email and SDK connectors

list connectors

GET /dashboardapi/v2/connectors/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.
userquerystring(uuid)trueUser ID of the requested user.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» idstring(uuid)true
» typestringtrue
» statestringtrue
» valuestringtrue
» createdstring(date-time)true
» updatedstring(date-time)true
» bearduser_idstring(uuid)true
» is_primary_emailstringfalse
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "type": "string",
      "state": "string",
      "value": "string",
      "created": "2019-08-24T14:15:22Z",
      "updated": "2019-08-24T14:15:22Z",
      "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
      "is_primary_email": "string"
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "type": "string",
      "state": "string",
      "value": "string",
      "created": "2019-08-24T14:15:22Z",
      "updated": "2019-08-24T14:15:22Z",
      "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
      "is_primary_email": "string"
    }
  ]
}

create connectors

POST /dashboardapi/v2/connectors/

Parameters

NameInTypeRequiredDescription
typebodystring
Allowed values: "EM", "AP"
true
valuebodystringtrue
bearduser_idbodystring(uuid)true
domainvalidationkey_idbodystring(uuid)true
forcebodybooleantrue
Request body samples
json
{
  "type": "EM",
  "value": "string",
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "domainvalidationkey_id": "7bb1b8f4-02bd-4268-8cd6-3f9663c5c430",
  "force": true
}
{
  "type": "EM",
  "value": "string",
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "domainvalidationkey_id": "7bb1b8f4-02bd-4268-8cd6-3f9663c5c430",
  "force": true
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
idstring(uuid)true
typestringtrue
statestringtrue
valuestringtrue
createdstring(date-time)true
updatedstring(date-time)true
bearduser_idstring(uuid)true
is_primary_emailstringfalse
Response body examples

201 Response

json
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "type": "string",
  "state": "string",
  "value": "string",
  "created": "2019-08-24T14:15:22Z",
  "updated": "2019-08-24T14:15:22Z",
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "is_primary_email": "string"
}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "type": "string",
  "state": "string",
  "value": "string",
  "created": "2019-08-24T14:15:22Z",
  "updated": "2019-08-24T14:15:22Z",
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "is_primary_email": "string"
}

setPrimary connectors

POST /dashboardapi/v2/connectors/{id}/set_primary/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

destroy connectors

DELETE /dashboardapi/v2/connectors/{id}/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
204No Contentnone

Event logs

list eventlogs

GET /dashboardapi/v2/eventlogs/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.
date_gtquerystring(date-time)falseOnly match events more recent than provided date.
date_ltquerystring(date-time)falseOnly match events older than provided date.
userquerystring(uuid)falseOnly match events related to this user.
messagequerystring(uuid)falseOnly match events related to this message.
devicequerystring(uuid)falseOnly match events related to this device.
emailquerystring(email)falseOnly match events related to this email.
action_inquerystringfalseOnly match events of these action types. Multiple actions, separeted by `

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» datestring(date-time)true
» user_idstring(uuid)true
» user2_idstring(uuid)true
» device_idstring(uuid)true
» messageobjecttrue
»» idstring(uuid)true
»» owner_idstring(uuid)true
»» createdstring(date-time)true
»» meta_dataobjecttrue
»» allow_downloadbooleantrue
» emailstringtrue
» ipstringtrue
» geoipobjecttrue
» actionstringtrue
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "date": "2019-08-24T14:15:22Z",
      "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
      "user2_id": "d30342ed-2e79-4325-86c2-755c2ad935ba",
      "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940",
      "message": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
        "created": "2019-08-24T14:15:22Z",
        "meta_data": {},
        "allow_download": true
      },
      "email": "string",
      "ip": "string",
      "geoip": {},
      "action": "string"
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "date": "2019-08-24T14:15:22Z",
      "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
      "user2_id": "d30342ed-2e79-4325-86c2-755c2ad935ba",
      "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940",
      "message": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
        "created": "2019-08-24T14:15:22Z",
        "meta_data": {},
        "allow_download": true
      },
      "email": "string",
      "ip": "string",
      "geoip": {},
      "action": "string"
    }
  ]
}

retrieve eventlogs

GET /dashboardapi/v2/eventlogs/{id}/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
date_gtquerystring(date-time)falseOnly match events more recent than provided date.
date_ltquerystring(date-time)falseOnly match events older than provided date.
userquerystring(uuid)falseOnly match events related to this user.
messagequerystring(uuid)falseOnly match events related to this message.
devicequerystring(uuid)falseOnly match events related to this device.
emailquerystring(email)falseOnly match events related to this email.
action_inquerystringfalseOnly match events of these action types. Multiple actions, separeted by `

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
datestring(date-time)true
user_idstring(uuid)true
user2_idstring(uuid)true
device_idstring(uuid)true
messageobjecttrue
» idstring(uuid)true
» owner_idstring(uuid)true
» createdstring(date-time)true
» meta_dataobjecttrue
» allow_downloadbooleantrue
emailstringtrue
ipstringtrue
geoipobjecttrue
actionstringtrue
Response body examples

200 Response

json
{
  "date": "2019-08-24T14:15:22Z",
  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  "user2_id": "d30342ed-2e79-4325-86c2-755c2ad935ba",
  "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940",
  "message": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
    "created": "2019-08-24T14:15:22Z",
    "meta_data": {},
    "allow_download": true
  },
  "email": "string",
  "ip": "string",
  "geoip": {},
  "action": "string"
}
{
  "date": "2019-08-24T14:15:22Z",
  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  "user2_id": "d30342ed-2e79-4325-86c2-755c2ad935ba",
  "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940",
  "message": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
    "created": "2019-08-24T14:15:22Z",
    "meta_data": {},
    "allow_download": true
  },
  "email": "string",
  "ip": "string",
  "geoip": {},
  "action": "string"
}

export eventlogs

POST /dashboardapi/v2/eventlogs/export/

Parameters

NameInTypeRequiredDescription
date_minbodystring(date-time)true
date_maxbodystring(date-time)true
Request body samples
json
{
  "date_min": "2019-08-24T14:15:22Z",
  "date_max": "2019-08-24T14:15:22Z"
}
{
  "date_min": "2019-08-24T14:15:22Z",
  "date_max": "2019-08-24T14:15:22Z"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Login logs

list loginlogs

GET /dashboardapi/v2/loginlogs/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.
userquerystring(uuid)trueOnly match LoginLogs related to this user.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» successbooleantrue
» ipstringtrue
» key_idstring(uuid)true
» bearduser_idstring(uuid)true
» datetimestring(date-time)true
» locationobjecttrue
» user_agentstringtrue
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "success": true,
      "ip": "string",
      "key_id": "1e779c8a-6786-4c89-b7c3-a6666f5fd6b5",
      "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
      "datetime": "2019-08-24T14:15:22Z",
      "location": {},
      "user_agent": "string"
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "success": true,
      "ip": "string",
      "key_id": "1e779c8a-6786-4c89-b7c3-a6666f5fd6b5",
      "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
      "datetime": "2019-08-24T14:15:22Z",
      "location": {},
      "user_agent": "string"
    }
  ]
}

retrieve loginlogs

GET /dashboardapi/v2/loginlogs/{id}/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
userquerystring(uuid)trueOnly match LoginLogs related to this user.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
successbooleantrue
ipstringtrue
key_idstring(uuid)true
bearduser_idstring(uuid)true
datetimestring(date-time)true
locationobjecttrue
user_agentstringtrue
Response body examples

200 Response

json
{
  "success": true,
  "ip": "string",
  "key_id": "1e779c8a-6786-4c89-b7c3-a6666f5fd6b5",
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "datetime": "2019-08-24T14:15:22Z",
  "location": {},
  "user_agent": "string"
}
{
  "success": true,
  "ip": "string",
  "key_id": "1e779c8a-6786-4c89-b7c3-a6666f5fd6b5",
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "datetime": "2019-08-24T14:15:22Z",
  "location": {},
  "user_agent": "string"
}

Backup admin keys management

list adminkeys

GET /dashboardapi/v2/adminkeys/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» idstring(uuid)false
» createdstring(date-time)false
» namestringtrue
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created": "2019-08-24T14:15:22Z",
      "name": "string"
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created": "2019-08-24T14:15:22Z",
      "name": "string"
    }
  ]
}

create adminkeys

POST /dashboardapi/v2/adminkeys/

Parameters

NameInTypeRequiredDescription
idbodystring(uuid)false
createdbodystring(date-time)false
namebodystringtrue
encrypted_admin_keybodystringtrue
public_admin_keybodystringtrue
Request body samples
json
{
  "name": "string",
  "encrypted_admin_key": "string",
  "public_admin_key": "string"
}
{
  "name": "string",
  "encrypted_admin_key": "string",
  "public_admin_key": "string"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
idstring(uuid)false
createdstring(date-time)false
namestringtrue
encrypted_admin_keystringtrue
public_admin_keystringtrue
Response body examples

201 Response

json
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created": "2019-08-24T14:15:22Z",
  "name": "string",
  "encrypted_admin_key": "string",
  "public_admin_key": "string"
}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created": "2019-08-24T14:15:22Z",
  "name": "string",
  "encrypted_admin_key": "string",
  "public_admin_key": "string"
}

retrieve adminkeys

GET /dashboardapi/v2/adminkeys/{id}/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
idstring(uuid)false
createdstring(date-time)false
namestringtrue
encrypted_admin_keystringtrue
public_admin_keystringtrue
statsstringfalse
created_bystringfalse
Response body examples

200 Response

json
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created": "2019-08-24T14:15:22Z",
  "name": "string",
  "encrypted_admin_key": "string",
  "public_admin_key": "string",
  "stats": "string",
  "created_by": "string"
}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created": "2019-08-24T14:15:22Z",
  "name": "string",
  "encrypted_admin_key": "string",
  "public_admin_key": "string",
  "stats": "string",
  "created_by": "string"
}

notifyMissing adminkeys

POST /dashboardapi/v2/adminkeys/{id}/notify_missing/

Parameters

NameInTypeRequiredDescription
idpathstringtrue

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Encrypted backup keys management

findKey encryptedbackupkeys

POST /dashboardapi/v2/encryptedbackupkeys/find_key/

Parameters

NameInTypeRequiredDescription
adminkeybodystring(uuid)true
bearduserbodystring(uuid)true
Request body samples
json
{
  "adminkey": "cc15f562-0196-4a4a-bcba-457a7d18d401",
  "bearduser": "baffd5eb-33a6-4b11-a1b9-1905f3697705"
}
{
  "adminkey": "cc15f562-0196-4a4a-bcba-457a7d18d401",
  "bearduser": "baffd5eb-33a6-4b11-a1b9-1905f3697705"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

renew encryptedbackupkeys

POST /dashboardapi/v2/encryptedbackupkeys/{id}/renew/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
transaction_databodyobjecttrue
encryption_pub_keybodystringfalse
forcebodybooleantrue
encrypted_backup_keybodystringtrue
Request body samples
json
{
  "transaction_data": {},
  "encryption_pub_key": "string",
  "force": true,
  "encrypted_backup_key": "string"
}
{
  "transaction_data": {},
  "encryption_pub_key": "string",
  "force": true,
  "encrypted_backup_key": "string"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Lost accounts management

list lostaccounts

GET /dashboardapi/v2/lostaccounts/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.
state_inqueryinteger
Allowed values: 0, 1, 2, 3, 4, 5, 6
falseOnly match LostAccounts related to this state. Multiple state can be provided by sperating them by `

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» idstring(uuid)true
» createdstring(date-time)true
» emailstringtrue
» device_namestringtrue
» bearduser_idstring(uuid)true
» stateintegertrue
» created_device_idstring(uuid)true
» encryption_pub_keystringtrue
» signing_pub_keystringtrue
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created": "2019-08-24T14:15:22Z",
      "email": "string",
      "device_name": "string",
      "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
      "state": 0,
      "created_device_id": "008bfe01-cdd7-4540-93da-c3411ba728ac",
      "encryption_pub_key": "string",
      "signing_pub_key": "string"
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created": "2019-08-24T14:15:22Z",
      "email": "string",
      "device_name": "string",
      "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
      "state": 0,
      "created_device_id": "008bfe01-cdd7-4540-93da-c3411ba728ac",
      "encryption_pub_key": "string",
      "signing_pub_key": "string"
    }
  ]
}

retrieve lostaccounts

GET /dashboardapi/v2/lostaccounts/{id}/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
state_inqueryinteger
Allowed values: 0, 1, 2, 3, 4, 5, 6
falseOnly match LostAccounts related to this state. Multiple state can be provided by sperating them by `

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
idstring(uuid)true
createdstring(date-time)true
emailstringtrue
device_namestringtrue
bearduser_idstring(uuid)true
stateintegertrue
created_device_idstring(uuid)true
encryption_pub_keystringtrue
signing_pub_keystringtrue
Response body examples

200 Response

json
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created": "2019-08-24T14:15:22Z",
  "email": "string",
  "device_name": "string",
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "state": 0,
  "created_device_id": "008bfe01-cdd7-4540-93da-c3411ba728ac",
  "encryption_pub_key": "string",
  "signing_pub_key": "string"
}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created": "2019-08-24T14:15:22Z",
  "email": "string",
  "device_name": "string",
  "bearduser_id": "c1728d10-d167-4968-8803-696351d3e438",
  "state": 0,
  "created_device_id": "008bfe01-cdd7-4540-93da-c3411ba728ac",
  "encryption_pub_key": "string",
  "signing_pub_key": "string"
}

destroy lostaccounts

DELETE /dashboardapi/v2/lostaccounts/{id}/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
state_inqueryinteger
Allowed values: 0, 1, 2, 3, 4, 5, 6
falseOnly match LostAccounts related to this state. Multiple state can be provided by sperating them by `

Responses

StatusMeaningDescription
204No Contentnone

missingEncryptedMessageKeys lostaccounts

GET /dashboardapi/v2/lostaccounts/{id}/missing_encrypted_message_keys/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
state_inqueryinteger
Allowed values: 0, 1, 2, 3, 4, 5, 6
falseOnly match LostAccounts related to this state. Multiple state can be provided by sperating them by `

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

200 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

missingEncryptedMessageKeys lostaccounts (POST)

POST /dashboardapi/v2/lostaccounts/{id}/missing_encrypted_message_keys/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
state_inqueryinteger
Allowed values: 0, 1, 2, 3, 4, 5, 6
falseOnly match LostAccounts related to this state. Multiple state can be provided by sperating them by `
keysbody[object]true
» message_idbodystringtrue
» tokenbodystringtrue
» created_for_key_hashbodystringfalse
Request body samples
json
{
  "keys": [
    {
      "message_id": "string",
      "token": "string",
      "created_for_key_hash": ""
    }
  ]
}
{
  "keys": [
    {
      "message_id": "string",
      "token": "string",
      "created_for_key_hash": ""
    }
  ]
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

createDevice lostaccounts

POST /dashboardapi/v2/lostaccounts/{id}/create_device/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
state_inqueryinteger
Allowed values: 0, 1, 2, 3, 4, 5, 6
falseOnly match LostAccounts related to this state. Multiple state can be provided by sperating them by `
device_namebodystringtrue
Request body samples
json
{
  "device_name": "string"
}
{
  "device_name": "string"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

validateSigchain lostaccounts

POST /dashboardapi/v2/lostaccounts/{id}/validate_sigchain/

Parameters

NameInTypeRequiredDescription
idpathstringtrue
state_inqueryinteger
Allowed values: 0, 1, 2, 3, 4, 5, 6
falseOnly match LostAccounts related to this state. Multiple state can be provided by sperating them by `
sigchain_transactionbodyobjecttrue
forcebodybooleantrue
Request body samples
json
{
  "sigchain_transaction": {},
  "force": true
}
{
  "sigchain_transaction": {},
  "force": true
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

Invited Emails

list invitedemails

GET /dashboardapi/v2/invitedemails/

Parameters

NameInTypeRequiredDescription
cursorquerystringfalseThe pagination cursor value.
pagequeryintegerfalseA page number within the paginated result set.
use_cursorquerystringfalseIf provided (usually set to true), will use a cursor pagination mechanism.🚨 Page based pagination is now deprecated.
statequeryinteger
Allowed values: 0, 1, 2
falseOnly match InvitedEmails of this state.
emailquerystring(email)falseOnly match InvitedEmails related to this email.

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
countintegerfalsePage based pagination based only. Total count of results
nextstring(uri)¦nullfalsePage based pagination based only. Next page URL
previousstring(uri)¦nullfalsePage based pagination based only. Previous page URL
next_cursorstring¦nullfalseCursor based pagination based only. Cursor for next page.
previous_cursorstring¦nullfalseCursor based pagination based only. Cursor for previous page.
resultsarrayfalse
» emailstring(email)true
» statestringtrue
» invited_bystringtrue
» created_atstring(date-time)true
» used_atstring(date-time)true
» disabled_atstring(date-time)true
Response body examples

200 Response

json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "email": "user@example.com",
      "state": "string",
      "invited_by": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "used_at": "2019-08-24T14:15:22Z",
      "disabled_at": "2019-08-24T14:15:22Z"
    }
  ]
}
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "next_cursor": "string",
  "previous_cursor": "string",
  "results": [
    {
      "email": "user@example.com",
      "state": "string",
      "invited_by": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "used_at": "2019-08-24T14:15:22Z",
      "disabled_at": "2019-08-24T14:15:22Z"
    }
  ]
}

create invitedemails

POST /dashboardapi/v2/invitedemails/

Parameters

NameInTypeRequiredDescription
emailbodystring(email)true
statebodystringtrue
invited_bybodystringtrue
created_atbodystring(date-time)true
used_atbodystring(date-time)true
disabled_atbodystring(date-time)true
Request body samples
json
{
  "email": "user@example.com",
  "state": "string",
  "invited_by": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "used_at": "2019-08-24T14:15:22Z",
  "disabled_at": "2019-08-24T14:15:22Z"
}
{
  "email": "user@example.com",
  "state": "string",
  "invited_by": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "used_at": "2019-08-24T14:15:22Z",
  "disabled_at": "2019-08-24T14:15:22Z"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
emailstring(email)true
statestringtrue
invited_bystringtrue
created_atstring(date-time)true
used_atstring(date-time)true
disabled_atstring(date-time)true
Response body examples

201 Response

json
{
  "email": "user@example.com",
  "state": "string",
  "invited_by": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "used_at": "2019-08-24T14:15:22Z",
  "disabled_at": "2019-08-24T14:15:22Z"
}
{
  "email": "user@example.com",
  "state": "string",
  "invited_by": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "used_at": "2019-08-24T14:15:22Z",
  "disabled_at": "2019-08-24T14:15:22Z"
}

licences invitedemails

GET /dashboardapi/v2/invitedemails/licences/

Responses

StatusMeaningDescription
200OKnone
Status Code 200
NameTypeRequiredDescription
emailstring(email)true
statestringtrue
invited_bystringtrue
created_atstring(date-time)true
used_atstring(date-time)true
disabled_atstring(date-time)true
Response body examples

200 Response

json
{
  "email": "user@example.com",
  "state": "string",
  "invited_by": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "used_at": "2019-08-24T14:15:22Z",
  "disabled_at": "2019-08-24T14:15:22Z"
}
{
  "email": "user@example.com",
  "state": "string",
  "invited_by": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "used_at": "2019-08-24T14:15:22Z",
  "disabled_at": "2019-08-24T14:15:22Z"
}

disable invitedemails

POST /dashboardapi/v2/invitedemails/disable/

Parameters

NameInTypeRequiredDescription
emailbodystring(email)true
Request body samples
json
{
  "email": "user@example.com"
}
{
  "email": "user@example.com"
}

Responses

StatusMeaningDescription
201Creatednone
Status Code 201
NameTypeRequiredDescription
statusstring
Allowed values: "ok"
true
Response body examples

201 Response

json
{
  "status": "ok"
}
{
  "status": "ok"
}

is-alive

listis_alives

GET /is_alive/

Responses

StatusMeaningDescription
200OKnone

dashboardapi

statusTwoFA

GET /dashboardapi/v2/twofa/status/

Responses

StatusMeaningDescription
200OKnone

confirmTwoFA

POST /dashboardapi/v2/twofa/confirm/

Responses

StatusMeaningDescription
201Creatednone

removeTwoFA

POST /dashboardapi/v2/twofa/remove/

Responses

StatusMeaningDescription
201Creatednone

resetRecoverCodesTwoFA

POST /dashboardapi/v2/twofa/reset_recover_codes/

Responses

StatusMeaningDescription
201Creatednone

setTwoFA

POST /dashboardapi/v2/twofa/set/

Responses

StatusMeaningDescription
201Creatednone