Documentation Index Fetch the complete documentation index at: https://docs.dragdropdo.com/llms.txt
Use this file to discover all available pages before exploring further.
The status endpoints let you track the lifecycle of operations created via /api/v1/do.
GET /api/v1/status/:mainTaskId
GET /api/v1/status/:mainTaskId/:fileKey
These routes are backed by the OperationStatusFileData, and OperationStatusResponse types.
Status schema
type OperationStatusFileData = {
file_key : string ; // resulting file key (output if available, otherwise input)
status : "QUEUED" | "IN_PROGRESS" | "COMPLETED" | "FAILED" ;
download_link ?: string ; // relative path to download the output file
error_code ?: string ; // optional short failure code
error_message ?: string ; // optional human-readable message
};
type OperationStatusResponse = {
operation_status : "QUEUED" | "IN_PROGRESS" | "COMPLETED" | "FAILED" ;
files_data ?: OperationStatusFileData [];
};
Get main task status
cURL
NODE
PYTHON
PHP
RUBY
GO
JAVA
curl -X GET https://api.dragdropdo.com/api/v1/status/main_task_abc123 \
-H "Authorization: Bearer your-api-key"
Response (completed):
{
"operation_status" : "completed" ,
"files_data" : [
{
"file_key" : "file_key_1_result" ,
"status" : "completed" ,
"download_link" : "https://api.dragdropdo.com/v1/download/file_key_1_result"
},
{
"file_key" : "file_key_2_result" ,
"status" : "completed" ,
"download_link" : "https://api.dragdropdo.com/v1/download/file_key_2_result"
}
]
}
Response (failed):
{
"operation_status" : "failed" ,
"files_data" : [
{
"file_key" : "file_key_1" ,
"status" : "failed" ,
"error_code" : "internal_error" ,
"error_message" : "Internal server error / invalid input file"
}
]
}
Get specific file task status
cURL
NODE
PYTHON
PHP
RUBY
GO
JAVA
curl -X GET https://api.dragdropdo.com/api/v1/status/task_abc123/file_key_123 \
-H "Authorization: Bearer your-api-key"
When fileKey is present, the response narrows to the matching file task (if found).
Polling vs. webhooks
Polling – use the status endpoints from your backend or via the official SDK (see SDKs → Node ).
Webhooks – for production workloads, configure webhooks to receive operation.completed, operation.failed, fileTask.completed, and fileTask.failed events instead of (or in addition to) polling.
Polling example
cURL
NODE
PYTHON
PHP
RUBY
GO
JAVA
# Poll in a loop (bash example)
while true ; do
response = $( curl -s -X GET https://api.dragdropdo.com/api/v1/status/task_abc123 \
-H "Authorization: Bearer your-api-key" )
status = $( echo $response | jq -r '.operation_status' )
echo "Status: $status "
if [ " $status " = "completed" ] || [ " $status " = "failed" ]; then
echo $response | jq '.'
break
fi
sleep 2
done
See Business API → Webhooks for event payload shapes.