Skip to content

The browsers of the people connected to your app

OpenAPI JSON
GET
/v1/installs
curl --request GET \
--url 'https://api.eu.apigami.com/v1/installs?limit=500' \
--header 'Authorization: Bearer <token>'

Every browser attached to a person connected to your app, by the references your team sees. A page counts people with a browser, not browsers: one person’s browsers always come on the same page, most recently seen first. Follow next until it is null. Your API key works here, and so does the production version’s APIGAMI_KEY in code Apigami hosts.

limit
integer
default: 500 >= 1 <= 1000

How many people a page holds at most. Default 500, clamped to 1000.

cursor
string

The next of a previous answer: an opaque place after the last person of that page. Leave it out for the first page.

The browsers of a page of people. next is the cursor of the following page, or null after the last one.

Media typeapplication/json
object
installs
required
Array<object>
object
user_ref

The person this browser is attached to.

string
install_ref
string
label

The name the user gave that browser.

string | null
flavor
string
Allowed values: standard devtools
online

Holds a live connection right now.

boolean
presence

The status extension.online and extension.offline announce, which ignores brief interruptions.

string
Allowed values: online offline
presence_changed_at
string format: date-time
last_seen_at
string format: date-time
granted_domains

Among the sites this browser lets Apigami access, those the user approved for your app. Null for an older install that does not report them.

Array<string> | null
connected_at

When the person connected to your app.

string format: date-time
next
required

Pass it back as cursor; null after the last page.

string | null
Example
{
"installs": [
{
"user_ref": "usr_3f9c1a0e7b2d4c58a61e9f0b2d7c4e13",
"install_ref": "ins_8b1e4f2a9c3d4e5f8a7b6c5d4e3f2a1b",
"label": "Work laptop",
"flavor": "standard",
"online": true,
"presence": "online",
"presence_changed_at": "2026-09-27T08:02:11.000Z",
"last_seen_at": "2026-09-27T09:41:05.000Z",
"granted_domains": [
"example.com"
],
"connected_at": "2026-09-01T08:00:00.000Z"
}
],
"next": "MjAyNi0wOS0wMVQwODowMDowMC4wMDAxMjNafHVzcl8zZjljMWEwZTdiMmQ0YzU4YTYxZTlmMGIyZDdjNGUxMw"
}

A query parameter could not be read, or the cursor names a person no longer in your team’s references.

Media typeapplication/json
object
error
required
string
consentPending

Present and true when the approval window is open and the user has not answered within 45 s.

boolean
Examples
{
"error": "bad cursor"
}

Missing, malformed or revoked API key, or the key of a version that is not in production.

Media typeapplication/json
object
error
required
string
consentPending

Present and true when the approval window is open and the user has not answered within 45 s.

boolean
Example
{
"error": "bad client credentials"
}

Your app is disabled.

Media typeapplication/json
object
error
required
string
consentPending

Present and true when the approval window is open and the user has not answered within 45 s.

boolean
Example
{
"error": "client disabled"
}