Log API Reference
The Futurae Log API streams events from the Organization Admin Dashboard and Organization Services.
Current Log API Version: 1.0.2
Version History (change log)
Getting Started
Postman Sample Collection
Organization Collection
To help you with integration, we provide a postman collection with a few sample Organization Log API endpoints.
Once you import the collection into Postman, you will need to edit it and adjust the following variables for Organization:
Variable | Value |
---|---|
hostname | Your Service Hostname (example: api.futurae.com ) |
organization_id | Your Organization ID |
organization_log_api_key | Your Organization Log API key |
Service Collection
To help you with integration, we provide a postman collection with a few sample Service Log API endpoints.
Once you import the collection into Postman, you will need to edit it and adjust the following variables for Service:
Variable | Value |
---|---|
hostname | Your Service Hostname (example: api.futurae.com ) |
service_id | Your Service ID |
service_log_api_key | Your Service Log API key |
Request Format
For calling the API endpoints, the request URI consists of the Service hostname, the Log API version prefix, name of the resource (Organization or Service ) and the endpoint together with any potential parameters (each endpoint showcases an example URI on how to call it).
Headers
Each request must contain a Date
header, containing the current time formatted as RFC 2822 and an Authorization
header (see Request Authentication on how to construct the Authorization
header in order to authenticate each request).
The Log API is based on RESTful API conventions. The URLs are structured to indicate resources under the Log API prefix and version: /logs/v1/service/{service_id}
indicates the specific service resource specified by the service_id
path variable in the URL, /logs/v1/organization/{organization_id}
indicates the specific organization resource specified by the organization_id
path variable in the URL. The HTTP verb used here is GET. This retrieves the specified resource(s).
Request Authentication
In order to successfully call the API endpoints you need to authenticate your requests, by signing them using your Organization Log API key or your Service Log API key as the signing key. The supplied Authorization
header must carry the required signature using the HTTP Basic Authentication format as follows:
Organization Authentication
Organization authorization header format:
Authorization: Basic base64( Organization_ID:hex( hmac( Organization_Log_API_Key, request_content ) ) )
- The HTTP username will be your Organization ID.
- The HTTP password will be a hex-formatted HMAC-SHA256 signature, computed over the request content in the way described below, using the Organization Log API key as the HMAC key.
- The HTTP username and password are concatenated using a colon, and the concatenated string is Base64 encoded.
Service Authentication
Service authorization header format:
Authorization: Basic base64( Service_ID:hex( hmac( Service_Log_API_Key, request_content ) ) )
- The HTTP username will be your Service ID.
- The HTTP password will be a hex-formatted HMAC-SHA256 signature, computed over the request content in the way described below, using the Service Log API key as the HMAC key.
- The HTTP username and password are concatenated using a colon, and the concatenated string is Base64 encoded.
Response Format
Responses are formatted as JSON objects (the header Content-Type: application/json
) or NDJSON (Newline Delimited JSON) (the header Content-Type: application/x-ndjson
).
Successful responses return a HTTP 200 response code with header Content-Type: application/x-ndjson
and, the content is a newline delimited JSON with each line containing one event (JSON object). The events are returned in an arbitrary order. All the events within a given time frame are returned.
If an error occurs during the log streaming, the request is interrupted and a non-JSON line containing the string “Error” is appended to the response payload.
This is how an unsuccessful response payload looks like:
{
"error": true,
"code": 40000,
"message": "Bad request",
"detail": "date range is less than 1 sec or more than an hour"
}
Unsuccessful responses return an appropriate HTTP response code that conveys the high-level reason of the failure with header Content-Type: application/json
, plus a JSON object of a specified format that might supply some additional details regarding the error. In particular, unsuccessful responses will contain an error
boolean field, whose value will be true
. Moreover, the response will contain an integer code
, and a message
field that further describes the failure. A detail
field may be present if additional information is available. Example:
The HTTP response code will be the first three digits of the more specific code
found inside the JSON object.
HTTP Response Codes
Below are listed some common HTTP response codes and their meaning. The codes marked as generic represent generic error codes and could be returned by any endpoint even if they are not explicitly listed in the description of some endpoints.
HTTP Code | Meaning | Generic |
---|---|---|
200 |
The request was successful. | |
400 |
Invalid or missing request parameters. | yes |
401 |
Authorization data is missing or invalid. | yes |
404 |
The requested endpoint does not exist, or the requested resource does not exist. | yes |
405 |
The request HTTP method is not valid for this endpoint (for example, POST when only GET is supported). | yes |
500 |
An unexpected, internal server error occurred. | yes |
Organization
Pull Organization Logs
Example request:
/logs/v1/organization/46da27c7-cdeb-4335-bedb-2e88f3916651
/logs/v1/organization/46da27c7-cdeb-4335-bedb-2e88f3916651?start=2023-10-18T12:16:11.76Z&end=2023-10-18T12:18:11.76Z
/logs/v1/organization/46da27c7-cdeb-4335-bedb-2e88f3916651?start=1692977914&end=1692978634
GET /logs/v1/organization/{organization_id}
Stream logs for an organization within a specified time range.
Path parameters
organization_idstring
|
ID of the Futurae organization. | Must match the organization ID used in authentication. |
Query parameters
starttimestamp
|
The start of the time range of the requested logs. Default: end (or its default value) - 1 min |
Must be at most 30 days in the past |
endtimestamp
|
The end of time range of requested logs. Default: now - 1 min |
Must be at least 1 minute in the past |
Supported date formats:
- Unix timestamp (seconds)
- ISO 8601 timestamp without timezone/offset, e.g., 2023-10-02T14:23:58. This timestamp is assumed to be in UTC
- ISO 8601 timestamp with UTC timezone, e.g., 2023-10-02T14:23:58Z
- ISO 8601 timestamp with offset, e.g., 2023-10-02T14:23:58-01:00 or 2023-10-02T14:23:58+01:00
- end
-start
must be at least 1s and at most 1h
Note that the streaming result is inclusive of start
but exclusive of end
.
Response 200
Example response:
200 OK
{"admin_dashboard_user_id": "2298e430-95aa-476e-b5ab-beafd4f57d59","client_ip_address": "101.144.93.80","client_port": "55402","created_at": "2023-10-18T08:23:55.3694412042Z","organization_id": "2e993857-2cb9-45a0-9ccd-912a87666055","type": "admin-dashboard-user.unassigned"}
{"admin_dashboard_user_id": "8b65a203-b33a-4921-9e3b-324b9681d2a8","client_ip_address": "101.144.93.80","client_port": "55402","created_at": "2023-10-18T08:25:31.1694411102Z","organization_id": "2e993857-2cb9-45a0-9ccd-912a87666055","reason": "some reason","type": "admin-dashboard-user.login.failed"}
200 OK (With Error)
{"admin_dashboard_user_id": "8b65a203-b33a-4921-9e3b-324b9681d2a8","client_ip_address": "101.144.93.80","client_port": "55402","created_at": "2023-10-18T08:25:31.1694411102Z","organization_id": "2e993857-2cb9-45a0-9ccd-912a87666055","reason": "some reason","type": "admin-dashboard-user.login.failed"}
Error
The request was successful
Response 400
Example response:
400 Bad request
{
"error": true,
"code": 40000,
"message": "Bad request",
"detail": "invalid organization id"
}
Missing or invalid parameters.
Response 401
Example response:
401 Unauthorized
{
"error": true,
"code": 40100,
"message": "authorization data missing or invalid",
"detail": "Authorization failed. HMAC verification failed:\n--DEBUG INFO START--\n----CONTENT TO BE SIGNED----\nTue, 20 Nov 2018 09:34:29 +0100\nGET\napi.futurae.com\n/logs/v1/organization/102d9623-5c14-445e-ba79-d8ec4c42af3e\n\n-----CONTENT BYTES------\n[84 117 101 44 32 50 48 32 78 111 118 32 50 48 49 56 32 48 57 58 51 52 58 50 57 32 43 48 49 48 48 10 71 69 84 10 97 112 105 46 102 117 116 117 114 97 101 46 99 111 109 10 47 115 114 118 47 97 117 116 104 47 118 49 47 115 101 114 118 101 114 47 116 101 115 116 10 10]\n--DEBUG INFO END--"
}
Authorization failure. The response body will contain additional information in order to help you identify the reason of the failure.
Organization Events
Below, we provide a comprehensive overview of events related to the organizations, detailing each event's description, attributes, and associated information.
admin-dashboard-user.login.failed
Example Event:
admin-dashboard-user.login.failed
{
"admin_dashboard_user_id": "2298e430-95aa-476e-b5ab-beafd4f57d59",
"client_ip_address": "101.144.93.80",
"client_port": "55402",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"organization_id": "2e993857-2cb9-45a0-9ccd-912a87666055",
"reason": "some reason",
"type": "admin-dashboard-user.login.failed"
}
An admin dashboard user attempted but failed to log in
Fields
Field | Description |
admin_dashboard_user_id string
|
The ID of the admin dashboard user that has logged in |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
organization_id string
|
ID of the Futurae organization |
reason string
|
Provides information why the given action failed |
type string
|
The type of the event (type=admin-dashboard-user.login.failed ) |
admin-dashboard-user.login.succeeded
Example Event:
admin-dashboard-user.login.succeeded
{
"admin_dashboard_user_id": "2298e430-95aa-476e-b5ab-beafd4f57d59",
"client_ip_address": "101.144.93.80",
"client_port": "55402",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"organization_id": "2e993857-2cb9-45a0-9ccd-912a87666055",
"type": "admin-dashboard-user.login.succeeded"
}
An admin dashboard user has successfully logged in
Fields
Field | Description |
admin_dashboard_user_id string
|
The ID of the admin dashboard user that has logged in |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
organization_id string
|
ID of the Futurae organization |
type string
|
The type of the event (type=admin-dashboard-user.login.succeeded ) |
admin-dashboard-user.assigned
Example Event:
admin-dashboard-user.assigned
{
"active": true,
"admin_dashboard_user_id": "2298e430-95aa-476e-b5ab-beafd4f57d59",
"client_ip_address": "101.144.93.80",
"client_port": "55402",
"created_at": "2023-10-18T08:23:55.3694412042Z",
"email_address": "newuser@futurae.com",
"locked_at": "",
"name": "New User",
"organization_id": "2e993857-2cb9-45a0-9ccd-912a87666055",
"surname": "Stone",
"type": "admin-dashboard-user.assigned"
}
An admin dashboard user was assigned to the organization
Fields
activeboolean
|
Indicates if the admin dashboard user is active or not |
admin_dashboard_user_id string
|
The ID of the admin dashboard user that has logged in |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
email_address string
|
Email address of the admin dashboard user |
locked_at timestamp
|
The time when the admin dashboard user was locked out |
name string
|
Name of the admin dashboard user |
organization_id string
|
ID of the Futurae organization |
surname string
|
Family name of the admin dashboard user |
type string
|
The type of the event (type= admin-dashboard-user.assigned ) |
admin-dashboard-user.unassigned
Example Event:
admin-dashboard-user.unassigned
{
"admin_dashboard_user_id": "2298e430-95aa-476e-b5ab-beafd4f57d59",
"client_ip_address": "101.144.93.80",
"client_port": "55402",
"created_at": "2023-10-18T08:23:55.3694412042Z",
"organization_id": "2e993857-2cb9-45a0-9ccd-912a87666055",
"type": "admin-dashboard-user.unassigned"
}
An admin dashboard user was unassigned from the organization
Fields
admin_dashboard_user_id string
|
The ID of the admin dashboard user that has logged in |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
organization_id string
|
ID of the Futurae organization |
type string
|
The type of the event (type= admin-dashboard-user.unassigned ) |
admin-dashboard-user.password.updated
Example Event:
admin-dashboard-user.password.updated
{
"admin_dashboard_user_id":"381e8d42-b2a4-49bf-a1de-97c2a01857f9",
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"organization_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"type": "admin-dashboard-user.password.updated"
}
An admin dashboard user has set a new password for his own account
Fields
admin_dashboard_user_id string
|
Admin Dashboard user ID who initiated the event |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
organization_id string
|
ID of the Futurae organization |
type string
|
The type of the event (type=admin-dashboard-user.password.updated ) |
admin-dashboard-user.updated
Example Event:
admin-dashboard-user.updated
{
"active": true,
"admin_dashboard_user_id": "2298e430-95aa-476e-b5ab-beafd4f57d59",
"by_admin_dashboard_user_id":"b2299164-6ad5-4e05-830c-9d7ad5798914",
"client_ip_address": "101.144.93.80",
"client_port": 55402,
"created_at": "2023-10-18T08:23:55.3694411142Z",
"email_address": "newuser@futurae.com",
"name": "John",
"organization_id": "2e993857-2cb9-45a0-9ccd-912a87666055",
"role":"owner",
"surname": "Rock",
"type": "admin-dashboard-user.updated"
}
An admin dashboard user was updated
Fields
activeboolean
|
Indicates if the admin dashboard user is active or not (if modified) |
admin_dashboard_user_id string
|
The ID of the admin dashboard user that was updated |
by_admin_dashboard_user_id string
|
Admin dashboard user ID who initiated the event |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
email_address string
|
Email address of the admin dashboard user (if modified) |
locked_at timestamp
|
The time when the admin dashboard user was locked out (if modified) |
name string
|
Name of the admin dashboard user (if modified) |
organization_id string
|
ID of the Futurae organization |
role string
|
Indicates the admin dashboard user responsibilies (if modified) |
surname string
|
Family name of the admin dashboard user (if modified) |
type string
|
The type of the event (type= admin-dashboard-user.updated ) |
Service
Pull Service Logs
Example request:
/logs/v1/service/fb41e590-13df-48b0-8183-0983ec91d14a
/logs/v1/service/fb41e590-13df-48b0-8183-0983ec91d14a?start=2023-10-18T12:16:11.76Z&end=2023-10-18T12:18:11.76Z
/logs/v1/service/fb41e590-13df-48b0-8183-0983ec91d14a?start=1692977914&end=1692978634
GET /logs/v1/service/{service_id}
Stream logs for a service within a specified time range.
Path parameters
service_idstring
|
ID of the Futurae organization service. | Must match the service ID used in authentication. |
Query parameters
starttimestamp
|
The start of the time range of the requested logs. Default: end (or its default value) - 1 min |
Must be at most 30 days in the past |
endtimestamp
|
The end of time range of requested logs. Default: now - 1 min |
Must be at least 1 minute in the past |
Supported date formats:
- Unix timestamp (seconds)
- ISO 8601 timestamp without timezone/offset, e.g., 2023-10-02T14:23:58. This timestamp is assumed to be in UTC
- ISO 8601 timestamp with UTC timezone, e.g., 2023-10-02T14:23:58Z
- ISO 8601 timestamp with offset, e.g., 2023-10-02T14:23:58-01:00 or 2023-10-02T14:23:58+01:00
- end
-start
must be at least 1s and at most 1h
Note that the streaming result is inclusive of start
but exclusive of end
.
Response 200
Example response:
200 OK
{"created_at": "2023-10-18T08:23:55.3694411142Z","type": "authentication.send-sms.succeeded","service_id": "fb41e590-13df-48b0-8183-0983ec91d14a","sms_id": "aec0832c-0885-40a6-80ec-24ce47a23084","user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"}
{"client_ip_address": "96.189.228.124","client_port": "55306","created_at": "2023-10-18T08:28:01.5694411100Z","device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576","reason": "some reason","service_id": "fb41e590-13df-48b0-8183-0983ec91d14a","session_id": "fa66540d-b694-4776-bbff-13a536d3dad9","status": "locked_out","type": "authentication.failed","user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"}
200 OK (With Error)
{"created_at": "2023-10-18T08:23:55.3694411142","type": "authentication.send-sms.succeeded","service_id": "fb41e590-13df-48b0-8183-0983ec91d14a","sms_id": "aec0832c-0885-40a6-80ec-24ce47a23084","user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"}
Error
The request was successful
Response 400
Example response:
400 Bad request
{
"error": true,
"code": 40000,
"message": "Bad request",
"detail": "invalid service id"
}
Missing or invalid parameters
Response 401
Example response:
401 Unauthorized
{
"error": true,
"code": 40100,
"message": "authorization data missing or invalid",
"detail": "Authorization failed. HMAC verification failed:\n--DEBUG INFO START--\n----CONTENT TO BE SIGNED----\nTue, 20 Nov 2018 09:34:29 +0100\nGET\napi.futurae.com\n/logs/v1/service/fb41e590-13df-48b0-8183-0983ec91d14a\n\n-----CONTENT BYTES------\n[84 117 101 44 32 50 48 32 78 111 118 32 50 48 49 56 32 48 57 58 51 52 58 50 57 32 43 48 49 48 48 10 71 69 84 10 97 112 105 46 102 117 116 117 114 97 101 46 99 111 109 10 47 115 114 118 47 97 117 116 104 47 118 49 47 115 101 114 118 101 114 47 116 101 115 116 10 10]\n--DEBUG INFO END--"
}
Authorization failure. The response body will contain additional information in order to help you identify the reason of the failure.
Service Events
Below, we provide a comprehensive overview of events related to the services, detailing each event's description, attributes, and associated information.
authentication.failed
Example Event:
authentication.failed
{
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"reason": "some reason",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"session_id": "fa66540d-b694-4776-bbff-13a536d3dad9",
"status": "locked_out",
"type": "authentication.failed",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"
}
The authentication was not successful
Fields
Field | Description |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
device_id string
|
ID of the Futurae device (if available) . This field is the same as the device_id field in Futurae Auth API Reference. |
reason string
|
Provides information why the given action failed |
service_id string
|
ID of the Futurae service |
session_id string
|
The ID of the authentication session (if authentication has a session). This field is the same as the session_id field in Futurae Auth API Reference. |
status string
|
This is a string value which describes the outcome of a particular Futurae authentication attempt. It can be one of the following statuses:
|
type string
|
The type of the event (type=authentication.failed ) |
user_id string
|
ID of the Futurae user (if available). This field is the same as the user_id field in Futurae Auth API Reference. |
authentication.succeeded
Example Event:
authentication.succeeded
{
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"session_id": "fa66540d-b694-4776-bbff-13a536d3dad9",
"status": "allow",
"type": "authentication.succeeded",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49",
"user_presence_verification": "biometrics_any"
}
The authentication was successful
Fields
Field | Description |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
device_id string
|
ID of the Futurae device (if available) . This field is the same as the device_id field in Futurae Auth API Reference. |
service_id string
|
ID of the Futurae service |
session_id string
|
The ID of the authentication session (if authentication has a session). This field is the same as the session_id field in Futurae Auth API Reference. |
status string
|
This is a string value which describes the outcome of a particular Futurae authentication attempt (status=allow ) |
type string
|
The type of the event (type=authentication.succeeded ) |
user_id string
|
ID of the Futurae user (if available). This field is the same as the user_id field in Futurae Auth API Reference. |
user_presence_verificationstring
|
This field contains information about what kind of biometric was used to authenticate the user (if feature is enabled). Read more here. |
authentication.send-push.succeeded
Example Event:
authentication.send-push.succeeded
{
"created_at": "2023-10-18T08:23:55.3694411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"session_id": "fa66540d-b694-4776-bbff-13a536d3dad9",
"type": "authentication.send-push.succeeded",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"
}
Push notification for the authentication was successfully sent
Fields
Field | Description |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
device_id string
|
ID of the Futurae device. This field is the same as the device_id field in Futurae Auth API Reference. |
service_id string
|
ID of the Futurae service |
session_id string
|
The ID of the authentication session. This field is the same as the session_id field in Futurae Auth API Reference. |
type string
|
The type of the event (type=authentication.send-push.succeeded ) |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
authentication.send-sms.succeeded
Example Event:
authentication.send-sms.succeeded
{
"created_at": "2023-10-18T08:23:55.3694411142Z",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"sms_id": "9b38ff72-d61b-4067-930c-e11bbecb98ef",
"type": "authentication.send-sms.succeeded",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"
}
SMS for an authentication was sent successfully
Fields
Field | Description |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
service_id string
|
ID of the Futurae service |
sms_id string
|
Unique ID of the SMS message |
type string
|
The type of the event (type=authentication.send-sms.succeeded ) |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
device.created
Example Event:
device.created
{
"created_at": "2023-10-18T08:23:55.3694411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"enrolled":"true",
"enrolloed_at":"1699003006",
"sdk_lock_config_type":"none",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"type": "device.created",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"
}
A device was successfully created, either as part of an enrollment or as part of an "Automatic Account Recovery"
Fields
Field | Description |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
device_id string
|
ID of the Futurae device. This field is the same as the device_id field in Futurae Auth API Reference. |
enrolledboolean
|
Indicates whether this device is enrolled or not |
enrolled_attimestamp
|
The time when this device was enrolled to a user, represented as a Unix timestamp (if not 0) |
sdk_lock_config_typestring
|
This field refers to the SDK lock config (If applicable to the device). The possible values are none , biometrics_only , biometrics_or_credentials and sdk_pin_with_biometrics_optional
|
service_id string
|
ID of the Futurae service |
type string
|
The type of the event (type=device.created ) |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
admin-dashboard.device.updated
Example Event:
admin-dashboard.device.updated
{
"by_admin_dashboard_user_id":"381e8d42-b2a4-49bf-a1de-97c2a01857f9",
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"display_name":"Iphone 15 Pro max",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"type": "admin-dashboard.device.updated"
}
An admin dashboard user has updated a device
Fields
Field | Description |
by_admin_dashboard_user_id string
|
Admin dashboard user ID who initiated the event |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
device_id string
|
ID of the Futurae device. This field is the same as the device_id field in Futurae Auth API Reference. |
display_name string
|
The name of the device (if modified) |
service_id string
|
ID of the Futurae service |
type string
|
The type of the event (type=admin-dashboard.device.updated ) |
admin-dashboard.service.secrets.retrieved
Example Event:
admin-dashboard.service.secrets.retrieved
{
"by_admin_dashboard_user_id":"381e8d42-b2a4-49bf-a1de-97c2a01857f9",
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"type": "admin-dashboard.service.secrets.retrieved"
}
An admin dashboard user has clicked on the "Show Secrets" button of the service settings page
Fields
Field | Description |
by_admin_dashboard_user_id string
|
Admin dashboard user ID who initiated the event |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
service_id string
|
ID of the Futurae service |
type string
|
The type of the event (type=admin-dashboard.service.secrets.retrieved ) |
admin-dashboard.service.settings.updated
Example Event:
admin-dashboard.service.settings.updated
{
"by_admin_dashboard_user_id":"381e8d42-b2a4-49bf-a1de-97c2a01857f9",
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"description": "My Futurae Service"
"name": "My Futurae",
"user_default_max_attempts": "15",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"type": "admin-dashboard.service.settings.updated",
}
An admin dashboard user has updated one or more settings from the service settings page
Fields
Field | Description |
by_admin_dashboard_user_id string
|
Admin dashboard user ID who initiated the event |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
description string
|
The description of the service (if modified) |
name string
|
The name of the service (if modified) |
user_default_max_attempts string
|
The maximum number of consecutive failed authentication attempts allowed for the user before he gets locked out (if modified) |
service_id string
|
ID of the Futurae service |
type string
|
The type of the event (type=admin-dashboard.service.settings.updated ) |
admin-dashboard.user.enrollment.started
Example Event:
admin-dashboard.user.enrollment.started
{
"by_admin_dashboard_user_id":"381e8d42-b2a4-49bf-a1de-97c2a01857f9",
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"type": "admin-dashboard.user.enrollment.started"
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"
}
An admin dashboard user has created a new enrollment
Fields
Field | Description |
by_admin_dashboard_user_id string
|
Admin dashboard user ID who initiated the event |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
service_id string
|
ID of the Futurae service |
type string
|
The type of the event (type=admin-dashboard.user.enrollment.started ) |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
admin-dashboard.user.updated
Example Event:
admin-dashboard.user.updated
{
"by_admin_dashboard_user_id":"381e8d42-b2a4-49bf-a1de-97c2a01857f9",
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"type": "admin-dashboard.user.updated"
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49",
"username": "user@domain.com",
"display_name": "user@domain.com",
"allowed_factors": [
"approve",
"mobile_totp",
"passcode",
"qr_code",
"sms"
],
"status": "bypass",
"max_attempts": "15"
}
An admin dashboard user has updated a user
Fields
Field | Description |
by_admin_dashboard_user_id string
|
Admin dashboard user ID who initiated the event |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
service_id string
|
ID of the Futurae service |
type string
|
The type of the event (type=admin-dashboard.user.updated ) |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
username string
|
The username of the updated user (if updated) |
display_name string
|
The displayed name of the user (if updated) |
allowed_factors [string]
|
The list of allowed factors for the user (if updated) |
max_attempts string
|
The maximum number of consecutive failed authentication attempts allowed for the user before he gets locked out (if modified) |
transaction-confirmation.send-push.succeeded
Example Event:
transaction-confirmation.send-push.succeeded
{
"created_at": "2023-10-18T08:23:55.3694411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"session_id":"790060eb-961e-47b0-95fa-c1cd14ae9193",
"type": "transaction-confirmation.send-push.succeeded",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"
}
Push notification for the transaction confirmation was successfully sent
Fields
Field | Description |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
device_id string
|
ID of the Futurae device. This field is the same as the device_id field in Futurae Auth API Reference. |
service_id string
|
ID of the Futurae service |
session_id string
|
The ID of the transaction confirmation session. This field is the same as the session_id field in Futurae Auth API Reference. |
type string
|
The type of the event (type=transaction-confirmation.send-push.succeeded ) |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
transaction-confirmation.started
Example Event:
transaction-confirmation.started
{
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"factor":"approve",
"fallback_session_id":"fc9ca0c1-38a9-495f-abaa-ccfc620b7b30",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"session_id": "fa66540d-b694-4776-bbff-13a536d3dad9",
"type": "transaction-confirmation.started",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"
}
Call to transaction endpoint completed successfully
Fields
Field | Description |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
device_id string
|
ID of the Futurae device (if available). This field is the same as the device_id field in Futurae Auth API Reference. |
factorstring
|
See supported factors here |
fallback_session_id string
|
The ID of the fallback transaction confirmation session (if a fallback session was created). This field is the same as the fallback_session_id field in Futurae Auth API Reference
|
service_id string
|
ID of the Futurae service |
session_id string
|
The ID of the transaction confirmation session. This field is the same as the session_id field in Futurae Auth API Reference. |
type string
|
The type of the event (type=transaction-confirmation.started ) |
user_id string
|
ID of the Futurae user (if available). This field is the same as the user_id field in Futurae Auth API Reference. |
transaction-confirmation.failed
Example Event:
transaction-confirmation.failed
{
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"reason": "some reason",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"session_id": "fa66540d-b694-4776-bbff-13a536d3dad9",
"status": "locked_out",
"type": "transaction-confirmation.failed",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"
}
The transaction confirmation was not successful
Fields
Field | Description |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
device_id string
|
ID of the Futurae device (if available). This field is the same as the device_id field in Futurae Auth API Reference. |
reason string
|
Provides information why the given action failed |
service_id string
|
ID of the Futurae service |
session_id string
|
The ID of the transaction confirmation session. This field is the same as the session_id field in Futurae Auth API Reference. |
status string
|
This is a string value which describes the outcome of a particular Futurae transaction confirmation attempt. It can be one of the following statuses:
|
type string
|
The type of the event (type=transaction-confirmation.failed ) |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
transaction-confirmation.succeeded
Example Event:
transaction-confirmation.succeeded
{
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"session_id": "fa66540d-b694-4776-bbff-13a536d3dad9",
"status": "allow",
"type": "transaction-confirmation.succeeded",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49",
"user_presence_verification": "biometrics_any"
}
The transaction authentication was successful
Fields
Field | Description |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
device_id string
|
ID of the Futurae device (if available). This field is the same as the device_id field in Futurae Auth API Reference. |
service_id string
|
ID of the Futurae service |
session_id string
|
The ID of the transaction confirmation session. This field is the same as the session_id field in Futurae Auth API Reference. |
status string
|
This is a string value which describes the outcome of a particular Futurae transaction confirmation attempt (status=allow ) |
type string
|
The type of the event (type=transaction-confirmation.succeeded ) |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
user_presence_verificationstring
|
This field contains information about what kind of biometric was used to authenticate the user (if feature is enabled). Read more here. |
device.migration.queried
Example Event:
device.migration.queried
{
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"type": "device.migration.queried",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"
}
The device migration was queried
Fields
Field | Description |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
device_id string
|
ID of the Futurae device. This field is the same as the device_id field in Futurae Auth API Reference. |
service_id string
|
ID of the Futurae service |
type string
|
The type of the event (type=device.migration.queried ) |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
device.migration.succeeded
Example Event:
device.migration.succeeded
{
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"migrated_from_device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"migrated_to_device_id": "d8f517c4-295d-4b02-897b-7cadd56abc54",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"type": "device.migration.succeeded",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49"
}
The device migration has succeeded
Fields
Field | Description |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
migrated_from_device_id string
|
ID of the Futurae device before migration. This field is the same as the device_id field in Futurae Auth API Reference. |
migrated_to_device_id string
|
ID of the Futurae device after migration. This field is the same as the device_id field in Futurae Auth API Reference. |
service_id string
|
ID of the Futurae service |
type string
|
The type of the event (type=device.migration.succeeded ) |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
device.migration.failed
Example Event:
device.migration.failed
{
"client_ip_address": "96.189.228.124",
"client_port": "55306",
"created_at": "2023-10-18T08:23:55.3694411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"type": "device.migration.failed",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49",
"reason": "invalid_pin"
}
The device migration has failed
Fields
Field | Description |
client_ip_address string
|
IP address of the HTTP client that sent the request that triggered the event |
client_port string
|
The client port of the HTTP client that sent the request that triggered the event |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
device_id string
|
ID of the Futurae device. This field is the same as the device_id field in Futurae Auth API Reference. |
service_id string
|
ID of the Futurae service |
type string
|
The type of the event (type=device.migration.failed ) |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
reason string
|
The reason why the migration failed to complete. |
pin.verification.succeeded
Example Event:
pin.verification.succeeded
{
"created_at": "2023-10-18T08:23:55.3794411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49",
"type": "pin.verification.succeeded"
}
Pin verification succeeded
Fields
Field | Description |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
device_id string
|
ID of the Futurae device. This field is the same as the device_id field in Futurae Auth API Reference. |
service_id string
|
ID of the Futurae service |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
type string
|
The type of the event (type=pin.verification.succeeded ) |
pin.verification.failed
Example Event:
pin.verification.failed
{
"created_at": "2023-10-18T08:23:55.3894411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49",
"reason": "incorrect_pin",
"type": "pin.verification.failed"
}
Pin verification failed
Fields
Field | Description |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
device_id string
|
ID of the Futurae device. This field is the same as the device_id field in Futurae Auth API Reference. |
service_id string
|
ID of the Futurae service |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
type string
|
The type of the event (type=pin.verification.failed ) |
reason string
|
The reason why the pin verification failed to complete. |
pin.update.succeeded
Example Event:
pin.update.succeeded
{
"created_at": "2023-10-18T08:23:55.3994411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49",
"type": "pin.update.succeeded"
}
Pin update succeeded
Fields
Field | Description |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
device_id string
|
ID of the Futurae device. This field is the same as the device_id field in Futurae Auth API Reference. |
service_id string
|
ID of the Futurae service |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
type string
|
The type of the event (type=pin.update.succeeded ) |
pin.update.failed
Example Event:
pin.update.failed
{
"created_at": "2023-10-18T08:23:55.3594411142Z",
"device_id": "c908a11f-148d-430e-8a60-7e6f62b5e576",
"service_id": "fb41e590-13df-48b0-8183-0983ec91d14a",
"user_id": "5290d767-bac8-4f2e-8151-3a7de8d4ef49",
"reason": "incorrect_pin",
"type": "pin.update.failed"
}
Pin update failed
Fields
Field | Description |
user_id string
|
ID of the Futurae user. This field is the same as the user_id field in Futurae Auth API Reference. |
device_id string
|
ID of the Futurae device. This field is the same as the device_id field in Futurae Auth API Reference. |
service_id string
|
ID of the Futurae service |
created_at timestamp
|
This field contains the timestamp of when the event was created. The timestamp is in ISO 8601 format with second precision or nanosecond precision, e.g., 2023-10-02T14:23:58.123456789Z . |
type string
|
The type of the event (type=pin.update.failed ) |
reason string
|
The reason why the pin update failed to complete. |
© Copyright 2024 Futurae Technologies AG.