WWW::Splunk::API - Splunk REST client


WWW::Splunk::API is a low-level interface to Splunk log search engine. It deals with HTTP communication as well as working around certain interface glitches.

See for API definition.

This module is designed to be Splunk API version agnostic.

new (params)

A constructor.

  my $splunk = WWW::Splunk::API->new({
          host => $host,
          port => $port,
          login => $login,
          password => $password,
          unsafe_ssl => 0,
          verbose => 0,

delete (parameters)

Wrapper around HTTP::Request::Common::DELETE().

post (parameters)

Wrapper around HTTP::Request::Common::POST().

get (parameters)

Wrapper around HTTP::Request::Common::GET().

head (parameters)

Wrapper around HTTP::Request::Common::HEAD(). Not used anywhere in splunk API

put (parameters)

Wrapper around HTTP::Request::Common::PUT(). Not used anywhere in splunk API

request (method, location, [data], [callback])

Request a Splunk api and deal with the results.

Method can be either a HTTP::Request instance (see HTTP::Request::Common for useful ones), or a plain string, such as "GET" or "DELETE."

Optional data is has reference gets serialized into a request body for POST request. Use undef in case you don't have any data to send, but need to specify a callback function in subsequent argument.

Call-back function can be specified for a single special case, where a XML stream of <results> elements is expected.


WWW::Splunk, sc


Lubomir Rintel, <>, Michal Josef Špaček <>

The code is hosted on GitHub Bug fixes and feature enhancements are always welcome.


 This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.