> For the complete documentation index, see [llms.txt](https://doc1.antgst.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc1.antgst.com/ant-api/voice/group-call.md).

# Group Call

## Submit Task

> Submit a new call task. The system will validate number and initiate the calling task based on configured parameters including scheduling, SMS notifications, and call behavior settings.

```json
{"openapi":"3.0.3","info":{"title":"AntGST Group Call Task API","version":"1.0.0"},"servers":[{"url":"https://api.antgst.com/voice/v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"[X-API-KEY](https://web.antgst.com/client/account/workspaceApi) = API key + API secret."}},"schemas":{"SubmitTaskRequest":{"type":"object","properties":{"name":{"type":"string","description":"Task name. (default format is yyyy-MM-dd-API(HH:mm:ss))"},"displayNumber":{"type":"string","description":"The caller number displayed"},"submitType":{"type":"string","description":"Number submission method.\n- file: Number file submission.\n- manual: Manual number submission.","enum":["file","manual"]},"numberFileId":{"type":"string","description":"Required When submitType is file.Voice number file ID"},"numbers":{"type":"string","description":"Can be used when submitType is manual.<br>Called number (Use \",\" to separate multiple numbers, up to 1000 numbers; each task is limited to numbers from a single country).<br><b>Supported prefixes:</b> '+', '00', or direct country code.<br><b>Examples:</b> +8613800138000, 008613800138000, 8613800138000."},"numberInfoList":{"type":"array","description":"Can be used when submitType is manual.A list of callee number information objects. The list can contain a maximum of 1000 items.","items":{"type":"object","properties":{"calleeNumber":{"type":"string","description":"The phone number of the callee.<br><b>Supported prefixes:</b> '+', '00', or direct country code."},"customFields":{"type":"object","description":"Custom key-value pairs associated with this callee. The number of custom fields cannot exceed 10. These fields will be included in the callback records.","additionalProperties":{"type":"string"}}},"required":["calleeNumber"]}},"ivrId":{"type":"integer","description":"Voice file ID"},"delayPlaybackTime":{"type":"integer","description":"Delay playback time of voice files. default 0(min 0, max 30)","default":0,"minimum":0,"maximum":30},"delayHangingTime":{"type":"integer","description":"Delay hang time of voice files. default 0(min 0, max 30)","default":0,"minimum":0,"maximum":30},"playTime":{"type":"integer","description":"The number of times the voice file is delayed. default 1(min 1, max 3)","default":1,"minimum":1,"maximum":3},"forcedSuspensionTime":{"type":"integer","description":"The duration of the forced suspension of the call. default 40(min 5, max 90)","default":40,"minimum":5,"maximum":90},"maximumRingingDuration":{"type":"integer","description":"The maximum duration of the ringing. default 60(min 5, max 90)","default":60,"minimum":5,"maximum":90},"recordingStatus":{"type":"boolean","description":"Recording or not.","default":false},"callMethod":{"type":"string","enum":["immediate","delayed"],"description":"Call method. immediate(Call immediately), delayed(Delayed call)"},"delaySendTime":{"type":"string","description":"Required When callMethod is delayed. The time to delay the call (format: yyyy-MM-dd HH:mm:ss)"},"sendDelayTimeZone":{"type":"string","description":"Set the time zone for the delayed call when callMethod is delayed. default GMT+08:00","default":"GMT+08:00"},"timePeriodCall":{"type":"boolean","description":"Whether to enable time period calling.","default":false},"allowSendingTimePeriods":{"type":"array","items":{"type":"string"},"description":"Required When timePeriodCall is true. The time period during which calls are allowed. For example [\"09:00-12:00\", \"17:00-21:00\"]"},"sendTimePeriodTimeZone":{"type":"string","description":"Set the time zone for the call period when timePeriodCall is true. default GMT+08:00","default":"GMT+08:00"},"transferSeat":{"type":"boolean","description":"Whether to transfer seats.","default":false},"callRate":{"type":"number","format":"double","description":"Set the callRate when transferSeat is true. default 1","default":1},"seatGroupId":{"type":"integer","description":"Required When transferSeat is true. Seat Group ID."},"transitionKey":{"type":"integer","description":"Required When transferSeat is true. The key that transfers the seat. ([0-9])"},"hangupSmsEnabled":{"type":"boolean","description":"Whether to start hanging up SMS.","default":false},"smsSender":{"type":"string","description":"Required When hangupSmsEnabled is true. Sms sender."},"smsContent":{"type":"string","description":"Required When hangupSmsEnabled is true. Sms content."},"smsPushConditions":{"type":"array","items":{"type":"integer"},"description":"Hang up SMS trigger condition list.\nFor example [1, 2, 4, 8]\n- 1: Trigger SMS when user presses a specific key during the call.\n- 2: Send only if user answers and call duration exceeds specified time.\n- 4: Send SMS notification when call fails due to busy, unreachable, or no connection.\n- 8: Send SMS when the user's phone starts ringing."},"callSuccessThreshold":{"type":"integer","description":"Required When hangupSmsEnabled is true and smsPushConditions contains 2. The duration of a call that triggers the sending of a hang up SMS."},"smsTargetKey":{"type":"integer","description":"Required When hangupSmsEnabled is true and smsPushConditions contains 1. The key that triggers the sending of the hang up SMS."}},"required":["displayNumber","submitType","ivrId","callMethod"]},"SubmitTaskResponse":{"type":"object","properties":{"code":{"type":"integer","description":"Interface status code"},"msg":{"type":"string","description":"Interface response information"},"taskId":{"type":"integer","description":"The unique ID of the task."},"status":{"type":"string","schema":{"type":"string","enum":["submitting","submit failed","submit failed","success","cancel","stop"]},"description":"Initial status of the task."}}}}},"paths":{"/bulkCall/submit":{"post":{"summary":"Submit Task","description":"Submit a new call task. The system will validate number and initiate the calling task based on configured parameters including scheduling, SMS notifications, and call behavior settings.","operationId":"submitGroupCallTask","tags":["Group Call Tasks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitTaskRequest"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitTaskResponse"}}}}}}}}}
```

## Task Detail

> Retrieve comprehensive details of a specific call task, including task configuration, execution status, statistical metrics (total calls, success/failure counts, completion rate), time periods, SMS settings, and timestamps for creation, start, and completion.

```json
{"openapi":"3.0.3","info":{"title":"AntGST Group Call Task API","version":"1.0.0"},"servers":[{"url":"https://api.antgst.com/voice/v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"[X-API-KEY](https://web.antgst.com/client/account/workspaceApi) = API key + API secret."}},"schemas":{"TaskDetailResponse":{"type":"object","properties":{"code":{"type":"integer","description":"Interface status code"},"msg":{"type":"string","description":"Interface response information"},"data":{"$ref":"#/components/schemas/TaskDetailData"}}},"TaskDetailData":{"type":"object","properties":{"id":{"type":"string","description":"Unique Task ID."},"name":{"type":"string","description":"Custom task name."},"countryCode":{"type":"string","description":"Country code of the dialed numbers (e.g., '0084')."},"displayNumber":{"type":"string","description":"Caller ID displayed to recipients."},"ivrFileName":{"type":"string","description":"Name of the voice file used."},"stopCause":{"type":"string","description":"Reason why the task stopped(only exists when task status is cancel or stop)."},"taskStatus":{"type":"string","enum":["submitting","submit failed","calling","success","cancel","stop"],"description":"Current status of the task."},"delayPlaybackTime":{"type":"integer","description":"Configured delay before playing voice (seconds)."},"delayHangingTime":{"type":"integer","description":"Configured delay before hanging up after playback (seconds)."},"playTime":{"type":"integer","description":"Number of times the voice file is repeated."},"recordingStatus":{"type":"boolean","description":"Whether call recording was enabled."},"forcedSuspensionTime":{"type":"integer","description":"Max call duration before forced hangup (seconds)."},"maximumRingingDuration":{"type":"integer","description":"Max ringing time before considered unanswered (seconds)."},"callMethod":{"type":"string","description":"Call strategy: 'immediate' or 'delayed'."},"delaySendTime":{"type":"string","description":"Scheduled start time if delayed."},"sendDelayTimeZone":{"type":"string","description":"Timezone for scheduled start."},"allowSendingTimePeriod":{"type":"string","description":"Allowed calling time windows (e.g., '09:00-12:00,14:00-18:00')."},"sendTimePeriodTimeZone":{"type":"string","description":"Timezone for allowed calling periods."},"transferSeat":{"type":"boolean","description":"Whether human agent transfer was enabled."},"seatGroupId":{"type":"integer","description":"ID of the target seat group for transfer."},"transitionKey":{"type":"integer","description":"DTMF key pressed to trigger transfer."},"callRate":{"type":"number","description":"Concurrency rate for seat transfer."},"hangupSmsEnabled":{"type":"boolean","description":"Whether hangup SMS was enabled."},"smsSender":{"type":"string","description":"SMS sender ID."},"smsContent":{"type":"string","description":"Content of the hangup SMS."},"smsPushConditions":{"type":"array","items":{"type":"integer"},"description":"Active SMS trigger conditions IDs."},"smsTargetKey":{"type":"integer","description":"Specific key trigger for SMS (if condition 1 is used)."},"callSuccessThreshold":{"type":"integer","description":"Duration threshold for success-based SMS (if condition 2 is used)."},"startTime":{"type":"string","description":"Actual task start time."},"stopTime":{"type":"string","description":"Task end time."},"createTime":{"type":"string","description":"Task creation timestamp."},"completeCount":{"type":"integer","description":"Total number of calls completed."},"totalCount":{"type":"integer","description":"Total records in the import file."},"callLoseCount":{"type":"integer","description":"Number of calls lost."},"failCount":{"type":"integer","description":"Number of failed calls (busy, no answer, rejected...)."},"successCount":{"type":"integer","description":"Number of successful calls."},"submitCount":{"type":"integer","description":"Number of calls successfully submitted."},"transferCount":{"type":"integer","description":"Number of calls transferred to agent."},"buttonFeedbackCount":{"type":"integer","description":"Number of calls where user pressed a key."},"seatSuccessCount":{"type":"integer","description":"Number of successful transfers connected to an agent."}}}}},"paths":{"/bulkCall/task/{taskId}":{"get":{"summary":"Task Detail","description":"Retrieve comprehensive details of a specific call task, including task configuration, execution status, statistical metrics (total calls, success/failure counts, completion rate), time periods, SMS settings, and timestamps for creation, start, and completion.","operationId":"getTaskDetail","tags":["Group Call Tasks"],"parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"},"description":"Task ID"}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskDetailResponse"}}}}}}}}}
```

## Run task

> Resume a previously paused or stopped call task. The task will continue from its current state, processing remaining phone numbers according to the original task configuration and scheduling rules.

```json
{"openapi":"3.0.3","info":{"title":"AntGST Group Call Task API","version":"1.0.0"},"servers":[{"url":"https://api.antgst.com/voice/v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"[X-API-KEY](https://web.antgst.com/client/account/workspaceApi) = API key + API secret."}},"schemas":{"BasicResponse":{"type":"object","properties":{"code":{"type":"integer","description":"Interface status code"},"msg":{"type":"string","description":"Interface response information"}}}}},"paths":{"/bulkCall/resume/{taskId}":{"put":{"summary":"Run task","description":"Resume a previously paused or stopped call task. The task will continue from its current state, processing remaining phone numbers according to the original task configuration and scheduling rules.","operationId":"resumeTask","tags":["Group Call Tasks"],"parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"},"description":"Task ID"}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasicResponse"}}}}}}}}}
```

## Recall Task

> Create a recall task based on a previous call task. Supports two modes: RECALL\_ALL (recall all numbers from original task) or RECALL\_ALL (recall failed numbers only). Allows customization of display number, IVR file, and task name for the new recall campaign.

```json
{"openapi":"3.0.3","info":{"title":"AntGST Group Call Task API","version":"1.0.0"},"servers":[{"url":"https://api.antgst.com/voice/v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"[X-API-KEY](https://web.antgst.com/client/account/workspaceApi) = API key + API secret."}},"schemas":{"RecallTaskRequest":{"type":"object","properties":{"originalTaskId":{"type":"string"},"newTaskName":{"type":"string"},"callType":{"type":"string","enum":["RECALL_ALL","RECALL_FAILURE"],"description":"RECALL_ALL: Redial all numbers; RECALL_FAILURE: Redial only failed numbers."},"newDisplayNumber":{"type":"string"},"newIvrId":{"type":"integer"}},"required":["originalTaskId","newTaskName","callType","newDisplayNumber","newIvrId"]},"RecallTaskResponse":{"type":"object","properties":{"code":{"type":"integer","description":"Interface status code"},"msg":{"type":"string","description":"Interface response information"},"taskId":{"type":"string","description":"ID of the new recall task."},"taskStatus":{"type":"string","description":"Initial status of the recall task."}}}}},"paths":{"/bulkCall/reCall":{"post":{"summary":"Recall Task","description":"Create a recall task based on a previous call task. Supports two modes: RECALL_ALL (recall all numbers from original task) or RECALL_ALL (recall failed numbers only). Allows customization of display number, IVR file, and task name for the new recall campaign.","operationId":"recallTask","tags":["Group Call Tasks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecallTaskRequest"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecallTaskResponse"}}}}}}}}}
```

## Stop Task

> Immediately stop a running call task. Active calls will be terminated, pending calls will be cancelled, and the task status will be updated to stopped.&#x20;

```json
{"openapi":"3.0.3","info":{"title":"AntGST Group Call Task API","version":"1.0.0"},"servers":[{"url":"https://api.antgst.com/voice/v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"[X-API-KEY](https://web.antgst.com/client/account/workspaceApi) = API key + API secret."}},"schemas":{"BasicResponse":{"type":"object","properties":{"code":{"type":"integer","description":"Interface status code"},"msg":{"type":"string","description":"Interface response information"}}}}},"paths":{"/bulkCall/stop/{taskId}":{"put":{"summary":"Stop Task","description":"Immediately stop a running call task. Active calls will be terminated, pending calls will be cancelled, and the task status will be updated to stopped. ","operationId":"stopTask","tags":["Group Call Tasks"],"parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"},"description":"Task ID"}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasicResponse"}}}}}}}}}
```

## Delete Task

> Permanently delete a call task and all associated data including call records, statistics, and configurations.  This operation is irreversible.  Ensure task is stopped before deletion.

```json
{"openapi":"3.0.3","info":{"title":"AntGST Group Call Task API","version":"1.0.0"},"servers":[{"url":"https://api.antgst.com/voice/v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"[X-API-KEY](https://web.antgst.com/client/account/workspaceApi) = API key + API secret."}},"schemas":{"BasicResponse":{"type":"object","properties":{"code":{"type":"integer","description":"Interface status code"},"msg":{"type":"string","description":"Interface response information"}}}}},"paths":{"/bulkCall/remove/{taskId}":{"delete":{"summary":"Delete Task","description":"Permanently delete a call task and all associated data including call records, statistics, and configurations.  This operation is irreversible.  Ensure task is stopped before deletion.","operationId":"deleteTask","tags":["Group Call Tasks"],"parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"},"description":"Task ID"}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasicResponse"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://doc1.antgst.com/ant-api/voice/group-call.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
