Hello everyone,
I am currently looking into bulk logging work to multiple Jira Service Management (JSM) tickets at once. Instead of manually adding worklogs to each ticket one by one, is it possible to add them in bulk using the REST API?
If it is possible, could you please provide guidance on the following points?
Any advice, documentation links, or examples would be greatly appreciated.
Thank you in advance for your help.
Hello @aslead-community
Welcome to the Atlassian community.
I am curious about the problem you are trying to solve by adding work logs automatically.
Is a this something you need to do once or multiple times?
Are you needing to add a single identical worklog entry to multiple issues? Do you need to add multiple work logs to issues? If the worklog entries are not identical what pieces of data are variable and how do you know what data to include?
Do you have access to Rico? If this is a one time task you might investigate if Rico can execute it for you rather than writing code.
Hi - Welcome to the Atlassian Community!
Yes, you can add worklogs through the Jira Cloud REST API, but there is an important limitation:
there is no public bulk-create-worklog endpoint for multiple issues.
The public API adds a worklog to one issue at a time using:
POST /rest/api/3/issue/{issueIdOrKey}/worklog
So for multiple JSM tickets, the usual approach is to loop through your list of issue keys and send one request per issue. The bulk issue APIs do not currently include bulk worklog creation.
A simple request would look like:
{
"timeSpentSeconds": 3600,
"started": "2026-09-04T10:00:00.000+0000",
"comment": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Work performed via bulk integration"
}
]
}
]
}
}
For REST API v3, comments use Atlassian Document Format (ADF). You can provide either timeSpent or timeSpentSeconds; the issue key is supplied in the endpoint itself.
For example:
curl --request POST \
--url 'https://your-domain.atlassian.net/rest/api/3/issue/TEST-123/worklog' \
--user 'email@example.com:API_TOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"timeSpentSeconds": 3600,
"started": "2026-09-04T10:00:00.000+0000"
}'
For authentication, Basic Auth with email + API token is commonly used for scripts, while OAuth 2.0 is preferable for applications/integrations.
The user making the request needs at least:
Browse projects
Work on issues
access through any issue-level security configured on the issue
and Jira time tracking must be enabled.
One important detail: I would not try to set the Author manually. Normally, the worklog is created as the authenticated user. If you need to record work on behalf of another person, that becomes a different requirement and may need another approach.
For bulk processing, I would structure the input as CSV or JSON, for example:
TEST-101,3600
TEST-102,1800
TEST-103,7200
and have your script iterate through those rows and call the worklog endpoint for each issue.
So, in short:
CSV/JSON input → loop through issues → POST one worklog per issue → record successes/errors
Also be careful with rate limiting if you are processing a large number of tickets.
The official Jira Cloud worklog API documentation is here: Jira Cloud REST API - Issue worklogs
Hope this helps!
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.