Add hosts/services to host/service groups via Check_MK HTTP API

I have 1 rule in the “Assignment of hosts to host groups” section.

I can see it if I use action=get_ruleset and request the correct ruleset_name:

curl … &action=get_ruleset" -d ‘request={“ruleset_name”:“host_groups”}’

RESULT

{‘result’: {‘ruleset’: {‘’: [{‘condition’: {‘host_tags’: {‘environment’: ‘env_prod’, ‘operating_system’: ‘linux_os’}}, ‘value’: ‘Linux-HG’, ‘options’: {‘description’: u’Linux-Host_Grouping’}}]}, ‘configuration_hash’: ‘311bd86e3517e82349f888aacdf5d241’}, ‘result_code’: 0}

Trying to change the description:

curl … &action=set_ruleset" -d “request={‘ruleset_name’:‘host_groups’,‘ruleset’: {‘’: [{‘conditions’: {‘host_tags’: {‘environment’: ‘env_prod’, ‘operating_system’: ‘linux_os’}}, ‘options’: {‘description’: u’test123’}, ‘value’: ‘Linux-HG’, ‘options’: {‘description’: u’Linux-Host_Grouping’}}]},‘configuration_hash’: ‘311bd86e3517e82349f888aacdf5d241’}”

RESULT

{‘result’: u"Check_MK exception: Invalid rule {‘conditions’: {‘host_tags’: {‘environment’: ‘env_prod’, ‘operating_system’: ‘linux_os’}}, ‘options’: {‘description’: u’Linux-Host_Grouping’}, ‘value’: ‘Linux-HG’}", ‘result_code’: 1}

Trying to create a new rule:

curl … &action=set_ruleset" -d “request={‘ruleset_name’:‘host_groups’,‘ruleset’: {‘’: [{‘conditions’: {‘host_tags’: {‘environment’: ‘env_test’, ‘operating_system’: ‘linux_os’}}, ‘options’: {‘description’: u’test123’}, ‘value’: ‘Linux-HG’, ‘options’: {‘description’: u’test123_Grouping’}}]}}”

RESULT

{‘result’: u"Check_MK exception: Invalid rule {‘conditions’: {‘host_tags’: {‘environment’: ‘env_test’, ‘operating_system’: ‘linux_os’}}, ‘options’: {‘description’: u’test123_Grouping’}, ‘value’: ‘Linux-HG’}", ‘result_code’: 1}

I tried mutiple combinations and checked if the brackets close correctly. I am not able to find a problem. The syntax is really hard to read/write.