---
title: "Create Many Tickets"
method: POST
path: "/api/v2/tickets/create_many"
tags: ["Tickets"]
---

# Create Many Tickets

`POST /api/v2/tickets/create_many`

Accepts an array of up to 100 ticket objects. **Note**: Every ticket created with this endpoint may be affected by your business rules, which can include sending email notifications to your end users. If you are importing historical tickets or creating more than 1000 tickets, consider using the [Ticket Bulk Import](/api-reference/ticketing/tickets/ticket_import/#ticket-bulk-import) endpoint.

This endpoint returns a `job_status` [JSON object](/api-reference/ticketing/ticket-management/job_statuses/#json-format) and queues a background job to do the work. Use the [Show Job Status](/api-reference/ticketing/ticket-management/job_statuses/#show-job-status) endpoint to check for the job's completion. Only a certain number of jobs can be queued or running at the same time. See [Job limit](/api-reference/introduction/rate-limits/#job-limit) for more information.

#### Allowed For
* Agents

## Request body

- TicketsCreateRequest
  - `tickets` TicketCreateInput[]
    - `additional_collaborators` CollaboratorObject[] — An array of numeric IDs, emails, or objects containing name and email properties. See [Setting Collaborators](/api-reference/ticketing/tickets/tickets/#setting-collaborators). An email notification is sent to them when the ticket is updated
      - `email` string, email
      - `name` string
    - `assignee_email` string, email — The email address of the agent to assign the ticket to
    - `assignee_id` integer — The agent currently assigned to the ticket
    - `attribute_value_ids` integer[] — An array of the IDs of attribute values to be associated with the ticket
    - `collaborator_ids` integer[] — The ids of users currently CC'ed on the ticket
    - `comment` TicketCommentObject, required
      - `attachments` AttachmentObject[] — Attachments, if any. See [Attachment](/api-reference/ticketing/tickets/ticket-attachments/)
        - `content_type` string — The content type of the image. Example value: "image/png"
        - `content_url` string — A full URL where the attachment image file can be downloaded. The file may be hosted externally so take care not to inadvertently send Zendesk authentication credentials. See [Working with url properties](/documentation/ticketing/managing-tickets/working-with-url-properties)
        - `deleted` boolean — If true, the attachment has been deleted
        - `file_name` string — The name of the image file
        - `height` integer — The height of the image file in pixels. If height is unknown, returns null
        - `id` integer — Automatically assigned when created
        - `inline` boolean — If true, the attachment is excluded from the attachment list and the attachment's URL can be referenced within the comment of a ticket. Default is false
        - `malware_access_override` boolean — If true, you can download an attachment flagged as malware. If false, you can't download such an attachment.
        - `malware_scan_result` string — The result of the malware scan. There is a delay between the time the attachment is uploaded and when the malware scan is completed. Usually the scan is done within a few seconds, but high load conditions can delay the scan results. Possible values: "malware_found", "malware_not_found", "failed_to_scan", "not_scanned"
        - `mapped_content_url` string — The URL the attachment image file has been mapped to
        - `size` integer — The size of the image file in bytes
        - `url` string — A URL to access the attachment details
        - `width` integer — The width of the image file in pixels. If width is unknown, returns null
        - `thumbnails` AttachmentBaseObject[] — An array of attachment objects. Note that photo thumbnails do not have thumbnails
          - `content_type` string — The content type of the image. Example value: "image/png"
          - `content_url` string — A full URL where the attachment image file can be downloaded. The file may be hosted externally so take care not to inadvertently send Zendesk authentication credentials. See [Working with url properties](/documentation/ticketing/managing-tickets/working-with-url-properties)
          - `deleted` boolean — If true, the attachment has been deleted
          - `file_name` string — The name of the image file
          - `height` integer — The height of the image file in pixels. If height is unknown, returns null
          - `id` integer — Automatically assigned when created
          - `inline` boolean — If true, the attachment is excluded from the attachment list and the attachment's URL can be referenced within the comment of a ticket. Default is false
          - `malware_access_override` boolean — If true, you can download an attachment flagged as malware. If false, you can't download such an attachment.
          - `malware_scan_result` string — The result of the malware scan. There is a delay between the time the attachment is uploaded and when the malware scan is completed. Usually the scan is done within a few seconds, but high load conditions can delay the scan results. Possible values: "malware_found", "malware_not_found", "failed_to_scan", "not_scanned"
          - `mapped_content_url` string — The URL the attachment image file has been mapped to
          - `size` integer — The size of the image file in bytes
          - `url` string — A URL to access the attachment details
          - `width` integer — The width of the image file in pixels. If width is unknown, returns null
      - `audit_id` integer — The id of the ticket audit record. See [Show Audit](/api-reference/ticketing/tickets/ticket_audits/#show-audit)
      - `author_id` integer — The id of the comment author. See [Author id](#author-id)
      - `body` string — The comment string. See [Bodies](#bodies)
      - `created_at` string, date-time — The time the comment was created
      - `html_body` string — The comment formatted as HTML. See [Bodies](#bodies)
      - `id` integer — Automatically assigned when the comment is created
      - `metadata` object — System information (web client, IP address, etc.) and comment flags, if any. See [Comment flags](#comment-flags)
      - `plain_body` string — The comment presented as plain text. See [Bodies](#bodies)
      - `public` boolean — true if a public comment; false if an internal note. The initial value set on ticket creation persists for any additional comment unless you change it
      - `type` string — `Comment` or `VoiceComment`. The JSON object for adding voice comments to tickets is different. See [Adding voice comments to tickets](/documentation/ticketing/managing-tickets/adding-voice-comments-to-tickets)
      - `uploads` string[] — List of tokens received from [uploading files](/api-reference/ticketing/tickets/ticket-attachments/#upload-files) for comment attachments. The files are attached by creating or updating tickets with the tokens. See [Attaching files](/api-reference/ticketing/tickets/tickets/#attaching-files) in Tickets
      - `via` TicketAuditViaObject — Describes how the object was created. See the [Via object reference](/documentation/ticketing/reference-guides/via-object-reference)
        - `channel` string — This tells you how the ticket or event was created. Examples: "web", "mobile", "rule", "system"
        - `source` object — For some channels a source object gives more information about how or why the ticket or event was created
    - `custom_fields` object[] — Custom fields for the ticket. See [Setting custom field values](/documentation/ticketing/managing-tickets/creating-and-updating-tickets#setting-custom-field-values)
      - `id` integer — The id of the custom field
      - `value` union — The value of the custom field
        - string
        - integer
        - boolean
        - string[]
        - number
    - `custom_status_id` integer — The custom ticket status id of the ticket. See [custom ticket statuses](#custom-ticket-statuses)
    - `due_at` string, date-time, nullable — If this is a ticket of type "task" it has a due date. Due date format uses [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
    - `email_ccs` EmailCCObject[] — An array of objects that represent agent or end users email CCs to add or delete from the ticket. See [Setting email CCs](/documentation/ticketing/managing-tickets/creating-and-updating-tickets#setting-email-ccs)
      - `action` 'put' | 'delete'
      - `user_email` string, email
      - `user_id` string
      - `user_name` string
    - `external_id` string — An id you can use to link Zendesk Support tickets to local records
    - `followers` FollowerObject[] — An array of objects that represent agent followers to add or delete from the ticket. See [Setting followers](/documentation/ticketing/managing-tickets/creating-and-updating-tickets#setting-followers)
      - `action` 'put' | 'delete'
      - `user_email` string, email
      - `user_id` string
    - `group_id` integer — The group this ticket is assigned to
    - `organization_id` integer — The organization of the requester. You can only specify the ID of an organization associated with the requester. See [Organization Memberships](/api-reference/ticketing/organizations/organization_memberships/)
    - `priority` 'urgent' | 'high' | 'normal' | 'low' — The urgency with which the ticket should be addressed.
    - `problem_id` integer — For tickets of type "incident", the ID of the problem the incident is linked to
    - `requester_id` integer — The user who requested this ticket
    - `safe_update` boolean — Optional boolean. Prevents updates with outdated ticket data (`updated_stamp` property required when true)
    - `sharing_agreement_ids` integer[] — An array of the numeric IDs of sharing agreements. Note that this replaces any existing agreements
    - `status` 'new' | 'open' | 'pending' | 'hold' | 'solved' | 'closed' — The state of the ticket. If your account has activated custom ticket statuses, this is the ticket's status category. See [custom ticket statuses](#custom-ticket-statuses).
    - `subject` string — The value of the subject field for this ticket
    - `tags` string[] — The array of tags applied to this ticket
    - `type` 'problem' | 'incident' | 'question' | 'task' — The type of this ticket.
    - `updated_stamp` string, date-time — Datetime of last update received from API. See the safe_update property
    - `brand_id` integer — Enterprise only. The id of the brand this ticket is associated with
    - `collaborators` CollaboratorObject[] — POST requests only. Users to add as cc's when creating a ticket. See [Setting Collaborators](/documentation/ticketing/managing-tickets/creating-and-updating-tickets#setting-collaborators)
      - `email` string, email
      - `name` string
    - `email_cc_ids` integer[] — The ids of agents or end users currently CC'ed on the ticket. See [CCs and followers resources](https://support.zendesk.com/hc/en-us/articles/360020585233) in the Support Help Center
    - `follower_ids` integer[] — The ids of agents currently following the ticket. See [CCs and followers resources](https://support.zendesk.com/hc/en-us/articles/360020585233)
    - `macro_ids` integer[] — POST requests only. List of macro IDs to be recorded in the ticket audit
    - `raw_subject` string — The dynamic content placeholder, if present, or the "subject" value, if not. See [Dynamic Content Items](/api-reference/ticketing/ticket-management/dynamic_content/)
    - `recipient` string — The original recipient e-mail address of the ticket
    - `submitter_id` integer — The user who submitted the ticket. The submitter always becomes the author of the first comment on the ticket
    - `ticket_form_id` integer — Enterprise only. The id of the ticket form to render for the ticket
    - `via` ViaObject — An object explaining how the ticket was created. See the [Via object reference](/documentation/ticketing/reference-guides/via-object-reference)
      - `channel` string — This tells you how the ticket or event was created. Examples: "web", "mobile", "rule", "system"
      - `source` object — For some channels a source object gives more information about how or why the ticket or event was created
        - `from` object
          - `address` string, nullable
          - `id` integer, nullable
          - `name` string, nullable
          - `title` string, nullable
        - `rel` string, nullable
        - `to` object
          - `address` string
          - `name` string
    - `via_followup_source_id` integer — POST requests only. The id of a closed ticket when creating a follow-up ticket. See [Creating a follow-up ticket](/documentation/ticketing/managing-tickets/creating-and-updating-tickets#creating-a-follow-up-ticket)

## Response `200`

Create many tickets

- JobStatusResponse
  - `job_status` JobStatusObject
    - `id` string — Automatically assigned when the job is queued
    - `job_type` string — The type of the job
    - `message` string, nullable — Message from the job worker, if any
    - `progress` integer, nullable — Number of tasks that have already been completed
    - `results` union — Result data from processed tasks. See [Results](#results) below
      - JobStatusResultObject[], nullable
        - union
          - object
            - `id` integer, required — the id of the new resource
            - `index` integer, required — the index number of the resul
          - object
            - `action` string, required — the action the job attempted (`"action": "update"`)
            - `id` integer, required — the id of the resource the job attempted to update
            - `status` string, required — the status (`"status": "Updated"`)
            - `success` boolean, required — whether the action was successful or not (`"success": true`)
          - object
            - `action` string, required — The action the job attempted (`"action": "update"`)
            - `details` string, required — The details of the error
            - `error` string, required — The error message
            - `id` integer, required — The id of the resource the job attempted to update
            - `success` boolean, required — Whether the action was successful or not (`"success": true`)
      - object
        - `success` boolean, required — Whether the action was successful or not
    - `status` string — The current status. One of the following: "queued", "working", "failed", "completed"
    - `total` integer, nullable — The total number of tasks this job is batching through
    - `url` string — The URL to poll for status updates

## Changes

> 29 revisions in range; 1 not diffed.

- **2025-12-09** `ac78d8660e75` — 1 info
  - request property `tickets/items/allOf[#/components/schemas/TicketUpdateInput]/custom_fields/items/value` list-of-types was widened by adding types `number` to media type `application/json`
- **2025-12-09** `1690b37f3321` — 1 info
  - request property `tickets/items/allOf[#/components/schemas/TicketUpdateInput]/custom_fields/items/value` list-of-types was widened by adding types `array` to media type `application/json`
- **2025-12-09** `7d50c5ac9276` — 1 info
  - request property `tickets/items/allOf[#/components/schemas/TicketUpdateInput]/custom_fields/items/value` list-of-types was widened by adding types `boolean and integer` to media type `application/json`
- **2025-06-13** `4799eea0d139` — 13 warning, 2 info
  - removed the request property `tickets/items/allOf[#/components/schemas/TicketUpdateInput]/custom_fields/items/active`
  - removed the request property `tickets/items/allOf[#/components/schemas/TicketUpdateInput]/custom_fields/items/custom_field_options`
  - removed the request property `tickets/items/allOf[#/components/schemas/TicketUpdateInput]/custom_fields/items/description`
  - removed the request property `tickets/items/allOf[#/components/schemas/TicketUpdateInput]/custom_fields/items/key`
  - …11 more

[Change history](https://skmtc.dev/botbrains-io/apis/support-api/changes/api/v2/tickets/create_many/post.md)

---

[API](https://skmtc.dev/botbrains-io/apis/support-api.md) · [All operations](https://skmtc.dev/botbrains-io/apis/support-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/botbrains-io/support-api/revisions/d53eac07ba68/schema)
