/api/v1/containersList containersReturns all containers in your account. Default container main is auto-created at register.
[
{
"id": "cmq001",
"name": "main",
"slug": "main",
"isDefault": true,
"folderCount": 3
}
]netlike CDN API is REST-based, returns JSON, supports multipart uploads. Callable from any language — see samples below.
Live in 3 steps.
Every request uses the X-API-KEY header.
curl https://api.netlike.net.tr/api/v1/usage \
-H "X-API-KEY: gn_xxxxxxxxxxxxxxxxxxxx"Base URL · production
https://api.netlike.net.tr/api/v1/containersList containersReturns all containers in your account. Default container main is auto-created at register.
[
{
"id": "cmq001",
"name": "main",
"slug": "main",
"isDefault": true,
"folderCount": 3
}
]/api/v1/containersCreate containerCreates a new container. Slug is auto-generated.
| Parameter | Type | Description |
|---|---|---|
| name | string · required | Display name. Slug derived from this. |
{ "name": "Shop" }{
"id": "cmqXXX",
"name": "Shop",
"slug": "shop",
"isDefault": false
}/api/v1/containers/:idDelete containerAll folders and images in the container are cascade-deleted.
{
"ok": true
}/api/v1/foldersList foldersFilter by container and/or parent.
| Parameter | Type | Description |
|---|---|---|
| container | string · optional | Container slug |
| parent | string · optional | "root" → top-level · folder slug → direct subfolders |
/api/v1/foldersCreate folder or subfolderWithout parent → top-level folder (counts against plan limit). With parent → subfolder (unlimited).
| Parameter | Type | Description |
|---|---|---|
| name | string · required | Display name |
| container | string · required | Container slug |
| parent | string · optional | Parent folder slug (omit for top-level) |
{ "name": "Products", "container": "main" }
{ "name": "Winter 2026", "container": "main", "parent": "products" }/api/v1/folders/:idRename folderSlug and all descendant paths auto-update.
{ "name": "Winter 2027" }/api/v1/folders/:idDelete folder (and subfolders + images)Deletes folder and entire subtree cascade.
{
"ok": true
}/api/v1/uploadUpload imageMultipart/form-data upload, single or multiple files. Auto-converted to WebP.
| Parameter | Type | Description |
|---|---|---|
| container | string · optional | Container slug |
| folder | string · required | Target folder slug |
| files | file[] · required | Image file(s). JPG/PNG/WebP/AVIF/GIF, max 25MB per plan. |
{
"uploaded": [
{
"id": "cmqxxxx",
"url": "https://cdn.netlike.net.tr/sukru/main/products/8f3...e1.webp",
"width": 1920,
"height": 1080,
"sizeBytes": 124310
}
]
}/api/v1/imagesList imagesFilter by container and folder slugs + cursor-based pagination.
/api/v1/images/:idSingle image detailsFull metadata for a specific image.
/api/v1/images/:idDelete imageDeletes a single image. Removed from CDN too.
{
"ok": true,
"id": "img_a1b2c3"
}/api/v1/images/batch-deleteBulk delete imagesDelete up to 200 images per request. Body: { ids: ["img_a", "img_b", ...] }. IDs you don't own or that don't exist are silently skipped — the rest are deleted. Response returns a per-id status (deleted: true/false).
{
"ok": true,
"requested": 3,
"deleted": 2,
"skipped": 1,
"bytesFreed": "491520",
"results": [
{
"id": "img_a1b2c3",
"deleted": true,
"sizeBytes": 245760
},
{
"id": "img_d4e5f6",
"deleted": true,
"sizeBytes": 245760
},
{
"id": "img_unknown",
"deleted": false,
"reason": "not_found_or_not_owned"
}
]
}/api/v1/usageUsage/quotaLive storage status and plan.
{
"storageUsedBytes": "124310",
"storageQuotaMB": 500,
"maxFileSizeMB": 5,
"plan": "FREE"
}Same upload, 5 languages.
KEY="gn_xxxxxxxxxxxxxxxxxxxx"
curl https://api.netlike.net.tr/api/v1/containers -H "X-API-KEY: $KEY"
curl -X POST https://api.netlike.net.tr/api/v1/folders -H "X-API-KEY: $KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Products","container":"main"}'
curl -X POST https://api.netlike.net.tr/api/v1/upload -H "X-API-KEY: $KEY" \
-F "container=main" -F "folder=products" \
-F "files=@/path/photo.jpg"| HTTP | error | Description |
|---|---|---|
| 400 | ValidationError | Body / query invalid. Details in issues[] array. |
| 401 | UnauthorizedError | X-API-KEY missing or revoked. |
| 402 | QuotaExceeded | Storage or plan limit exceeded. |
| 404 | NotFound | Folder/file not found. |
| 415 | UnsupportedMediaType | Uploaded file is not an image (magic byte check). |
| 429 | RateLimitExceeded | Per-minute call limit exceeded. |
| 502 | StorageUnavailable | SFTP push to CDN storage failed (transient). |