API for changing category groups

I´m trying to add a group to a category via the api using postman.
Is there a way to do that ?

Yes, everything in Discourse has an API. You can learn the API endpoints for stuff you see in the UI using How to reverse engineer the Discourse API


Isn’t there a other way to do it ?

I’m trying to assign a group to a category, so only people in that group can see this category.
I know that there are some similar questions out there, where you can reverse engineer DIscourse.
I want to change the marked property on the picture

In the second picture you can see what i tried inside postman

The number used in the request i got from trying to reverse engineer it as seen in the last picture

Did I make some mistake in my put request?

The _ parameter isn’t actually required - it is just there as a “cache buster”. You can remove it.

Also, you are looking at the incorrect request in your developer tools. You should be looking at the request that happens when you click the “save” button. (You will need to tick “preserve log” in dev tools so that the request doesn’t dissappear when the page reloads). Look for a PUT request to /categories/192.

Another thing to watch out for is that your parameters need to be urlencoded. In postman, you do this by changing from “form-data” to “x-www-form-urlencoded”.

Hope that helps get you a little bit closer!


Thanks for the reply.
I can´t seem to find the right request

Okay. I Think i found the right request.

As seen in the picture below, then i want to change the permissions array.

I tried doing that inside postman, my put request returns bad request

You should not be using the “raw” option on postman

1 Like

I tried that too

This is what I use when creating a category - I tend to use the form data however

Another thing to check is your error logs - this helps you along the path to be able to identify any calls are incorrect


Does it work?
And do you call your group name “1” ?

no the name of the group goes in the [groupname] section

It does work - I use that exact set up all the time.

So I could write permissons[random grop name]?

works for me - as long as the group exists of course first.

1 Like

I will try that later. Thanks for the replay

It worked. Thanks man. You a lifesaver


Hi @Edwin_Silva and @mikechristopher

I’m trying to apply the lessons here, but failing.
In my case, instead of CREATING a category with group access, I’m ADDING a group to an EXISTING category.

When I apply the lessons above, I get an error saying that the subcategories don’t have access to their parent category.

If I specify a permissions[group_name] for every single group name that the category already has, then I don’t get an error. So I at least know what the problem is. It think I’m setting just one permission and removing the rest.

Now I’m wondering if it’s possible to just add ONE new group permission without having to set the entire permission set.

Would you be willing to help?