Skip to main content
DELETE
/
v1
/
files
/
{file_id}
Delete File
curl --request DELETE \
  --url https://api.moonshot.ai/v1/files/{file_id} \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.moonshot.ai/v1/files/{file_id}"

headers = {"Authorization": "Bearer <token>"}

response = requests.delete(url, headers=headers)

print(response.text)
const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.moonshot.ai/v1/files/{file_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.moonshot.ai/v1/files/{file_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.moonshot.ai/v1/files/{file_id}"

req, _ := http.NewRequest("DELETE", url, nil)

req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.delete("https://api.moonshot.ai/v1/files/{file_id}")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.moonshot.ai/v1/files/{file_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "id": "<string>",
  "object": "file",
  "deleted": true
}
{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}
{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}
{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}
Deletes a previously uploaded file. Once deleted, the file no longer counts against your storage quota and cannot be used in chat completions or Batch requests.
showLineNumbers
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("MOONSHOT_API_KEY"),
    base_url="https://api.moonshot.ai/v1",
)

# Delete a specific file
delete_result = client.files.delete(file_id="file-xxx")
print(delete_result)
The delete file endpoint returns a JSON object with the following fields:
FieldTypeDescription
idstringDeleted file identifier
objectstringAlways "file"
deletedbooleanWhether the file was deleted successfully
Response Example
{
    "id": "file-xxx",
    "object": "file",
    "deleted": true
}
Deletion is permanent. Each user can upload a maximum of 1,000 files. When the total file count reaches the limit, you must delete unused files before uploading new ones.
If the file does not exist or has already been deleted, the endpoint returns a 404 error. Please verify that the file_id is correct.

Authorizations

Authorization
string
header
required

The Authorization header expects a Bearer token. Use an MOONSHOT_API_KEY as the token. This is a server-side secret key. Generate one on the API keys page in your dashboard.

Path Parameters

file_id
string
required

The file identifier

Response

Deletion result

id
string
required

Deleted file identifier

object
string
required
Example:

"file"

deleted
boolean
required

Whether the file was deleted successfully