Locating Forms and Choosing a Solution
1. Locating Forms That Need Attention
Log in as the workspace owner or system admin and go to Management > Plan Details > Data Capacity. Find Data Volume per Form and click View Details to check the total number of records in Data Recycle for each form. Identify forms whose Data Recycle capacity is approaching or has reached the limit.
Note: If the data volume has not been updated, click Refresh next to the corresponding form.
2. Choosing a Solution
When Data Recycle reaches its capacity limit, further deletion attempts will fail. The following solutions allow you to delete data without using additional Data Recycle capacity.
No. | Solution | Description | Applicable Scenario |
1 | Use the Hard Deletion API | Replace the existing deletion API with the Hard Deletion API to permanently delete records without moving them to Data Recycle. | Deleting records that do not need to be recovered |
2 | Permanently Delete Records from Data Recycle | Permanently delete records stored in Data Recycle to free up capacity. Deleted records cannot be recovered. | Temporarily resolving deletion failures caused by the capacity limit |
Solution 1: Use the Hard Deletion API
If you use the API to delete multiple form records and do not need to recover the deleted records, replace the Multiple Records Deletion API with the Multiple Records Hard Deletion API.
After the replacement, subsequently deleted records will not enter Data Recycle or occupy its capacity. However, they cannot be recovered.
1. Configure API Key Authorization
Before calling the Hard Deletion API, make sure that the Multiple Records Hard Deletion API is included in the authorization scope of the API Key being used.
2. Replace the API Endpoint
If you are using the v5 Multiple Records Deletion API, keep the existing request method, authentication method, request body, and other parameters unchanged. Only replace the API endpoint:
- /api/v5/app/entry/data/batch_delete
+ /api/v5/app/entry/data/batch_hard_delete
If you are using an earlier API version, first update the request endpoint and request body to meet the v5 requirements, and then replace the endpoint.
API Comparison:
Item | Multiple Records Deletion API | Multiple Records Hard Deletion API |
Request Method | POST | POST |
API Endpoint |
|
|
Recovery | Records can be recovered within the retention period. | Records cannot be recovered from Data Recycle. |
Uses Data Recycle Capacity | Yes | No |
Maximum Records per Request | 100 | 100 |
Response Fields |
|
|
3. Python Example
The following example uses the Python requests library to call the Multiple Records Hard Deletion API.
Replace the placeholders with actual values and test with a small number of records first.
import requests def batch_hard_delete(api_base, api_key, app_id, entry_id, data_ids): """Permanently delete form records. Deleted records cannot be recovered.""" # A maximum of 100 records can be deleted per request. if not isinstance(data_ids, list) or not 1 <= len(data_ids) <= 100: raise ValueError("data_ids must contain 1 to 100 data IDs.") # Replace the original deletion endpoint with the hard deletion endpoint. url = ( api_base.rstrip("/") + "/api/v5/app/entry/data/batch_hard_delete" ) response = requests.post( url, headers={ "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", }, json={ "app_id": app_id, "entry_id": entry_id, "data_ids": data_ids, }, timeout=30, ) response.raise_for_status() result = response.json() if result.get("status") != "success": raise RuntimeError(f"Hard deletion failed: {result}") return result.get("success_count", 0) # Replace the placeholders with actual values. api_base = "YOUR_API_BASE" api_key = "YOUR_API_KEY" app_id = "YOUR_APP_ID" entry_id = "YOUR_ENTRY_ID" # Test with a small number of records that do not need to be recovered. data_ids = [ "DATA_ID_1", "DATA_ID_2", ] deleted_count = batch_hard_delete( api_base=api_base, api_key=api_key, app_id=app_id, entry_id=entry_id, data_ids=data_ids, ) print(f"Successfully deleted {deleted_count} records.")Parameters:
Parameter | Description |
| API domain used in the current environment |
| API Key with access to the target app, form, and Hard Deletion API |
| App ID |
| Form ID |
| Array of record IDs to delete, with a maximum of 100 per request |
If you need to delete more than 100 records, split them into batches of no more than 100 records each.
4. Response
After a successful API call, the response returns the actual number of records deleted.
Sample Response:
{ "status": "success", "success_count": 2 }Response Parameters:
Parameter | Description |
| API call result. |
| Number of records successfully deleted in this request |
success_count may differ from the number of IDs submitted in data_ids. Record the actual API response rather than assuming that all submitted records were deleted.
5. Verification and Notes
After configuring API Key authorization and replacing the endpoint, test with a small number of records before switching your production operations.
Verification Steps:
Select a small number of records that do not need to be recovered and call the Multiple Records Hard Deletion API.
Confirm that the API returns
status: successand checksuccess_countagainst the actual number of deleted records.Confirm that the records have been deleted from the form and have not entered Data Recycle.
Check whether existing ETL, BPA, data logs, and other business processes work as expected.
After successful verification, switch your production operations to the Multiple Records Hard Deletion API.
Notes:
A network timeout does not necessarily mean that the server failed to process the request. Check the target records before retrying to avoid duplicate operations.
A successful API response indicates that the records have been removed from the form's active data. It does not mean that all related resources and background tasks have been processed.
After switching to the Hard Deletion API, newly deleted records will not enter Data Recycle. Existing records in Data Recycle will not be automatically cleared.
If manual deletion or standard deletion is still required when Data Recycle has reached its capacity limit, use Solution 3 to free up capacity.
Solution 2: Permanently Delete Records from Data Recycle
If deletion fails because Data Recycle has reached its capacity limit, open Data Recycle for the corresponding form, filter records that no longer need to be recovered, and click Delete Permanently to free up capacity.
Steps:
Open Data Recycle for the corresponding form.
Filter the target records as needed.
Click Delete Permanently and confirm. The selected records will be permanently deleted, freeing up Data Recycle capacity.
Once the remaining capacity in Data Recycle is equal to or greater than the number of form records to be deleted, the deletion operation can proceed successfully.


