Getting Data In

How to create new MACRO using Rest api?

jadengoho
Builder

As of now i follow this code and it works perfectly :

  from splunklib.client import connect
  service = connect(username="admin", password="changeme", host="myhost", app="search")
  service.post('properties/macros/test', definition="test123")
  print service.get('properties/macros/test/definition')["body"]

I see it here https://answers.splunk.com/answers/223843/rest-endpoint-for-modifying-applocalmacrosconf.html
But that code was to update ,

What if i want to add or delete a macro using the code ?

0 Karma
1 Solution

harsmarvania57
Ultra Champion

Hi @jadenhoho,

To create macro using Rest API, you can achieve like this

import splunklib.client as client
service = client.connect(username="admin", password="changeme", host="myhost", app="search")
service.post('properties/macros', __stanza="test")
service.post('properties/macros/test', definition="test123")
print service.get('properties/macros/test/definition')["body"]

I don't have idea about delete one.

View solution in original post

0 Karma

harsmarvania57
Ultra Champion

Hi @jadenhoho,

To create macro using Rest API, you can achieve like this

import splunklib.client as client
service = client.connect(username="admin", password="changeme", host="myhost", app="search")
service.post('properties/macros', __stanza="test")
service.post('properties/macros/test', definition="test123")
print service.get('properties/macros/test/definition')["body"]

I don't have idea about delete one.

0 Karma

jadengoho
Builder

Thanks for that it is helpfull ,
i already tried

  import splunklib.client as client
 service = client.connect(username="admin", password="changeme", host="myhost", app="search")
service.delete('properties/macros/name')

But it only does disable the macro but not delete it fully,
is there any function that apply that ?

0 Karma

harsmarvania57
Ultra Champion

This one worked for me for deleting macro using REST API

import splunklib.client as client
service = client.connect(username="admin", password="changeme", host="myhost", app="search")
service.delete('/servicesNS/nobody/search/admin/macros/test')
0 Karma

jadengoho
Builder

Thank you very much this code really help 🙂

0 Karma
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

How much can you really learn in 3 minutes?

Observability can certainly be hard to understand – there's a lot of jargon and buzzwords and it seems to ...

Event Series: The Agentic SOC: Trust Before Autonomy

AI is fundamentally changing security operations, but true progress requires more than just automation—it ...

Free Professional Services for .conf26 Attendees

This year at .conf26, we are doing something a little different. We are bringing the best minds from ...