1curl -X POST https://render-api.chillin.online/render/v1 \
2-H "Accept: application/json" \
3-H "Content-Type: application/json" \
4-H "Authorization: Bearer YOUR_API_KEY" \
5-d @request.jsonNote: Our rendering requests are processed async. After submitting a request, you will immediately receive a response containing a
render_id, which can be used to query the rendering status and results.
| Prop | Type | Required | Example | Value Range | Description |
|---|---|---|---|---|---|
| compositeWidth | number | true | 1920 | 720 - 3840 | The width of the composite. |
| compositeHeight | number | true | 1080 | 720 - 3840 | The height of the composite. |
| fps | number | true | 30 | 15 - 60 | The frame rate of the composite. |
| projectData | object | true | - | - | The project data. Can be exported from the editor. |
Note: The
compositeWidthandcompositeHeightcan differ from thewidthandheightspecified inprojectData. However, the aspect ratio ofcompositeWidthtocompositeHeightmust remain consistent with the aspect ratio ofprojectData.widthtoprojectData.height.
This design allows the same video project to be exported in different resolutions while maintaining the original aspect ratio.
1{
2"compositeWidth": 1920,
3"compositeHeight": 1080,
4"fps": 30,
5"projectData": {
6 "type": "",
7 "width": 1920,
8 "height": 1080,
9 "fill": "#000000",
10 "view": [
11 {
12 "id": "8ecf7475-2c6c-47f9-827b-a09c7913f4c0",
13 "type": "Image",
14 "start": 0,
15 "duration": 5,
16 "trackIndex": 0,
17 "x": -570.0335392757963,
18 "y": -170.90659033307685,
19 "blendMode": "normal",
20 "anchorX": 1302,1{
2"code": 0,
3"data": {
4 "message": "Async render request submitted successfully",
5 "render_id": 105586,
6 "status": "processing"
7},
8"msg": "success"
9}
101{
2"code": 2004,
3"data": {},
4"msg": "invalid project data: invalid view array: view item 0: missing required field: id"
5}
6Here are the codes returned by the async rendering API:
projectData field is not a valid JSON object.duration field is required but missing.duration field is present but not in the correct format.If you encounter an error code not listed, please contact support at [email protected].
After submitting an async render request, you can use the render_id to query the rendering status and result.
1curl -X POST https://render-api.chillin.online/render/result \
2-H "Accept: application/json" \
3-H "Content-Type: application/json" \
4-H "Authorization: Bearer YOUR_API_KEY" \
5-d '{"render_id": 100000}'| Prop | Type | Required | Example | Value Range | Description |
|---|---|---|---|---|---|
| render_id | number | true | 100000 | - | The render ID returned from the initial render request. |
1{
2"code": 0,
3"data": {
4 "render": {
5 "create_at": "2025-06-27T12:37:21.684337Z",
6 "json_url": "https://cloud.chillin.online/project_xxx.json?verify=xxx",
7 "render_id": 105549,
8 "state": "success",
9 "video_url": "https://cloud.chillin.online/video_xxx.mp4?verify=xxx"
10 }
11},
12"msg": "success"
13}
14The state field in the response can have the following values:
Use this endpoint to permanently remove the rendered video file and project JSON for a completed task.
1curl -X POST https://render-api.chillin.online/render/delete-files \
2-H "Accept: application/json" \
3-H "Content-Type: application/json" \
4-H "Authorization: Bearer YOUR_API_KEY" \
5-d '{"render_id": 100000}'| Prop | Type | Required | Example | Value Range | Description |
|---|---|---|---|---|---|
| render_id | number | true | 100000 | - | The render ID you want to clean up. Only renders in the success state can be deleted. |
1{
2"code": 0,
3"data": {
4 "message": "Render files deleted"
5},
6"msg": "success"
7}
8