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. |
| camera | object | false | - | - | Optional camera configuration for 3D scenes. Controls the projection mode and viewing angle. |
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.
The optional camera object controls how 3D elements are projected:
mode (string) - Projection mode: "perspective" (default) or "orthographic". Perspective provides depth-based foreshortening; orthographic preserves parallel lines.view (string) - A preset camera view name (e.g., "front", "top", "right", "isometric"). When specified, the camera is positioned to match the preset angle.If no
camerais provided, the default perspective front view is used.
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