Referensi REST API

Endpoint Proyek (Projects)

Kelola kontainer proyek Cloudizero secara terprogram: membuat boundary penyimpanan baru, mendaftar proyek yang dapat diakses, memperbarui metadata, dan menghapus proyek beserta seluruh aset di dalamnya.

GET

/api/projects

Mengambil daftar semua proyek yang dapat diakses oleh kunci API. Anda dapat menyaring proyek berdasarkan tim menggunakan parameter kueri opsional workspaceId.

Request (Semua Proyek)
curl -X GET "https://api.cloudizero.com/api/projects" \
  -H "Authorization: Bearer cz_live_..."
Request (Filter Workspace)
curl -X GET "https://api.cloudizero.com/api/projects?workspaceId=wrk_IIZHBI7BIsUY7IOL" \
  -H "Authorization: Bearer cz_live_..."
Response (200 OK)
[
  {
    "id": "prj_LXAlEW70v24YSc0y",
    "name": "E-Commerce Assets",
    "description": "Production media assets for store catalog",
    "workspaceId": "wrk_IIZHBI7BIsUY7IOL",
    "sortOrder": 0,
    "totalSize": 104857600,
    "fileCount": 42,
    "createdAt": "2026-10-12T12:00:00.000Z",
    "updatedAt": "2026-10-21T18:00:00.000Z"
  }
]
POST

/api/projects

Membuat kontainer proyek baru dalam sistem penyimpanan Cloudizero. Memerlukan kunci API dengan izin Akses Global (All Projects).

Request
curl -X POST https://api.cloudizero.com/api/projects \
  -H "Authorization: Bearer cz_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Marketing Launch Campaign",
    "description": "Banners, hero images, and promotional videos",
    "workspaceId": "wrk_IIZHBI7BIsUY7IOL"
  }'
Response (201 Created)
{
  "id": "prj_LXAlEW70v24YSc0y",
  "userId": "usr_IIZHBI7BIsUY7IOL",
  "workspaceId": "wrk_IIZHBI7BIsUY7IOL",
  "name": "Marketing Launch Campaign",
  "description": "Banners, hero images, and promotional videos",
  "sortOrder": 1,
  "createdAt": "2026-10-21T18:00:00.000Z",
  "updatedAt": "2026-10-21T18:00:00.000Z"
}
PATCH

/api/projects

Memperbarui nama atau deskripsi proyek yang sudah ada.

Request
curl -X PATCH https://api.cloudizero.com/api/projects \
  -H "Authorization: Bearer cz_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "projectId": "prj_LXAlEW70v24YSc0y",
    "name": "Marketing Launch Q4",
    "description": "Updated asset collection for Q4 campaign"
  }'
Response (200 OK)
{
  "project": {
    "id": "prj_LXAlEW70v24YSc0y",
    "userId": "usr_IIZHBI7BIsUY7IOL",
    "workspaceId": "wrk_IIZHBI7BIsUY7IOL",
    "name": "Marketing Launch Q4",
    "description": "Updated asset collection for Q4 campaign",
    "sortOrder": 1,
    "createdAt": "2026-10-21T18:00:00.000Z",
    "updatedAt": "2026-10-21T18:30:00.000Z"
  }
}
PATCH

/api/projects/reorder

Memperbarui urutan tampilan visual seluruh proyek dengan mengirimkan daftar terurut ID proyek.

Request
curl -X PATCH https://api.cloudizero.com/api/projects/reorder \
  -H "Authorization: Bearer cz_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "projectIds": [
      "prj_LXAlEW70v24YSc0y",
      "prj_ARaZjwdPpUqXhDHf"
    ]
  }'
Response (200 OK)
{
  "success": true
}
DELETE

/api/projects

Menghapus kontainer proyek secara permanen beserta seluruh file, folder, thumbnail, dan metadata yang ada di dalamnya dari penyimpanan objek dan basis data Cloudizero.

Request
curl -X DELETE "https://api.cloudizero.com/api/projects?projectId=prj_LXAlEW70v24YSc0y" \
  -H "Authorization: Bearer cz_live_..."
Response (200 OK)
{
  "success": true,
  "message": "Project deleted successfully"
}
Tindakan Permanen
Penghapusan proyek bersifat tidak dapat dibatalkan (irreversible). Seluruh objek biner dan metadata yang terkait akan langsung dimusnahkan.