curl "https://api.hooked.so/v1/image/cm1a2b3c4d5e6f7g8h9i0j1k2" \
-H "x-api-key: your_api_key_here"
const response = await fetch('https://api.hooked.so/v1/image/cm1a2b3c4d5e6f7g8h9i0j1k2', {
headers: { 'x-api-key': 'your_api_key_here' }
});
const { data } = await response.json();
if (data.backgroundRemoval.status === 'COMPLETED') console.log(data.backgroundRemoval.url);
import requests
response = requests.get(
'https://api.hooked.so/v1/image/cm1a2b3c4d5e6f7g8h9i0j1k2',
headers={'x-api-key': 'your_api_key_here'}
)
data = response.json()['data']
print(data['status'], data['backgroundRemoval']['status'])
{
"success": true,
"message": "Image details fetched successfully",
"data": {
"id": "cm1a2b3c4d5e6f7g8h9i0j1k2",
"name": "portrait.jpg",
"status": "COMPLETED",
"url": "https://.../portrait.jpg",
"aspectRatio": null,
"backgroundRemoval": {
"status": "COMPLETED",
"url": "https://.../cm1a2b3c4d5e6f7g8h9i0j1k2-1726560000000.png"
},
"usedCredits": 4,
"createdAt": "2026-09-17T10:00:00.000Z",
"updatedAt": "2026-09-17T10:00:12.000Z"
}
}
{
"success": false,
"message": "Image not found"
}
Images
Get Image
An image of your library and how its background removal or expansion went
GET
/
v1
/
image
/
{mediaId}
curl "https://api.hooked.so/v1/image/cm1a2b3c4d5e6f7g8h9i0j1k2" \
-H "x-api-key: your_api_key_here"
const response = await fetch('https://api.hooked.so/v1/image/cm1a2b3c4d5e6f7g8h9i0j1k2', {
headers: { 'x-api-key': 'your_api_key_here' }
});
const { data } = await response.json();
if (data.backgroundRemoval.status === 'COMPLETED') console.log(data.backgroundRemoval.url);
import requests
response = requests.get(
'https://api.hooked.so/v1/image/cm1a2b3c4d5e6f7g8h9i0j1k2',
headers={'x-api-key': 'your_api_key_here'}
)
data = response.json()['data']
print(data['status'], data['backgroundRemoval']['status'])
{
"success": true,
"message": "Image details fetched successfully",
"data": {
"id": "cm1a2b3c4d5e6f7g8h9i0j1k2",
"name": "portrait.jpg",
"status": "COMPLETED",
"url": "https://.../portrait.jpg",
"aspectRatio": null,
"backgroundRemoval": {
"status": "COMPLETED",
"url": "https://.../cm1a2b3c4d5e6f7g8h9i0j1k2-1726560000000.png"
},
"usedCredits": 4,
"createdAt": "2026-09-17T10:00:00.000Z",
"updatedAt": "2026-09-17T10:00:12.000Z"
}
}
{
"success": false,
"message": "Image not found"
}
Overview
Returns an image of your library with the state of the edits started on it: the image itself (status is PROCESSING while an expansion paints it) and its background removal (backgroundRemoval.status). Poll it after Remove Image Background or Expand Image until the state you wait for is COMPLETED or FAILED. This call is free and safe to retry.
curl "https://api.hooked.so/v1/image/cm1a2b3c4d5e6f7g8h9i0j1k2" \
-H "x-api-key: your_api_key_here"
const response = await fetch('https://api.hooked.so/v1/image/cm1a2b3c4d5e6f7g8h9i0j1k2', {
headers: { 'x-api-key': 'your_api_key_here' }
});
const { data } = await response.json();
if (data.backgroundRemoval.status === 'COMPLETED') console.log(data.backgroundRemoval.url);
import requests
response = requests.get(
'https://api.hooked.so/v1/image/cm1a2b3c4d5e6f7g8h9i0j1k2',
headers={'x-api-key': 'your_api_key_here'}
)
data = response.json()['data']
print(data['status'], data['backgroundRemoval']['status'])
{
"success": true,
"message": "Image details fetched successfully",
"data": {
"id": "cm1a2b3c4d5e6f7g8h9i0j1k2",
"name": "portrait.jpg",
"status": "COMPLETED",
"url": "https://.../portrait.jpg",
"aspectRatio": null,
"backgroundRemoval": {
"status": "COMPLETED",
"url": "https://.../cm1a2b3c4d5e6f7g8h9i0j1k2-1726560000000.png"
},
"usedCredits": 4,
"createdAt": "2026-09-17T10:00:00.000Z",
"updatedAt": "2026-09-17T10:00:12.000Z"
}
}
{
"success": false,
"message": "Image not found"
}
Errors
| Status | When |
|---|---|
| 401 | Missing or invalid API key (code: "not_authenticated") |
| 403 | The team does not have the Hooked app product (code: "entitlement_required") |
| 404 | No such image in your library. Another team’s image, or a media that is not an image, answers the same Image not found |