API Stability Long-Term

The createKafkaEventForwarder() GraphQL mutation field may be used to create a Kafka event forwarder and return it.

To test a Kafka event forwarder, you can use the testKafkaEventForwarderV2() mutation. Use the updateKafkaEventForwarder() mutation to update a Kafka event forwarder.

Related to these mutations are the enableEventForwarder() and disableEventForwarder() mutations enable and disable enable an event forwarder; and deleteEventForwarder() to delete an event forwarder. For these mutations, you'll need to use eventForwarders() to get the unique identifier for the event forwarder you want to change or delete.

For more information on event forwarders, see the Event Forwarders documentation page. You may also want to look at the Event Forwarding and the Events page for related information.

Syntax

graphql
createKafkaEventForwarder(
      input: CreateKafkaEventForwarder!
   ): KafkaEventForwarder!

Example

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

Raw
graphql
mutation {
  createKafkaEventForwarder(input: 
    { name: "kafka-forwarder",
      description: "Kafka Forwarder",
      properties: "bootstrap.servers=localhost:3456 \n
                   batch.size=100",
      topic: "hot-potatoes",
      enabled: false
    } )
  { id }
}
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 {
  createKafkaEventForwarder(input: 
    { name: \"kafka-forwarder\",
      description: \"Kafka Forwarder\",
      properties: \"bootstrap.servers=localhost:3456 \n
                   batch.size=100\",
      topic: \"hot-potatoes\",
      enabled: false
    } )
  { id }
}"
}
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 {
  createKafkaEventForwarder(input: 
    { name: \"kafka-forwarder\",
      description: \"Kafka Forwarder\",
      properties: \"bootstrap.servers=localhost:3456 \n
                   batch.size=100\",
      topic: \"hot-potatoes\",
      enabled: false
    } )
  { id }
}"
}
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 { ^
  createKafkaEventForwarder(input:  ^
    { name: \"kafka-forwarder\", ^
      description: \"Kafka Forwarder\", ^
      properties: \"bootstrap.servers=localhost:3456 \n ^
                   batch.size=100\", ^
      topic: \"hot-potatoes\", ^
      enabled: false ^
    } ) ^
  { id } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  createKafkaEventForwarder(input: 
    { name: \"kafka-forwarder\",
      description: \"Kafka Forwarder\",
      properties: \"bootstrap.servers=localhost:3456 \n
                   batch.size=100\",
      topic: \"hot-potatoes\",
      enabled: false
    } )
  { id }
}"
}'
    "$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 {
  createKafkaEventForwarder(input: 
    { name: \"kafka-forwarder\",
      description: \"Kafka Forwarder\",
      properties: \"bootstrap.servers=localhost:3456 \n
                   batch.size=100\",
      topic: \"hot-potatoes\",
      enabled: false
    } )
  { id }
}";
$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 {
  createKafkaEventForwarder(input: 
    { name: \"kafka-forwarder\",
      description: \"Kafka Forwarder\",
      properties: \"bootstrap.servers=localhost:3456 \n
                   batch.size=100\",
      topic: \"hot-potatoes\",
      enabled: false
    } )
  { id }
}"
}'''

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 {
  createKafkaEventForwarder(input: 
    { name: \"kafka-forwarder\",
      description: \"Kafka Forwarder\",
      properties: \"bootstrap.servers=localhost:3456 \n
                   batch.size=100\",
      topic: \"hot-potatoes\",
      enabled: false
    } )
  { id }
}"
}
);


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();

Given Datatype

For this input datatype, you would provide the name of the event forwarder, and the Kafka producer configuration used to forward events. These are listed and explained, along with other parameters, in the table below:

Table: CreateKafkaEventForwarder

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: Mar 28, 2025
descriptionstringyes Long-TermDescription of the event forwarder.
enabledbooleanyestrueLong-TermWhether the event forwarder is enabled.
namestringyes Long-TermName of the event forwarder.
propertiesstringyes Long-TermThe Kafka producer configuration used to forward events in the form of properties (x.y.z=abc). See Kafka Configuration.
topicLanguageVersionEnumyes Long-TermThe Kafka topic to which the events should be forwarded. See LanguageVersionEnum.

Returned Datatype

For KafkaEventForwarder, there are also a few parameters. Below is a list of them:

The returned datatype can provide the unique identifier for the event forwarder, the Kafka topic to which events should be forwarded, and other details. Below is a list of parameters you can request, along with descriptions:

Table: KafkaEventForwarder

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 23, 2025
descriptionstringyes Long-TermThe description of the event forwarder.
enabledbooleanyes Long-TermWhether the event forwarder is enabled.
idstringyes Long-TermThe unique identifier of the event forwarder.
namestringyes Long-TermThe name of the event forwarder.
propertiesstringyes Long-TermThe Kafka producer configuration used to forward events in the form of properties (x.y.z=abc). See Kafka Configuration.
topicstringyes Long-TermThe Kafka topic where the events should be forwarded.