/api/v1/assets/{record}/image
Manage an asset image
Upload, replace, or remove the image for an asset.
Last updated
Request
POST /api/v1/assets/{record}/image uploads or replaces an image. DELETE /api/v1/assets/{record}/image removes it.
Both require assets:update. See token permissions.
Send Authorization: Bearer YOUR_API_TOKEN, Accept: application/json, and a required Idempotency-Key. For POST, send the file as multipart form data. See idempotency and retries.
record is the numeric asset ID in your token's organization.
Query parameters
This endpoint does not use query parameters.
Request body
POST accepts one field:
| Field | Type | Usage |
|---|---|---|
image |
file | Required. JPG/JPEG, PNG, BMP, GIF, WebP, AVIF, HEIC, or HEIF; maximum 20,480 KB (20 MiB). |
DELETE accepts no body. HEIC and HEIF uploads are converted to JPEG.
Example
curl --request POST "https://my.assetcenter.app/api/v1/assets/123/image" \
--header "Authorization: Bearer $ASSETCENTER_API_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: 1d4df846-f81a-4aa0-8f9b-85527284e226" \
--form "image=@/path/to/asset.jpg"
Let cURL set the multipart Content-Type and boundary. Change POST to DELETE, omit --form, and use a new key to remove the image.
Response
200 OK:
{
"data": {
"id": 123,
"image_url": "https://example.test/temporary-image-url",
"has_photo": true
}
}
After DELETE, has_photo is false. Assets may return a manufacturer-based fallback in image_url; use has_photo to determine whether a stored image exists.
Behavior and constraints
An upload replaces the previous stored image. Removing an already absent image also succeeds. Image URLs are temporary. Retry with the same key and unchanged file bytes, original filename, and MIME type; changing any of them while reusing the key returns 409.
Errors
401 means invalid authentication; 403 means assets:update or administrator access is missing. A record outside the token organization returns 404. Invalid files, unsupported input, and missing keys return 422; conflicting key reuse returns 409; throttling returns 429. See error handling and rate limits.