Summary

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

API Stability Long-Term

Syntax

graphql
addIngestTokenV3(
      input: AddIngestTokenV3Input!
    ): IngestToken!

For the input, you'll have to give the repository's name, and the new name of the ingest token. See the Input Parameters section for details.

For the results, you can get the identifier of the ingest token added, its parser and related information. See the Returned Values section for more.

Example

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": "abc123-def456-ghi789",
      "parser": {
          "id": "abc123",
          "name": "parser1",
          "displayName": "Main Parser"
        }
    }
  }
}

Input Parameters

For the input, 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 Input 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 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 Values

For the results, you can get the unique identifier of the ingest token you added, as well as confirm its parser and related information.

Table: IngestToken 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: 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.