API Stability Long-Term

Despite its name, the upgradeAccount() GraphQL mutation is used to update profile information for an existing LogScale account. To see account profile information, use user() query in GraphQL.

Instead of using the GraphQL API, you can use the LogScale UI. See the General Settings section of the Manage Account documentation page for more information.

Syntax

Below is the syntax for the upgradeAccount() mutation field:

graphql
upgradeAccount(
     input: UpgradeAccountData!
   ): boolean

There are no special return datatypes for this mutation field. Below is an example of how it might be used:

Raw
graphql
mutation {
  upgradeAccount( input:
    { company: "The Company",
      firstName: "Bob",
      lastName: "Newhart",
      email: "bob@company.com",
    } )
}
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 {
  upgradeAccount( input:
    { company: \"The Company\",
      firstName: \"Bob\",
      lastName: \"Newhart\",
      email: \"bob@company.com\",
    } )
}"
}
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 {
  upgradeAccount( input:
    { company: \"The Company\",
      firstName: \"Bob\",
      lastName: \"Newhart\",
      email: \"bob@company.com\",
    } )
}"
}
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 { ^
  upgradeAccount( input: ^
    { company: \"The Company\", ^
      firstName: \"Bob\", ^
      lastName: \"Newhart\", ^
      email: \"bob@company.com\", ^
    } ) ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  upgradeAccount( input:
    { company: \"The Company\",
      firstName: \"Bob\",
      lastName: \"Newhart\",
      email: \"bob@company.com\",
    } )
}"
}'
    "$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 {
  upgradeAccount( input:
    { company: \"The Company\",
      firstName: \"Bob\",
      lastName: \"Newhart\",
      email: \"bob@company.com\",
    } )
}";
$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 {
  upgradeAccount( input:
    { company: \"The Company\",
      firstName: \"Bob\",
      lastName: \"Newhart\",
      email: \"bob@company.com\",
    } )
}"
}'''

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 {
  upgradeAccount( input:
    { company: \"The Company\",
      firstName: \"Bob\",
      lastName: \"Newhart\",
      email: \"bob@company.com\",
    } )
}"
}
);


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": {
    "upgradeAccount": true
  }
}

Given Datatypes

UpgradeAccountData, has several parameters that may be given. Below is a list of them along with a description of each:

Table: UpgradeAccountData

ParameterTypeRequiredDefaultStabilityDescription
Some arguments may be required, as indicated in the Required column. For some fields, this column indicates that a result will always be returned for this column.
Table last updated: Sep 23, 2024
commentstring  Long-TermAny comments related to the account, information not already stored in the other fields.
companystringyes Long-TermThe company with which the account holder is associated.
countryCodestring  Long-TermThe two-letter ISO 3166-1 Alpha-2 code for the country of residence (e.g., us).
emailstringyes Long-TermThe email address for the account or account holder.
firstNamestring  Long-TermThe first name of the account holder.
lastNamestringyes Long-TermThe last name or family name of the account holder.
phoneNumberstring  Long-TermThe telephone number of the account holder or the one to call regarding the account.
purposePurposes  Long-TermThe purpose of the upgrade. See Purposes.
stateCodestring  Long-TermThe two-letter, ISO 3166-2 country sub-division code for the state of residence (e.g., ny).