I know labels IS EMPTY shows issues without labels, but I need the opposite: a list of label names that are not used on any issue.
What is the simplest way to find and delete these unused labels in Jira Cloud? IS there a native Jira option or JQL query for this?
I'm unaware of any query that runs again labels. Queries in Confluence and Jira run against Content and Work Items, so you can't, say, ask Jira to find labels that aren't being used.
There are marketplace apps that can help you find labels that aren't being used on the Confluence side (Label Manager from EasyApp comes to mind), but no native functionality to really manage labels.
@Akshitha Kankanala while @Rob Hean mentioned one of our apps for Confluence, a label manager is part of Space Content Manager, you can merge and delete labels but not do the search you are talking about. It is something we have talked about adding if you want to reach out stavros@easyapps.app.
Or do you mean Jira? You chose Confluence for the post but then wrote Jira in the description.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Welcome to the community.
@Arkadiusz Wroblewski and @Gabriela - LeanZero are both providing part of the anser.
Atlassian itself manages this if work items (issues) carry a label, if a label is not used, this is removed (no manual action to take).
The labels API endpoint, sohwa used labels only (but based on the ootb label optin, no
If custom fields are create based on type label, the this is different, as these are managed within the realm of the CF.
The options can't be visualised via the API as the API endpoint doesn't relate to custom labels field, but only the ootb Label option.
Then use the search API endpoint.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Good catch on the endpoint, Arek. It's scoped to the global Labels field, so any Labels-type custom field someone's added is invisible to it, and an audit built on it alone would quietly under-report.
To cover those you'd pull the field list first, keep the ones whose type is labels, then query each by id rather than by the system field: labels = "x" catches the global one, cf[12345] = "x" the custom ones. More moving parts, but it stops the blind spot.
None of which changes the answer for @Akshitha Kankanala though. Whichever field a label sits in, it still only exists while something carries it, so there's no orphan list waiting to be cleaned up either way.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello and Welcome to Atlassian Community @Akshitha Kankanala
@Rob Hean Have Right 100 % Right.
Easiest Way ? Atlassian Marketplace and third-party-app.
@Gabriela - LeanZero GET /rest/api/3/label are not really reliable Endpoint. Lets say Customer create Customfield Storing Labels. This Enpoint will give you only output from Global System field making this Enpoint as not really reliable.
Best,
Arek🤠
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
There's no list to find, because a label isn't an object Jira keeps on its own. It exists only through the issues carrying it. Atlassian's KB puts it plainly: to delete a label you remove it from all the issues where it's used, and once it's gone from all of them it stops showing up when you browse. No admin screen, no registry, nothing sitting there to purge.
So the question flips. If a label still turns up in the picker, some issue still has it, usually one you can't see from where you're standing.
That's normally a project you don't browse or don't have permission on, which is exactly what makes a label look orphaned when it isn't. To chase a specific one, run labels = "thatlabel" from an account with browse rights across the whole site. Comes back empty for you while the label is still being offered? That gap is the answer.
For a full audit, GET /rest/api/3/label pages through the labels your instance knows about, and you can run each through a search for labels = "X" and flag whatever returns empty. Mind that search moved to /rest/api/3/search/jql, the old /search is retired. I've not run this against your site though, so dry-run it first.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.