Delete a file
/assets/{id}Costs 2 rate-limit points · Rate limits
Delete a file from the library, as the Files page's Delete does: it leaves every digital product and order it was on, and the stored body is purged. Destructive: send it first without confirm. Nothing changes and the 409 confirmation_required says what would. Tell the merchant, ask, and resend with confirm: true only after they agree. For more than one, use POST /assets/bulk_delete, which previews the counts; don't call this in a loop.
Permanent. Buyers lose the file. Without confirm: true nothing is deleted: 409 confirmation_required says how many digital products and orders it is on (GET /assets/:id/linked_orders lists them).
Also searched asdelete fileremove filedelete this uploadremove the link
Path parameters
idstringRequired
Query parameters
confirmstring
Returns
deletedboolean, nullableExample:trueidstring, nullableExample:e2b7727e-45ad-42b7-b842-cc4615205b10
Errors
Missing or invalid API key.
The resource does not exist for this shop, or the action path is not registered.
The request failed validation, or sent a key the action does not take (code: "unknown_parameters" with unknown and accepted). Nothing was saved.
Rate limited. Cost-weighted per API key, shared with API v1: a read costs 1 point, a write 2, 40 points per fixed 60-second window. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix time the window ends); a 429 adds Retry-After (seconds), retry_after, retryable: true and a next_step in the body. A 429 did nothing: wait retry_after seconds, then send the same request again. The budget is per key, so every tool or script using the key shares it; prefer one list call with per_page over many single reads.
Every error has the same shape: see Errors.
curl -X DELETE "https://app.filemonk.io/api/v2/external/assets/e2b7727e-45ad-42b7-b842-cc4615205b10" \
-H "X-Auth-Token: $FILEMONK_API_KEY"const res = await fetch("https://app.filemonk.io/api/v2/external/assets/e2b7727e-45ad-42b7-b842-cc4615205b10", {
method: "DELETE",
headers: {
"X-Auth-Token": process.env.FILEMONK_API_KEY,
},
});
const data = await res.json();import os
import requests
res = requests.delete(
"https://app.filemonk.io/api/v2/external/assets/e2b7727e-45ad-42b7-b842-cc4615205b10",
headers={"X-Auth-Token": os.environ["FILEMONK_API_KEY"]},
)
data = res.json()require "net/http"
require "json"
uri = URI("https://app.filemonk.io/api/v2/external/assets/e2b7727e-45ad-42b7-b842-cc4615205b10")
req = Net::HTTP::Delete.new(uri, "X-Auth-Token" => ENV["FILEMONK_API_KEY"])
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body){
"deleted": true,
"id": "e2b7727e-45ad-42b7-b842-cc4615205b10"
}{
"errors": [
"Invalid API key"
]
}{
"errors": [
"Order not found: c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
]
}{
"errors": [
"access.download_limit_count must be an integer of at least 0"
],
"field_errors": {
"access.download_limit_count": [
"must be an integer of at least 0"
]
}
}{
"errors": [
"You have exceeded the rate limit of 40 points per 60 seconds. Read requests cost 1 point(s) and write requests cost 2 point(s). Please retry after 12 second(s)."
],
"code": "rate_limited",
"retry_after": 12,
"error": "Rate limit exceeded",
"message": "You have exceeded the rate limit of 40 points per 60 seconds. Read requests cost 1 point(s) and write requests cost 2 point(s). Please retry after 12 second(s)."
}