I’m working with JIRA’s SOAP API to retrieve issues from our server. I need to filter issues by a specific custom field and also update that field later.
When I fetch issues, I can see the custom field data (customfieldId, key, values) in the response. The getCustomFields API method would normally help me find the field ID by name, but there’s a problem.
The issue is that getCustomFields requires admin permissions. When I try to call it with a regular user account, it throws an exception saying admin access is required.
Is there another approach to identify the custom field ID I need using a non-admin account? I’m looking for any alternative method that works with standard user permissions.
Additionally, if anyone knows how to update custom field values for issues through the API with regular user access, that would be really helpful too.
Hit this same problem last year when our admin locked down API access. I used the search functionality to work around it - when you call getIssuesFromFilter or similar methods, the RemoteIssue objects come back with all custom field data and IDs. Just examine issues that already have your target field populated and build a mapping table from that. Once you’ve got the customfieldId mapped, updating through updateIssue() is easy. Make sure your user has edit permissions on both the issue and custom field you’re trying to change. I built a small utility that caches these mappings so I’m not rediscovering them every API call.
hey, i had this same problem too. just use getIssue() on an issue that already has that custom field filled. it’ll show the customfieldId in the response. save it and use for filtering or updates. should work with regular user access if you can view the issues.
Here’s another workaround - check the raw XML response from getIssuesFromJqlSearch or similar methods. The custom field IDs are buried in there even without admin access. Just parse through the customFieldValues array to map field names to their IDs. For updates, use updateIssue() with the RemoteFieldValue object. Set the customfieldId you found earlier and pass in your new values array. Works fine with regular user permissions as long as you can edit that specific issue and field. I’ve been running this in production for months without needing to bug any admins.