Summary

The createPersonalUserToken() mutation creates a personal user token for the authenticated user. The token inherits all permissions held by that user at the time of creation; it does not carry a separate permission set. This mutation returns only the token string. To receive the token string together with metadata such as its expiration time and IP filter assignment, use createPersonalUserTokenV2() instead. To create a personal user token through the UI, see Personal API Token.

Syntax

graphql
createPersonalUserToken(
      input: CreatePersonalUserTokenInput!
   ): String!

The mutation accepts a required input argument of type CreatePersonalUserTokenInput. Both fields within the input type are optional: expireAt sets a Unix epoch expiration timestamp in milliseconds, and ipFilterId restricts token usage to the IP addresses defined in the specified IP filter. Passing null for expireAt creates a non-expiring token. Passing null for ipFilterId applies no IP restriction.

The mutation returns the new token string on success.

Example

Raw
graphql
mutation {
  createPersonalUserToken(input:
      { expireAt: null } )
}
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" : "mutation {
  createPersonalUserToken(input:
      { expireAt: null } )
}"
}
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" : "mutation {
  createPersonalUserToken(input:
      { expireAt: null } )
}"
}
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" : "mutation { ^
  createPersonalUserToken(input: ^
      { expireAt: null } ) ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  createPersonalUserToken(input:
      { expireAt: null } )
}"
}'
    "$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 = "mutation {
  createPersonalUserToken(input:
      { expireAt: null } )
}";
$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" : "mutation {
  createPersonalUserToken(input:
      { expireAt: null } )
}"
}'''

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" : "mutation {
  createPersonalUserToken(input:
      { expireAt: null } )
}"
}
);


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": {
    "createPersonalUserToken": "abc123-def456-ghi789"
  }
}

Input Parameters

The CreatePersonalUserTokenInput type accepts two optional parameters: an expiration timestamp to limit how long the token remains valid, and an IP filter ID to restrict which IP addresses can authenticate with the token. The following table describes each input parameter:

Table: CreatePersonalUserTokenInput Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
expireAtLong  Long-Term Name of the view of the parser.
ipFilterIdString  Long-Term Name of the parser.