API Stability Long-Term

The installedPackage() GraphQL query provides details for a specific package installed on a specific view.

The are several mutation fields related to package installation: installPackageFromRegistryV2() and installPackageFromZip() for installing packages; updatePackageFromRegistryV2() and updatePackageFromZip() for updating them; and uninstallPackage() for uninstalling a package.

For more information on packages, see the Package Management documentation page.

Syntax

graphql
installedPackage(
     packageId: VersionedPackageSpecifier!, 
     viewName: string!
   ): PackageInstallation

For the input, you'll have to provide the the package name and it's version. The datatype used for that is VersionedPackageSpecifier, which is a scalar. If you don't know that, you can find it by using the installedPackages parameter with either the repository() or repositories() query fields.

For the results, you can ask who installed the package and when, as well as whether there are any updates available. If no packages are installed, nothing is returned. See the Returned Datatype for details on these and other such items.

Example

Below is an example of how this query field might be used:

Raw
graphql
query {
  installedPackage(packageId: "humio/insights@0.0.14", viewName: "humio") 
  {
    installedBy{username,timestamp}, 
    updatedBy{username, timestamp},
    availableUpdate, source
  }
}
Mac OS or Linux (curl)
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "query {
  installedPackage(packageId: \"humio/insights@0.0.14\", viewName: \"humio\") 
  {
    installedBy{username,timestamp}, 
    updatedBy{username, timestamp},
    availableUpdate, source
  }
}"
}
EOF
Mac OS or Linux (curl) One-line
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "query {
  installedPackage(packageId: \"humio/insights@0.0.14\", viewName: \"humio\") 
  {
    installedBy{username,timestamp}, 
    updatedBy{username, timestamp},
    availableUpdate, source
  }
}"
}
EOF
Windows Cmd and curl
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql ^
    -H "Authorization: Bearer $TOKEN" ^
    -H "Content-Type: application/json" ^
    -d @'{"query" : "query { ^
  installedPackage(packageId: \"humio/insights@0.0.14\", viewName: \"humio\")  ^
  { ^
    installedBy{username,timestamp},  ^
    updatedBy{username, timestamp}, ^
    availableUpdate, source ^
  } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "query {
  installedPackage(packageId: \"humio/insights@0.0.14\", viewName: \"humio\") 
  {
    installedBy{username,timestamp}, 
    updatedBy{username, timestamp},
    availableUpdate, source
  }
}"
}'
    "$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $query = "query {
  installedPackage(packageId: \"humio/insights@0.0.14\", viewName: \"humio\") 
  {
    installedBy{username,timestamp}, 
    updatedBy{username, timestamp},
    availableUpdate, source
  }
}";
$query =~ s/\n/ /g;
my $json = sprintf('{"query" : "%s"}',$query);
my $req = HTTP::Request->new("POST", $uri );

$req->header("Authorization" => "Bearer $TOKEN");
$req->header("Content-Type" => "application/json");

$req->content( $json );

my $lwp = LWP::UserAgent->new;

my $result = $lwp->request( $req );

print $result->{"_content"},"\n";
Python
python
#! /usr/local/bin/python3

import requests

url = '$YOUR_LOGSCALE_URL/graphql'
mydata = r'''{"query" : "query {
  installedPackage(packageId: \"humio/insights@0.0.14\", viewName: \"humio\") 
  {
    installedBy{username,timestamp}, 
    updatedBy{username, timestamp},
    availableUpdate, source
  }
}"
}'''

resp = requests.post(url,
                     data = mydata,
                     headers = {
   "Authorization" : "Bearer $TOKEN",
   "Content-Type" : "application/json"
}
)

print(resp.text)
Node.js
javascript
const https = require('https');

const data = JSON.stringify(
    {"query" : "query {
  installedPackage(packageId: \"humio/insights@0.0.14\", viewName: \"humio\") 
  {
    installedBy{username,timestamp}, 
    updatedBy{username, timestamp},
    availableUpdate, source
  }
}"
}
);


const options = {
  hostname: '$YOUR_LOGSCALE_URL',
  path: 'graphql',
  port: 443,
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    Authorization: 'BEARER ' + process.env.TOKEN,
    'User-Agent': 'Node',
  },
};

const req = https.request(options, (res) => {
  let data = '';
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', (d) => {
    data += d;
  });
  res.on('end', () => {
    console.log(JSON.parse(data).data);
  });
});

req.on('error', (error) => {
  console.error(error);
});

req.write(data);
req.end();
Example Responses
Success (HTTP Response Code 200 OK)
json
{
  "data": {
    "installedPackage": {
      "installedBy": {
        "username": "System",
        "timestamp": "2025-10-10T11:09:56.280Z"
      },
      "updatedBy": {
        "username": "System",
        "timestamp": "2025-10-10T11:09:56.280Z"
      },
      "availableUpdate": null,
      "source": "HumioHub"
    }
  }
}

There are many parameters and sub-parameters for the PackageInstallation. They're listed in the table in the next section here.

Returned Datatype

The returned datatype is used to get information on an installed package found, such as who installed it and when, whether are any updates available, and more details on each package. This is described in the table here, along with links to other tables containing sub-parameters:

Table: PackageInstallation

ParameterTypeRequiredDefaultStabilityDescription
Some arguments may be required, as indicated in the Required column. For return datatypes, this indicates that you must specify which fields you want returned in the results.
Table last updated: May 27, 2025
availableUpdatePackageVersion  Long-TermVersion of package available for updating. PackageVersion is a scalar.
idVersionedPackageSpecifieryes Long-TermThe identifier for the package and version. VersionedPackageSpecifier is a scalar.
installedByUserAndTimestampyes Long-TermThe user identifier and time stamp for installation. See UserAndTimestamp.
packagePackage2yes Long-TermDesignate a LogScale package. See Package2.
sourcePackageInstallationSourceTypeyes Long-TermFinds updates on a package. Looks also for updates installed manually. See PackageInstallationSourceType.
updatedByUserAndTimestampyes Long-TermThe user and time stamp for the user who updated the package. See UserAndTimestamp.