API Stability Long-Term

The addIngestTokenV3() GraphQL mutation is used to create a new Ingest API Token.

To assign a parser to an ingest token, use the assignParserToIngestTokenV2() mutation. Use unassignIngestToken() to unassign one. To delete an ingest token, use removeIngestToken().

Hide query example.

Show query to list ingest tokens.

Rather than use the GraphQL API, you can use the LogScale UI to add an ingest token. See the Generate a Repository Ingest Token section, or the Ingest Tokens documentation page.

Syntax

graphql
addIngestTokenV3(
      input: AddIngestTokenV3Input!
    ): IngestToken!

Example

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

Raw
graphql
mutation {
  addIngestTokenV3(input: {
       repositoryName: "humio", 
       name: "tokener1"} )
     { name, token, parser { id, name, displayName} }
}
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 {
  addIngestTokenV3(input: {
       repositoryName: \"humio\", 
       name: \"tokener1\"} )
     { name, token, parser { id, name, displayName} }
}"
}
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 {
  addIngestTokenV3(input: {
       repositoryName: \"humio\", 
       name: \"tokener1\"} )
     { name, token, parser { id, name, displayName} }
}"
}
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 { ^
  addIngestTokenV3(input: { ^
       repositoryName: \"humio\",  ^
       name: \"tokener1\"} ) ^
     { name, token, parser { id, name, displayName} } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  addIngestTokenV3(input: {
       repositoryName: \"humio\", 
       name: \"tokener1\"} )
     { name, token, parser { id, name, displayName} }
}"
}'
    "$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 {
  addIngestTokenV3(input: {
       repositoryName: \"humio\", 
       name: \"tokener1\"} )
     { name, token, parser { id, name, displayName} }
}";
$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 {
  addIngestTokenV3(input: {
       repositoryName: \"humio\", 
       name: \"tokener1\"} )
     { name, token, parser { id, name, displayName} }
}"
}'''

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 {
  addIngestTokenV3(input: {
       repositoryName: \"humio\", 
       name: \"tokener1\"} )
     { name, token, parser { id, name, displayName} }
}"
}
);


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": {
    "addIngestTokenV3": {
      "name": "tokener1",
      "token": "03EpUzUiJUYdca47hXCQ~PmgMBN",
      "parser": {
          "id": "abc123",
          "name": "parser1",
          "displayName": "Main Parser"
        }
    }
  }
}

Given Datatype

For this input datatype, you'll have to provide the name of the repository and the name you want to give to the new ingest token. The table below provides more information about this and other input parameters:

Table: AddIngestTokenV3Input

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: Sep 17, 2024
customTokenstring  Long-TermThe custom token string. This requires special permissions and root privileges.
namestringyes Long-TermThe name of the ingest token to create.
parserstring  Long-TermThe unique identifier or name of the parser to assign to the ingest token. Parsers in packages can be referred to as packagescope/packagename:parsername.
repositoryNamestringyes Long-TermThe name of the repository.

Returned Datatype

With this returned datatype you can get the unique identifier of the ingest token you added, as well as confirm its parser and related information.

Table: IngestToken

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: Jun 26, 2025
namestringyes Long-TermThe name of ingest token.
parserParser  Long-TermThe parser with which the token is associated. See Parser.
tokenstringyes Long-TermThe token.