How to Create Jira Tickets with the API: A Quick 5-Step Guide
Need to automate Jira tickets without errors? Learn 5 steps to use the jira create ticket api and verify each issue. Read now to get started.
Creating a Jira ticket manually is easy until you need to create dozens, connect another service, or automate a repeatable workflow. A small API mistake can leave you with authentication errors, missing fields, or tickets in the wrong project.
That can turn a quick integration into a frustrating round of trial and error. You might be wondering which endpoint to call, what Jira expects in the request, and how to confirm the ticket was actually created.
Here’s the truth: Jira’s REST API can create an issue with one authenticated POST request. I’ll walk you through five practical steps, show a working Jira Cloud example, and explain how to troubleshoot common failures.
Create a Jira Ticket Through the API in Five Steps
For Jira Cloud, send an authenticated POST request to the issue creation endpoint. Include a project, issue type, and summary; add a description or other fields when needed.
-

1. Prepare your Jira Cloud access
Use the Jira site URL, your Atlassian account email, and an API token. Create the token through your Atlassian account security settings, then store it in a secret manager or environment variable.
Your account must have permission to create issues in the target project. You’ll also need the project key, such as OPS, and a valid issue type, such as Task or Bug.
-
2. Choose the issue creation endpoint
For Jira Cloud, the endpoint is POST /rest/api/3/issue. Add it to your Jira site URL, for example, https://example.atlassian.net/rest/api/3/issue.
Use API version 3 for Jira Cloud. Jira Data Center has different authentication options and may use different API versions, so check your instance’s REST API reference before adapting this example.
-
3. Build the request body
Jira requires the project, issue type, and summary in the fields object. You can also add labels, priority, assignee details, and custom fields when your project configuration allows them.
For Jira Cloud API v3, format the description using Atlassian Document Format (ADF). This example creates a basic task with a short description:
{
"fields": {
"project": {
"key": "OPS"
},
"issuetype": {
"name": "Task"
},
"summary": "Review the new onboarding flow",
"description": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Check the flow on mobile and desktop."
}
]
}
]
}
}
}
Replace OPS with your project key and use an issue type available in that project. Required custom fields may differ between projects.
-
4. Send the POST request
Send the JSON body with an application/json content type. This curl example reads your credentials from environment variables instead of placing them directly in the command.
curl --request POST \
--url "https://example.atlassian.net/rest/api/3/issue" \
--user "$JIRA_EMAIL:$JIRA_API_TOKEN" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{
"fields": {
"project": { "key": "OPS" },
"issuetype": { "name": "Task" },
"summary": "Review the new onboarding flow",
"description": {
"type": "doc",
"version": 1,
"content": [{
"type": "paragraph",
"content": [{
"type": "text",
"text": "Check the flow on mobile and desktop."
}]
}]
}
}
}'
Replace the example URL and project values with your own. Keep the API token private, and avoid printing it in application logs or terminal transcripts.
-
5. Check the response and confirm the ticket
A successful request returns HTTP 201 Created. The response includes the new issue’s ID, key, and URL. Save the issue key, such as OPS-482, so your integration can link to the created ticket.
Open the returned URL or search Jira for the issue key. Confirm the project, summary, description, and any fields your workflow depends on.
What You Need Before Sending the Request
Most failed attempts come down to access, project configuration, or a field Jira considers mandatory. Check these details before testing the request so you can separate a permissions problem from a malformed body.
- Jira site URL: Use the correct Cloud site address and avoid a trailing path that duplicates the REST endpoint.
- API token and account email: For Jira Cloud basic authentication, send the Atlassian account email with its API token.
- Project key and issue type: Check that the selected issue type is available in the project.
- Project permissions: Your account needs permission to create issues in that project.
- Required fields: Review project-specific requirements, including custom fields, components, or versions.
For example, a project may require a custom field called “Request category.” A request with a valid summary can still fail if that field is missing or has an invalid value.
Format Descriptions and Custom Fields Correctly
Jira Cloud API v3 expects descriptions in Atlassian Document Format. A plain string that works in another endpoint or API version may be rejected here.
Keep the first test simple: send a summary, project, and issue type, then add the description structure. If the simple request succeeds, add custom fields one at a time. That makes it easier to identify a field that causes a validation error.
Custom field identifiers often look like customfield_10042. The field’s expected value depends on its type. A text field might accept a string, while a selection field may require an object containing an option ID.
Handle Errors and Avoid Duplicate Tickets
Read the response body when Jira rejects a request. A 400 Bad Request often points to a missing required field, invalid issue type, or malformed ADF content. A 401 Unauthorized usually means the credentials need attention.
A 403 Forbidden can indicate insufficient project permissions. A 404 Not Found may point to an incorrect site URL or endpoint. Check the response details and Jira project settings before changing several fields at once.
Be careful when retrying after a timeout. Jira’s issue creation request does not automatically prevent duplicates, so a retry could create a second ticket if the first request succeeded but its response never reached your integration.
One practical safeguard is to add a unique request identifier in a custom field or label, then search for that identifier before retrying. If Jira returns 429 Too Many Requests, respect the Retry-After header and wait before sending another request.
Make Ticket Creation Reliable in an Automated Workflow
Once a single request works, decide how your integration will handle changes and failures. For example, a support form might create Jira tickets whenever a customer reports a reproducible issue.
Validate required values before calling Jira. Log the response status and issue key, but exclude credentials and sensitive customer details. Keep a record of each request’s outcome so a failed ticket can be investigated without blindly resending it.
Test with a non-production project when possible. Try a valid request, a missing required field, and an account without project access. These checks show whether your integration can report useful errors to the person who needs to fix them.
Jira Workflow Management with ONES.com
Value proposition: ONES.com brings project management and knowledge management into one platform, powered by ONES Assistant. ONES Project is the project management product and a Jira alternative; ONES Wiki is the knowledge management product and a Confluence alternative. They’re sold separately.

If your goal is to create tickets in Jira, the REST API steps above address that task directly. If your team is also reviewing its project workflow, ONES Project offers Jira-compatible workflows and built-in project capabilities, including self-hosted deployment options.
Core capabilities: workflow pain, ONES capability, result
- Workflow sprawl: When teams depend on numerous add-ons, ONES Project provides custom workflows and fields natively, helping reduce plugin reliance.
- Scattered progress reporting: Built-in reporting gives teams a clearer view of project progress without requiring a separate reporting add-on.
- Sprint coordination: Sprint management supports planning and tracking work through a sprint in the same project environment.
- Repetitive task handling: Automation helps teams reduce recurring manual actions and keep routine work moving.
- Familiar Jira-style processes: Jira-compatible workflows can make it easier for teams to apply established issue management practices.
- Restricted hosting requirements: Choose Cloud, On-Premise, Private Cloud, or Air-gapped deployment to match organizational needs.
- Concern about deployment trade-offs: ONES.com offers full feature parity between cloud and self-hosted versions, so teams can select a deployment model without giving up features.
- Small-team evaluation: The free plan supports up to 30 seats, giving a team room to assess the platform in a practical setting.
Application scenarios
A software team could use ONES Project to manage bugs, sprints, custom workflows, and reporting in one project environment. This may suit a team reviewing its Jira setup, especially when reducing reliance on plugins is a priority.
An organization with restricted network requirements could evaluate ONES Project in an On-Premise, Private Cloud, or Air-gapped deployment. A team that also wants a knowledge base can consider ONES Wiki separately, while keeping project management in ONES Project.
Common Challenges When Creating Jira Issues by API
- The request returns a validation error. Check required fields, issue type availability, and ADF structure. Add fields incrementally to isolate the problem.
- Authentication fails. Confirm the Jira Cloud URL, account email, and API token. Ensure the token is current and has not been copied with extra characters.
- The request succeeds, but the issue is hard to find. Capture the returned issue key and URL. Check the target project and any filters that might hide the new ticket.
- A retry creates a duplicate. Do not automatically repeat a timed-out request without checking whether the first attempt succeeded. Use a unique request identifier to help detect existing tickets.
FAQs About Creating Jira Tickets Through the API
What endpoint creates an issue in Jira Cloud?
Use POST /rest/api/3/issue on your Jira Cloud site. The request body needs a fields object with a project, issue type, and summary. Jira may require additional fields based on the project’s configuration. A successful request returns HTTP 201 Created and includes the new issue’s key and ID.
Can I use a Jira API token instead of a password?
Yes. For Jira Cloud, use your Atlassian account email and an API token with basic authentication. Keep the token in a secure environment variable or secret manager, rather than embedding it in application code. Jira Data Center authentication can differ, so check the configuration and REST API reference for your instance.
Why does Jira reject my description field?
Jira Cloud API v3 expects the description in Atlassian Document Format, not as a plain text string. The description needs a document structure with content elements, such as a paragraph containing text. Also check whether the rest of the request has valid JSON and whether your project applies additional requirements.
How can I avoid creating duplicate issues when a request times out?
Do not assume a timeout means Jira failed to create the issue. The server may have completed the request before the connection ended. Add a unique request identifier to a searchable custom field or label, then check Jira for that identifier before retrying. This gives your integration a practical way to identify an earlier successful attempt.
Conclusion
Creating a Jira ticket through the API comes down to five steps: prepare access, choose the Cloud endpoint, build a valid request body, send the POST request, and verify the response.
Start with the required fields, then add descriptions and custom values carefully. When errors or timeouts happen, check the response before retrying so you can fix the cause without creating extra tickets.
If you’re also reviewing how your team manages projects, ONES Project is a Jira alternative with Jira-compatible workflows, built-in reporting, automation, and multiple deployment options. Choose the approach that fits the work you need to manage.