---
url: /docs/save_draft.md
---
# SAVE\_DRAFT API Documentation

## 🌐 Language Switch

[中文版](/docs/save_draft.zh) | [English](/docs/save_draft)

## Interface Information

```
POST /openapi/capcut-mate/v1/save_draft
```

## Function Description

Save Jianying draft. This interface is used to save the current draft state, ensuring that edited content is persistently stored. Usually called after completing a series of editing operations to prevent loss of edited content.

## Request Parameters

```json
{
  "draft_url": "https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/get_draft?draft_id=2025092811473036584258"
}
```

### Parameter Description

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| draft\_url | string | ✅ | - | Draft URL to be saved |

### Parameter Details

#### draft\_url

* **Type**: String
* **Required**: Yes
* **Format**: Complete draft URL, usually returned by create\_draft interface
* **Example**: `https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/get_draft?draft_id=2025092811473036584258`

## Response Format

### Success Response (200)

```json
{
  "code": 0,
  "message": "success",
  "draft_url": "https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/get_draft?draft_id=2025092811473036584258"
}
```

### Response Field Description

| Field | Type | Description |
|-------|------|-------------|
| draft\_url | string | Saved draft URL, usually the same as the URL in the request |

### Error Response

```json
{
  "code": 2001,
  "message": "Invalid draft URL"
}
```

## Usage Examples

### cURL Examples

#### 1. Basic Save Draft

```bash
curl -X POST https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/save_draft \
  -H "Content-Type: application/json" \
  -d '{
    "draft_url": "https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/get_draft?draft_id=2025092811473036584258"
  }'
```

## Error Code Description

| Error Code | Error Message | Description | Solution |
|------------|---------------|-------------|----------|
| 1001 | Parameter validation failed | `draft_url` is not a string | Check parameter types |
| 2001 | Invalid draft URL | `draft_url` has no `draft_id`, or the draft is not in the cache | Pass the `draft_url` returned by `create_draft` |
| 2042 | Draft lock acquisition timeout | The draft is locked by another operation and the 30-second wait timed out | Retry later |

## Notes

1. **URL Validity**: Ensure the passed draft\_url is valid and exists
2. **Network Stability**: Save operation requires stable network connection
3. **Frequency Control**: Avoid overly frequent save operations
4. **Concurrency Safety**: Concurrent operations on the same draft are serialized by a draft lock; a request that cannot acquire the lock within 30 seconds returns error code `2042`

## Workflow

1. Validate draft\_url parameter
2. Check if draft exists
3. Get current draft state
4. Persistently save draft data
5. Return save result

## Related Interfaces

* [Create Draft](/docs/create_draft)
* [Add Videos](/docs/add_videos)
* [Add Audios](/docs/add_audios)
* [Add Images](/docs/add_images)
* [Generate Video](/docs/gen_video)

***

📚 **Project Resources**\
**GitHub**: <https://github.com/Hommy-master/capcut-mate>\
**Gitee**: <https://gitee.com/taohongmin-gitee/capcut-mate>

### Language Switch

[中文版](/docs/save_draft.zh) | [English](/docs/save_draft)
