Summary

The usage() GraphQL query returns usage statistics.

API Stability Preview

Syntax

graphql
usage: UsageStats!

There is no input for this query field. For the results, thought, you can specify that you want the current usage measurements and limits for ingest, storage, scanned data and users, as well as other information. See the Returned Values section further down this page for more.

Example

Raw
graphql
query {
  usage
  {firstUsageTimeStamp,
   repositoriesIngest(month: 10, year: 2024) {__typename} 
   repositoriesStorage(month: 10, year: 2024) {__typename} 
  }
}
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 {
  usage
  {firstUsageTimeStamp,
   repositoriesIngest(month: 10, year: 2024) {__typename} 
   repositoriesStorage(month: 10, year: 2024) {__typename} 
  }
}"
}
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 {
  usage
  {firstUsageTimeStamp,
   repositoriesIngest(month: 10, year: 2024) {__typename} 
   repositoriesStorage(month: 10, year: 2024) {__typename} 
  }
}"
}
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 { ^
  usage ^
  {firstUsageTimeStamp, ^
   repositoriesIngest(month: 10, year: 2024) {__typename}  ^
   repositoriesStorage(month: 10, year: 2024) {__typename}  ^
  } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "query {
  usage
  {firstUsageTimeStamp,
   repositoriesIngest(month: 10, year: 2024) {__typename} 
   repositoriesStorage(month: 10, year: 2024) {__typename} 
  }
}"
}'
    "$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 {
  usage
  {firstUsageTimeStamp,
   repositoriesIngest(month: 10, year: 2024) {__typename} 
   repositoriesStorage(month: 10, year: 2024) {__typename} 
  }
}";
$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 {
  usage
  {firstUsageTimeStamp,
   repositoriesIngest(month: 10, year: 2024) {__typename} 
   repositoriesStorage(month: 10, year: 2024) {__typename} 
  }
}"
}'''

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 {
  usage
  {firstUsageTimeStamp,
   repositoriesIngest(month: 10, year: 2024) {__typename} 
   repositoriesStorage(month: 10, year: 2024) {__typename} 
  }
}"
}
);


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": {
    "usage": {
      "firstUsageTimeStamp": 1727779728976,
      "repositoriesIngest": {
        "__typename": "QueryInProgress"
      },
      "repositoriesStorage": {
        "__typename": "QueryInProgress"
      }
    }
  }
}

Returned Values

For the results, you can get the current usage measurements and limits for ingest, storage, scanned data and users. Below is a list of these along with a description of each:

Table: UsageStats Datatype

ParameterTypeRequiredDefaultStabilityDescription
Some input parameters may be required, as indicated in the Required column. For return values, this indicates that you are assured a value if the field is requested for the results.
Table last updated: Sep 11, 2025
currentStats(queryId: string): CurrentUsageQueryResultmultiple  Long-TermCurrent usage measurements and limits for ingest, storage, scanned data and users. See CurrentUsageQueryResult.
firstUsageTimeStamplongyes Long-TermThe date and time of first usage.
monthlyIngest(month: integer, year: integer, queryId: string): MonthlyIngestQueryResultmultipleyes Long-TermThe monthly amount of ingest. See MonthlyIngestQueryResult.
monthlyStoredData(month: integer, year: integer, queryId: string): MonthlyStorageQueryResultmultipleyes Long-TermThe monthly stored data. See MonthlyStorageQueryResult.
repositoriesIngest(month: integer, year: integer, day: integer, searchFilter: string, skip: integer, limit: integer, orderBy: OrderBy, sortBy: RepositoriesUsageQuerySortBy, queryId: string): RepositoriesUsageQueryResultTypesmultipleyes Long-TermThe ingest for the repositories. See OrderBy, and RepositoriesUsageQuerySortBy. See also RepositoriesUsageQueryResultTypes.
repositoriesStorage(month: integer, year: integer, day: integer, searchFilter: string, skip: integer, limit: integer, orderBy: OrderBy, sortBy: RepositoriesUsageQuerySortBy, queryId: string): RepositoriesUsageQueryResultTypesmultipleyes Long-TermThe storage for the repositories. See OrderBy, RepositoriesUsageQuerySortBy. and RepositoriesUsageQueryResultTypes,