Webhook events

Bugsee will send notifications for the following events:

All webhook payloads has common structure, like the one below:

{
    "id": "4fhs63jd",
    "type": "app.created",
    "created_on": "2018-01-16T08:18:25.411Z",
    "payload": {}
}
Field Type Description
id String Unique request ID
type String Event type. One of the listed above
created_on String Date and time of event generation (ISO date format)
payload Object Event data

Depending on the "type" field value, "payload" field will contain various data described below.

 

Events data

app.created

This event is triggered when new application is created in organization. It has the following payload data structure:

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS",
        "description": "Our primary iOS application",
        "type": "ios",
        "subtype": "",
        "timezone": 0,
        "created_on": "2018-10-16T08:18:25.411Z",
        "updated_on": "2017-12-16T12:18:40.387Z",
        "created_by": {
            "name": "John Smith",
            "email": "john.smith@example.com"
        }
    }
}
Object Field Type Description
app
key String Unique application key (within organization)
name String Application name
url String Web URL for the application
description String Description for the application
type String Type of the application. One of the following: 'ios', 'android', 'web'
subtype String In case of type is 'android' or 'ios' this field contains the type of framework/platform used to create the actual app. One of 'xamarin', 'cordova', 'react_native', 'unity' or empty in case of native app
timezone Number Timezone offset from GMT [-11..11]
created_on String Date and time when application was created (ISO formatted string)
updated_on String Date and time when application was last updated (ISO formatted string)
created_by Object Object with the name and email of the user who created the application

app.updated

This event is triggered when one of the applications is updated in organization (one or more its fields are changed). It has the following payload data structure:

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS",
        "description": "Our primary iOS application",
        "type": "ios",
        "subtype": "",
        "timezone": 0,
        "created_on": "2018-10-16T08:18:25.411Z",
        "updated_on": "2017-12-16T12:18:40.387Z",
        "updated_by": {
            "name": "John Smith",
            "email": "john.smith@example.com"
        }
    },
    "changes": {
        "<field_name>": {
            "from": "",
            "to": ""
        }
    }
}
Object Field Type Description
app
key String Unique application key (within organization)
name String Application name
url String Web URL for the application
description String Description for the application
type String Type of the application. One of the following: 'ios', 'android', 'web'
subtype String In case of type is 'android' or 'ios' this field contains the type of framework/platform used to create the actual app. One of 'xamarin', 'cordova', 'react_native', 'unity' or empty in case of native app
timezone Number Timezone offset from GMT [-11..11]
created_on String Date and time when application was created (ISO formatted string)
updated_on String Date and time when application was last updated (ISO formatted string)
updated_by Object Information about the user who updated the application
changes
<field_name> Object Object which contains the information about fields that were changed. Each key-value pair in that object denotes the change, where key (<field_name>) is then name of field value is an object with "from" and "to" fields that contain previous and new values correspondingly

app.deleted

This event is triggered when some application is deleted from organization. It has the following payload data structure:

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS",
        "description": "Our primary iOS application",
        "type": "ios",
        "subtype": "",
        "timezone": 0,
        "created_on": "2018-10-16T08:18:25.411Z",
        "updated_on": "2017-12-16T12:18:40.387Z",
        "deleted_on": "2017-12-16T12:18:40.387Z",
        "deleted_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        }
    }
}
Object Field Type Description
app
key String Unique application key (within organization)
name String Application name
url String Web URL for the application
description String Description for the application
type String Type of the application. One of the following: 'ios', 'android', 'web'
subtype String In case of type is 'android' or 'ios' this field contains the type of framework/platform used to create the actual app. One of 'xamarin', 'cordova', 'react_native', 'unity' or empty in case of native app
timezone Number Timezone offset from GMT [-11..11]
created_on String Date and time when application was created (ISO formatted string)
updated_on String Date and time when application was last updated (ISO formatted string)
deleted_by Object Object with the name and email of the user who deleted the application

issue.created

This event is triggered when new issue is reported. It has the following payload data structure:

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS"
    },
    "issue": {
        "key": "IOS-123",
        "summary": "Something went wrong",
        "description": "When app started and sign up screen appeared it missed the 'Sign Up' button",
        "type": "bug",
        "state": "open",
        "labels": [],
        "url": "https://app.bugsee.com/#/apps/IOS/issues/IOS-123",
        "severity": "medium",
        "created_on": "2018-10-16T08:18:25.411Z",
        "updated_on": "2018-10-16T08:18:25.411Z",
        "recordings": [{
            "key": "vmd73hsr",
            "url": "https://app.bugsee.com/#/apps/IOS/issues/IOS-123/vmd73hsr",
            "environment": {},
            "attributes": {
                // Session/user attributes
            },
            "attachments": [{   // "attachments" property can be null if not present
                "name": "<Attachment name>",
                "url": "<Attachment URL>"
            }], 
            "created_on": "2018-10-16T08:18:25.411Z",
            "updated_on": "2018-10-16T08:18:25.411Z"
        }],
        "created_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        }
    }
}
Object Field Type Description
app
key String Unique issue key within application
name String Application name
url String Web URL for application
issue
key String Unique issue key within application
summary String Brief issue description
description String Detailed issue description
type String Issue type. One of "bug", "crash", "error"
state String Issue state. One of "open", "closed"
labels Array<String> List of text labels issue is marked with
url String Web URL for issue
severity String Issue severity. One of "unknown", "low", "medium", "high", "critical", "blocker"
created_on String Date and time when issue was created (ISO formatted string)
updated_on String Date and time when issue was last updated (ISO formatted string)
recordings Array<Object> List of recordings in the issue. Refer to recording section for details on Recording object
created_by Object Object with the name and email of the user who created the issue

issue.updated

This event is triggered when existing issue is updated (one or more fields are changed). It has the following payload data structure:

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS"
    },
    "issue": {
        "key": "IOS-123",
        "summary": "Something went wrong",
        "description": "When app started and sign up screen appeared it missed the 'Sign Up' button",
        "type": "bug",
        "state": "open",
        "labels": [],
        "url": "https://app.bugsee.com/#/apps/IOS/issues/IOS-123",
        "severity": "medium",
        "created_on": "2018-10-16T08:18:25.411Z",
        "updated_on": "2018-10-16T08:18:25.411Z",
        "updated_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        },
        "recordings": []
    },
    "changes": {
        "<field_name>": {
            "from": "",
            "to": ""
        }
    }
}
Object Field Type Description
app
key String Unique issue key within application
name String Application name
url String Web URL for application
issue
key String Unique issue key within application
summary String Brief issue description
description String Detailed issue description
type String Issue type. One of "bug", "crash", "error"
state String Issue state. One of "open", "closed"
labels Array<String> List of text labels issue is marked with
url String Web URL for issue
severity String Issue severity. One of "unknown", "low", "medium", "high", "critical", "blocker"
created_on String Date and time when issue was created (ISO formatted string)
updated_on String Date and time when issue was last updated (ISO formatted string)
changes
<field_name> Object Object which contains the information about fields that were changed. Each key-value pair in that object denotes the change, where key (<field_name>) is then name of field value is an object with "from" and "to" fields that contain previous and new values correspondingly

issue.closed

This event is triggered when issue is closed. It has the following payload data structure:

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS"
    },
    "issue": {
        "key": "IOS-123",
        "summary": "Something went wrong",
        "description": "When app started and sign up screen appeared it missed the 'Sign Up' button",
        "type": "bug",
        "state": "closed",
        "labels": [],
        "url": "https://app.bugsee.com/#/apps/IOS/issues/IOS-123",
        "severity": "medium",
        "created_on": "2018-10-16T08:18:25.411Z",
        "updated_on": "2018-10-16T08:18:25.411Z",
        "closed_on": "2018-10-16T08:18:25.411Z",
        "closed_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        },
        "recordings": []
    }
}
Object Field Type Description
app
key String Unique issue key within application
name String Application name
url String Web URL for application
issue
key String Unique issue key within application
summary String Brief issue description
description String Detailed issue description
type String Issue type. One of "bug", "crash", "error"
state String Issue state. One of "open", "closed"
labels Array<String> List of text labels issue is marked with
url String Web URL for issue
severity String Issue severity. One of "unknown", "low", "medium", "high", "critical", "blocker"
created_on String Date and time when issue was created (ISO formatted string)
updated_on String Date and time when issue was last updated (ISO formatted string)
closed_on String Date and time when issue was closed (ISO formatted string)
closed_by Object Object with the name and email of the user who closed the issue

issue.reopened

This event is triggered when issue is re-opened. It has the following payload data structure:

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS"
    },
    "issue": {
        "key": "IOS-123",
        "summary": "Something went wrong",
        "description": "When app started and sign up screen appeared it missed the 'Sign Up' button",
        "type": "bug",
        "state": "open",
        "labels": [],
        "url": "https://app.bugsee.com/#/apps/IOS/issues/IOS-123",
        "severity": "medium",
        "created_on": "2018-10-16T08:18:25.411Z",
        "updated_on": "2018-10-16T08:18:25.411Z",
        "closed_on": "2018-10-16T08:18:25.411Z",
        "closed_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        },
        "reopened_on": "2018-10-16T08:18:25.411Z",
        "reopened_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        },
        "recordings": []
    }
}
Object Field Type Description
app
key String Unique issue key within application
name String Application name
url String Web URL for application
issue
key String Unique issue key within application
summary String Brief issue description
description String Detailed issue description
type String Issue type. One of "bug", "crash", "error"
state String Issue state. One of "open", "closed"
labels Array<String> List of text labels issue is marked with
url String Web URL for issue
severity String Issue severity. One of "unknown", "low", "medium", "high", "critical", "blocker"
created_on String Date and time when issue was created (ISO formatted string)
updated_on String Date and time when issue was last updated (ISO formatted string)
closed_on String Date and time when issue was closed (ISO formatted string)
closed_by Object Object with the name and email of the user who closed the issue
reopened_on String Date and time when issue was closed (ISO formatted string)
reopened_by Object Object with the name and email of the user who re-opened the issue

issue.regressed

This event is triggered when regression is detected (closed issue is reported again in/after fixed version). It has the following payload data structure:

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS"
    },
    "issue": {
        "key": "IOS-123",
        "summary": "Something went wrong",
        "description": "When app started and sign up screen appeared it missed the 'Sign Up' button",
        "type": "crash",
        "state": "open",
        "labels": [],
        "url": "https://app.bugsee.com/#/apps/IOS/issues/IOS-123",
        "severity": "blocker",
        "created_on": "2018-10-16T08:18:25.411Z",
        "created_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        },
        "updated_on": "2018-10-16T08:18:25.411Z",
        "recordings": [{
            "key": "vmd73hsr",
            "url": "https://app.bugsee.com/#/apps/IOS/issues/IOS-123/vmd73hsr",
            "environment": {},
            "attributes": {
                // Session/user attributes
            },
            "attachments": [{   // "attachments" property can be null if not present
                "name": "<Attachment name>",
                "url": "<Attachment URL>"
            }],
            "created_on": "2018-10-16T08:18:25.411Z",
            "updated_on": "2018-10-16T08:18:25.411Z"
        }],
        "closed_on": "2018-10-16T08:18:25.411Z",
        "regressed_on": "2018-10-16T08:18:25.411Z"
    }
}
Object Field Type Description
app
key String Unique issue key within application
name String Application name
url String Web URL for application
issue
key String Unique issue key within application
summary String Brief issue description
description String Detailed issue description
type String Issue type. One of "bug", "crash", "error"
state String Issue state. One of "open", "closed"
labels Array<String> List of text labels issue is marked with
url String Web URL for issue
severity String Issue severity. One of "unknown", "low", "medium", "high", "critical", "blocker"
created_on String Date and time when issue was created (ISO formatted string)
updated_on String Date and time when issue was last updated (ISO formatted string)
recordings Array<Object> List of recordings in the issue. Usually contains one last recording from issue that caused regression. Refer to recording section for details on Recording object
closed_on String Date and time when issue was closed (ISO formatted string)
closed_by Object Object with the name and email of the user who closed the issue
regressed_on String Date and time when issue regression was detected (ISO formatted string)

issue.deleted

This event is triggered when new issue is deleted. It has the following payload data structure:

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS"
    },
    "issue": {
        "key": "IOS-123",
        "summary": "Something went wrong",
        "description": "When app started and sign up screen appeared it missed the 'Sign Up' button",
        "type": "bug",
        "state": "open",
        "labels": [],
        "url": "https://app.bugsee.com/#/apps/IOS/issues/IOS-123",
        "severity": "medium",
        "created_on": "2018-10-16T08:18:25.411Z",
        "updated_on": "2018-10-16T08:18:25.411Z",
        "deleted_on": "2018-10-16T08:18:25.411Z",
        "deleted_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        },
        "recordings": []
    }
}
Object Field Type Description
app
key String Unique issue key within application
name String Application name
url String Web URL for application
issue
key String Unique issue key within application
summary String Brief issue description
description String Detailed issue description
type String Issue type. One of "bug", "crash", "error"
state String Issue state. One of "open", "closed"
labels Array<String> List of text labels issue is marked with
url String Web URL for issue
severity String Issue severity. One of "unknown", "low", "medium", "high", "critical", "blocker"
created_on String Date and time when issue was created (ISO formatted string)
updated_on String Date and time when issue was last updated (ISO formatted string)
deleted_on String Date and time when issue was deleted (ISO formatted string)
deleted_by Object Object with the name and email of the user who deleted the issue

issue.comment

This event is triggered when someone add comment to issue. It has the following payload data structure:

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS"
    },
    "issue": {
        "key": "IOS-123",
        "summary": "Something went wrong",
        "url": "https://app.bugsee.com/#/apps/IOS/issues/IOS-123"
    },
    "comment": {
        "created_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        },
        "text": "I am on it! Will fix asap!"
    }
}
Object Field Type Description
app
key String Unique issue key within application
name String Application name
url String Web URL for application
issue
key String Unique issue key within application
summary String Brief issue description
url String Web URL for issue
comment
created_by Object Object with the name and email of the user who created the comment
text String Comment message

user.created

This event is triggered when new user is added to the organization. It has the following payload data structure:

{
    "user": {
        "name": "Amy Jameson",
        "email": "amy.jameson@example.com",
        "admin": false,
        "disabled": false,
        "country": "us",
        "timezone": 0,
        "created_on": "2018-10-16T08:18:25.411Z",
        "updated_on": "2018-10-16T08:18:25.411Z",
        "created_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        }
    }
}
Object Field Type Description
user
name String Full user name
email String Email address
admin Boolean Flag that indicates whether user is admin or not
disabled Boolean Flag that indicates whether account is disabled or not
country String Country code for the user (may not be accurate because is guessed from IP)
timezone Number Timezone offset from GMT
created_on String Date and time when account was created (ISO formatted string)
updated_on String Date and time when account was last updated (ISO formatted string)
created_by Object Object with the name and email of the user who created the account (usually this the one who sends an invite)

user.updated

This event is triggered when user account changes. It has the following payload data structure:

{
    "user": {
        "name": "Amy Jameson",
        "email": "amy.jameson@example.com",
        "admin": false,
        "disabled": false,
        "country": "us",
        "timezone": 0,
        "created_on": "2018-10-16T08:18:25.411Z",
        "updated_on": "2018-10-16T08:18:25.411Z",
        "created_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        }
    },
    "changes": {
        "<field_name>": {
            "from": "",
            "to": ""
        }
    }
}
Object Field Type Description
user
name String Full user name
email String Email address
admin Boolean Flag that indicates whether user is admin or not
disabled Boolean Flag that indicates whether account is disabled or not
country String Country code for the user (may not be accurate because is guessed from IP)
timezone Number Timezone offset from GMT
created_on String Date and time when account was created (ISO formatted string)
updated_on String Date and time when account was last updated (ISO formatted string)
changes
<field_name> Object Object which contains the information about fields that were changed. Each key-value pair in that object denotes the change, where key (<field_name>) is then name of field value is an object with "from" and "to" fields that contain previous and new values correspondingly

user.deleted

This event is triggered when new user is deleted from organization. It has the following payload data structure:

{
    "user": {
        "name": "Amy Jameson",
        "email": "amy.jameson@example.com",
        "admin": false,
        "disabled": false,
        "country": "us",
        "timezone": 0,
        "created_on": "2018-10-16T08:18:25.411Z",
        "updated_on": "2018-10-16T08:18:25.411Z",
        "deleted_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        }
    }
}
Object Field Type Description
user
name String Full user name
email String Email address
admin Boolean Flag that indicates whether user is admin or not
disabled Boolean Flag that indicates whether account is disabled or not
country String Country code for the user (may not be accurate because is guessed from IP)
timezone Number Timezone offset from GMT
created_on String Date and time when account was created (ISO formatted string)
updated_on String Date and time when account was last updated (ISO formatted string)
deleted_by Object Object with the name and email of the user who deleted the account

 

unsymbolicated.created

This event is triggered when issue is marked as "missing symbols".

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS"
    },
    "issue": {
        "key": "IOS-123",
        "summary": "Something went wrong",
        "description": "When app started and sign up screen appeared it missed the 'Sign Up' button",
        "type": "bug",
        "state": "open",
        "labels": [],
        "url": "https://app.bugsee.com/#/apps/IOS/issues/IOS-123",
        "severity": "medium",
        "created_on": "2018-10-16T08:18:25.411Z",
        "updated_on": "2018-10-16T08:18:25.411Z",
        "recordings": [{
            "key": "vmd73hsr",
            "url": "https://app.bugsee.com/#/apps/IOS/issues/IOS-123/vmd73hsr",
            "environment": {},
            "attributes": {
                // Session/user attributes
            },
            "attachments": [{   // "attachments" property can be null if not present
                "name": "<Attachment name>",
                "url": "<Attachment URL>"
            }],
            "created_on": "2018-10-16T08:18:25.411Z",
            "updated_on": "2018-10-16T08:18:25.411Z"
        }],
        "created_by": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        }
    }
}
Object Field Type Description
app
key String Unique issue key within application
name String Application name
url String Web URL for application
issue
key String Unique issue key within application
summary String Brief issue description
description String Detailed issue description
type String Issue type. One of "bug", "crash", "error"
state String Issue state. One of "open", "closed"
labels Array<String> List of text labels issue is marked with
url String Web URL for issue
severity String Issue severity. One of "unknown", "low", "medium", "high", "critical", "blocker"
created_on String Date and time when issue was created (ISO formatted string)
updated_on String Date and time when issue was last updated (ISO formatted string)
recordings Array<Object> List of recordings in the issue. Refer to recording section for details on Recording object
created_by Object Object with the name and email of the user who created the issue

feedback.message.in

This event is triggered when new feedback message is received from end user device (phone, tablet, etc)

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS"
    },
    "thread": {
        "state": "open",
        "user": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        },
        "device_id": "D11B5769-781B-44B0-9CB7-B2D8D9C7A831"
    },
    "message": {
        "messages": [{
            "text": "This is my message!",
            "created_on": "2018-10-16T08:18:25.411Z"
        }],
        "user": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        }
    }
}
Object Field Type Description
app
key String Unique issue key within application
name String Application name
url String Web URL for application
thread
state String Thread state. Either "open" or "closed"
user Object Object with the name and email of the user who created/started the thread
device_id String Unique identifier for end-user device
message
messages Array Array of objects of ({ "text": "", "created_on": "" }) that represent actual messages
user Object Object with the name and email of the user who sent the message(s)
device_id String Unique identifier for end-user device

feedback.message.out

This event is triggered when new feedback message is sent to the end user device (phone, tablet, etc) from dashboard

{
    "app": {
        "key": "IOS",
        "name": "iOS application",
        "url": "https://app.bugsee.com/#/apps/IOS"
    },
    "thread": {
        "state": "open",
        "user": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        },
        "device_id": "D11B5769-781B-44B0-9CB7-B2D8D9C7A831"
    },
    "message": {
        "messages": [{
            "text": "This is my message!",
            "created_on": "2018-10-16T08:18:25.411Z"
        }],
        "user": {
            "name": "John Smith",
            "email": "john.smith@examble.com"
        }
    }
}
Object Field Type Description
app
key String Unique issue key within application
name String Application name
url String Web URL for application
thread
state String Thread state. Either "open" or "closed"
user Object Object with the name and email of the user who created/started the thread
device_id String Unique identifier for end-user device
message
messages Array Array of objects of ({ "text": "", "created_on": "" }) that represent actual messages
user Object Object with the name and email of the user who sent the message(s)
device_id String Unique identifier for end-user device

Common data structures

Recording

{
    "key": "vmd73hsr",
    "url": "https://app.bugsee.com/#/apps/IOS/issues/IOS-123/vmd73hsr",
    "environment": {},
    "created_on": "2018-10-16T08:18:25.411Z",
    "updated_on": "2018-10-16T08:18:25.411Z"
}
Field Type Description
key String Unique key for the recording
url String Web URL for the recording
environment Object Object that contains all the environment information. Refer to environment section for more details
created_on String Date and time when recording was created (ISO formatted string)
updated_on String Date and time when recording was last updated (ISO formatted string)

Environment

{
    "app": {
        "package_id": "com.example.MyCoolApp",
        "version": "1.0.0",
        "build": "1",
        "installer": "",
        "debuggable": false,
        "debugger_attached": false,
        "instant": false,
        "extension": false,
        "locale": "en_US",
        "build_type": "com.google.android.instantapps.supervisor",
        "build_flavor": "",
        "debug": false,
        "distribution": "",
        "mdm_config": false
    },
    "platform": {
        "type": "android",
        "version": "24",
        "release_name": "7.0",
        "build": "",
        "jailbreak": false,
        "memory_total": 0,
        "memory_free": 0,
        "disk_total": 0,
        "disk_free": 0,
        "os": "",
        "arch": "",
        "locale": "",
        "locale_extended_info": {
            "format_locale" : "en_US",
            "display_locale" : "en_US",
            "chosen_locales" : [ 
                "en_US"
            ]
        },
        "supported_abis": [
            "arm64-v8a",
            "armeabi-v7a",
            "armeabi"
        ]
    },
    "hardware": {
        "manufacturer": "samsung",
        "model": "SM-G925F",
        "model_name": "SM-G925F",
        "android_id": "",
        "device_id": "",
        "name": "",
        "battery": 0,
        "charging": false,
        "low_power_mode": "",
        "wifi": "",
        "carrier": "",
        "network": {
            "name": "",
            "mcc": "",
            "mnc": "",
            "country": ""
        },
        "screen": {
            "dpiX": 0,
            "dpiY": 0,
            "xdpi" : 580.570983886719,
            "ydpi" : 580.570983886719,
            "density" : 4,
            "scaled_density" : 4,
            "density_dpi" : 640,
            "density_dpi_name" : "xxxdpi",
            "height" : 640,
            "width" : 360,
            "scale" : 4
        }
    }
}