Summary

The languageRestrictions() GraphQL query is used to get restrictions for a particular language version. In particular, this will give you a list of functions that are allowed.

API Stability Preview

Syntax

graphql
languageRestrictions(
     version: LanguageVersionEnum!
   ): QueryLanguageRestriction

For the input, you'd enter the language version you want to check (e.g., legacy or federated1). See the Given Datatype section more choices. For the results, you can specify allowedFunctions to get a list of functions allowed for the given language version. See the Returned Datatype for more.

Example

Raw
graphql
query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}
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 {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}
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 {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}
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 { ^
  languageRestrictions(version: legacy)  ^
  {version { ^
    name ^
    futureName ^
  }, enabled, allowedFunctions} ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}'
    "$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 {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}";
$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 {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}'''

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 {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}
);


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": {
    "languageRestrictions": {
      "version": {
        "name": "legacy",
        "futureName": null
      },
      "enabled": false,
      "allowedFunctions": []
    }
  }
}

In the results shown here, you can see that enabled returns false, meaning there are no language restrictions for the legacy version.

Input Parameters

For the input, you have to specify the language version for which you want a list of functions allowed. Your choices are listed in the table below:

Table: LanguageVersionEnum Enum 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: Oct 29, 2025
federated1boolean  Long-TermIndicates if Federated version of the LogScale query is used.
filteralertboolean  DeprecatedThis has no effect and is no longer used internally. It will be removed at the earliest in version 1.189.
legacyboolean  Long-TermWhether legacy LogScale query language is used.
xdr1boolean  Long-TermWhether XDR1 is used.
xdrdetects1boolean  Long-TermWhether XDR Detects 1 query language is used.

Returned Values

For the results, you can get a list of functions allowed for the given language version, as well as whether such restrictions are enabled. These are described in the table here:

Table: QueryLanguageRestriction 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: Oct 2, 2024
allowedFunctions[string]yes PreviewThe list of functions allowed in the language version.
enabledbooleanyes PreviewWhether the query language restriction is enabled.
versionLanguageVersionyes PreviewThe query language version used. See LanguageVersion.