{"openapi":"3.1.0","info":{"title":"Kontainer.id Enterprise API","version":"1.0.0","description":"REST JSON untuk listing, pencarian, Indeks Harga Kontainer, RFQ, status order, dan tracking. Semua nominal dalam rupiah (integer) dan waktu dalam unix milidetik. Format error: `{ error: { code, message, details } }`.","contact":{"name":"Kontainer.id","email":"api@kontainer.id","url":"https://kontainer.id/developer"}},"servers":[{"url":"https://api.kontainer.id/v1","description":"Produksi"}],"tags":[{"name":"Listing"},{"name":"Data"},{"name":"RFQ"},{"name":"Order"},{"name":"Tracking"},{"name":"Webhook"},{"name":"Akun"}],"components":{"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","description":"API key organisasi: `Authorization: Bearer kid_live_...`"}},"schemas":{"ListingPage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Listing"}},"total":{"type":"integer"},"nextCursor":{"type":["string","null"]}},"required":["data","total","nextCursor"]},"Listing":{"type":"object","properties":{"id":{"type":"string","example":"01JD6Z1Y0K2N7Y3W8Q5R4T6V9X"},"slug":{"type":"string"},"url":{"type":"string","format":"uri"},"title":{"type":"string"},"transactionType":{"type":"string","enum":["sale","rent","modification","service"]},"serviceKind":{"type":["string","null"]},"sizeCode":{"type":["string","null"],"example":"20ft"},"typeCode":{"type":["string","null"],"example":"dry"},"conditionCode":{"type":["string","null"],"example":"cargo_worthy"},"price":{"type":["integer","null"],"description":"Harga dalam rupiah (integer).","example":38500000},"pricePeriod":{"type":["string","null"],"example":"sale"},"priceNegotiable":{"type":"boolean"},"deliveryAvailable":{"type":"boolean"},"stock":{"type":"integer"},"location":{"type":"object","properties":{"provinceId":{"type":"string"},"provinceName":{"type":"string"},"cityId":{"type":"string"},"cityName":{"type":"string"}},"required":["provinceId","provinceName","cityId","cityName"]},"vendor":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"verified":{"type":"boolean"},"ratingAvg":{"type":"number"},"ratingCount":{"type":"integer"}},"required":["name","slug","verified","ratingAvg","ratingCount"]},"imageUrl":{"type":["string","null"]},"featured":{"type":"boolean"},"publishedAt":{"type":["integer","null"],"description":"Unix ms"}},"required":["id","slug","url","title","transactionType","serviceKind","sizeCode","typeCode","conditionCode","price","pricePeriod","priceNegotiable","deliveryAvailable","stock","location","vendor","imageUrl","featured","publishedAt"]},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}},"required":["code","message"]}},"required":["error"]},"PriceIndexPoint":{"type":"object","properties":{"day":{"type":"string","example":"2026-09-28"},"sizeCode":{"type":"string"},"metric":{"type":"string","enum":["sale","rent_monthly"]},"provinceId":{"type":["string","null"]},"cityId":{"type":["string","null"]},"sampleCount":{"type":"integer"},"median":{"type":"integer"},"p25":{"type":"integer"},"p75":{"type":"integer"},"min":{"type":"integer"},"max":{"type":"integer"},"avg":{"type":"integer"}},"required":["day","sizeCode","metric","provinceId","cityId","sampleCount","median","p25","p75","min","max","avg"]},"Rfq":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":"string"},"title":{"type":"string"},"needType":{"type":"string"},"status":{"type":"string"},"deadlineAt":{"type":"integer"},"quotationCount":{"type":"integer"},"createdAt":{"type":"integer"},"url":{"type":"string"},"quotations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"vendorName":{"type":"string"},"status":{"type":"string"},"total":{"type":"integer"},"leadTimeDays":{"type":["integer","null"]},"validUntil":{"type":["integer","null"]}},"required":["id","vendorName","status","total","leadTimeDays","validUntil"]}}},"required":["id","code","title","needType","status","deadlineAt","quotationCount","createdAt","url","quotations"]},"RfqCreate":{"type":"object","properties":{"title":{"type":"string","minLength":5,"maxLength":160,"example":"Kebutuhan 10 unit kontainer 20ft untuk gudang proyek"},"needType":{"type":"string","enum":["buy","rent","modify","trucking","bundle"]},"description":{"type":"string","minLength":20,"maxLength":5000},"provinceId":{"type":"string","example":"35"},"cityId":{"type":"string","example":"35.78"},"deliveryAddress":{"type":"string","maxLength":500},"deadlineDays":{"type":"integer","minimum":3,"maximum":60},"neededBy":{"type":"string","description":"YYYY-MM-DD"},"budgetMin":{"type":"integer"},"budgetMax":{"type":"integer"},"items":{"type":"array","items":{"type":"object","properties":{"sizeCode":{"type":"string"},"typeCode":{"type":"string"},"conditionCode":{"type":"string"},"quantity":{"type":"integer","minimum":1},"rentalMonths":{"type":"integer"},"description":{"type":"string","maxLength":500}},"required":["quantity"]},"minItems":1,"maxItems":20}},"required":["title","needType","description","provinceId","cityId","items"]},"Order":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"},"role":{"type":"string","enum":["buyer","vendor"]},"subtotal":{"type":"integer"},"shippingFee":{"type":"integer"},"taxAmount":{"type":"integer"},"total":{"type":"integer"},"amountPaid":{"type":"integer"},"paidAt":{"type":["integer","null"]},"completedAt":{"type":["integer","null"]},"items":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"description":{"type":"string"},"quantity":{"type":"integer"},"unitPrice":{"type":"integer"},"total":{"type":"integer"}},"required":["kind","description","quantity","unitPrice","total"]}},"shipments":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"string"},"trackingUrl":{"type":"string"}},"required":["code","status","trackingUrl"]}}},"required":["id","code","status","type","role","subtotal","shippingFee","taxAmount","total","amountPaid","paidAt","completedAt","items","shipments"]},"Shipment":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"string"},"statusLabel":{"type":"string"},"origin":{"type":"string"},"destination":{"type":"string"},"etaAt":{"type":["integer","null"]},"deliveredAt":{"type":["integer","null"]},"lastLocation":{"type":["string","null"]},"events":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string"},"description":{"type":"string"},"location":{"type":["string","null"]},"occurredAt":{"type":"integer"}},"required":["status","description","location","occurredAt"]}}},"required":["code","status","statusLabel","origin","destination","etaAt","deliveredAt","lastLocation","events"]},"WebhookCreate":{"type":"object","properties":{"url":{"type":"string","format":"uri","example":"https://erp.perusahaan.co.id/hooks/kontainer"},"events":{"type":"array","items":{"type":"string","enum":["shipment.updated","order.updated","rfq.quotation_received"]},"minItems":1}},"required":["url","events"]},"Webhook":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"active":{"type":"boolean"},"lastDeliveryAt":{"type":["integer","null"]},"lastStatus":{"type":["integer","null"]},"failureCount":{"type":"integer"},"createdAt":{"type":"integer"}},"required":["id","url","events","active","lastDeliveryAt","lastStatus","failureCount","createdAt"]},"Usage":{"type":"object","properties":{"month":{"type":"string"},"requests":{"type":"integer"},"quota":{"type":"integer"},"ratePerMinute":{"type":"integer"},"overageEnabled":{"type":"boolean"}},"required":["month","requests","quota","ratePerMinute","overageEnabled"]}},"parameters":{}},"paths":{"/listings":{"get":{"tags":["Listing"],"summary":"Cari listing aktif","description":"Pencarian full-text + filter faset. Pagination berbasis cursor (`nextCursor`). Scope: `listings:read`.","security":[{"ApiKey":[]}],"parameters":[{"schema":{"type":"string","description":"Kata kunci (full-text).","example":"20ft reefer"},"required":false,"description":"Kata kunci (full-text).","name":"q","in":"query"},{"schema":{"type":"string","description":"jual,sewa,modifikasi,jasa (dipisah koma)"},"required":false,"description":"jual,sewa,modifikasi,jasa (dipisah koma)","name":"tipe","in":"query"},{"schema":{"type":"string","description":"10ft,20ft,40ft,40hc,45ft"},"required":false,"description":"10ft,20ft,40ft,40hc,45ft","name":"ukuran","in":"query"},{"schema":{"type":"string","description":"dry,high_cube,reefer,open_top,flat_rack,iso_tank,office,modified"},"required":false,"description":"dry,high_cube,reefer,open_top,flat_rack,iso_tank,office,modified","name":"jenis","in":"query"},{"schema":{"type":"string","description":"new,cargo_worthy,wwt,as_is"},"required":false,"description":"new,cargo_worthy,wwt,as_is","name":"kondisi","in":"query"},{"schema":{"type":"string","description":"Kode provinsi Kemendagri, mis. 31"},"required":false,"description":"Kode provinsi Kemendagri, mis. 31","name":"provinsi","in":"query"},{"schema":{"type":"string","description":"Kode kab/kota, mis. 35.78"},"required":false,"description":"Kode kab/kota, mis. 35.78","name":"kota","in":"query"},{"schema":{"type":"string"},"required":false,"name":"harga_min","in":"query"},{"schema":{"type":"string"},"required":false,"name":"harga_maks","in":"query"},{"schema":{"type":"string","description":"1 = hanya vendor terverifikasi"},"required":false,"description":"1 = hanya vendor terverifikasi","name":"terverifikasi","in":"query"},{"schema":{"type":"string","enum":["relevan","terbaru","termurah","termahal","terdekat"]},"required":false,"name":"urut","in":"query"},{"schema":{"type":"string","description":"Kode kota tujuan untuk urut=terdekat"},"required":false,"description":"Kode kota tujuan untuk urut=terdekat","name":"tujuan","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","description":"1–48, default 24"},"required":false,"description":"1–48, default 24","name":"limit","in":"query"}],"responses":{"200":{"description":"Halaman hasil","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListingPage"}}}},"400":{"description":"Permintaan tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope/paket tidak mengizinkan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Tidak ditemukan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validasi gagal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit atau kuota terlampaui","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/listings/{id}":{"get":{"tags":["Listing"],"summary":"Detail listing","security":[{"ApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Listing","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Listing"}},"required":["data"]}}}},"400":{"description":"Permintaan tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope/paket tidak mengizinkan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Tidak ditemukan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validasi gagal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit atau kuota terlampaui","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/price-index":{"get":{"tags":["Data"],"summary":"Indeks Harga Kontainer harian","description":"Median, persentil, dan rentang harga harian (agregat & anonim). Tanpa `provinsi`/`kota` = nasional. Scope: `price_index:read`.","security":[{"ApiKey":[]}],"parameters":[{"schema":{"type":"string","example":"20ft"},"required":true,"name":"ukuran","in":"query"},{"schema":{"type":"string","enum":["sale","rent_monthly"],"description":"Default sale"},"required":false,"description":"Default sale","name":"metrik","in":"query"},{"schema":{"type":"string"},"required":false,"name":"provinsi","in":"query"},{"schema":{"type":"string"},"required":false,"name":"kota","in":"query"},{"schema":{"type":"string","description":"YYYY-MM-DD"},"required":false,"description":"YYYY-MM-DD","name":"dari","in":"query"},{"schema":{"type":"string","description":"YYYY-MM-DD"},"required":false,"description":"YYYY-MM-DD","name":"sampai","in":"query"}],"responses":{"200":{"description":"Deret harian","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PriceIndexPoint"}}},"required":["data"]}}}},"400":{"description":"Permintaan tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope/paket tidak mengizinkan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Tidak ditemukan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validasi gagal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit atau kuota terlampaui","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/rfqs":{"post":{"tags":["RFQ"],"summary":"Buat RFQ","description":"Membuat RFQ atas nama organisasi pemilik API key; RFQ langsung didistribusikan ke vendor relevan. Scope: `rfq:write`.","security":[{"ApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RfqCreate"}}}},"responses":{"201":{"description":"RFQ dibuat","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Rfq"}},"required":["data"]}}}},"400":{"description":"Permintaan tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope/paket tidak mengizinkan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Tidak ditemukan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validasi gagal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit atau kuota terlampaui","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/rfqs/{id}":{"get":{"tags":["RFQ"],"summary":"Status RFQ & ringkasan penawaran","security":[{"ApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"RFQ","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Rfq"}},"required":["data"]}}}},"400":{"description":"Permintaan tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope/paket tidak mengizinkan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Tidak ditemukan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validasi gagal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit atau kuota terlampaui","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/orders/{id}":{"get":{"tags":["Order"],"summary":"Status order","description":"Order tempat organisasi Anda menjadi pembeli atau vendor. Menerima ID atau kode order. Scope: `orders:read`.","security":[{"ApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Order","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Order"}},"required":["data"]}}}},"400":{"description":"Permintaan tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope/paket tidak mengizinkan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Tidak ditemukan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validasi gagal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit atau kuota terlampaui","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/shipments/{code}":{"get":{"tags":["Tracking"],"summary":"Tracking pengiriman","description":"Timeline status pengiriman (dieksekusi oleh Logistikku.id). Scope: `shipments:read`.","security":[{"ApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"code","in":"path"}],"responses":{"200":{"description":"Shipment","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Shipment"}},"required":["data"]}}}},"400":{"description":"Permintaan tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope/paket tidak mengizinkan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Tidak ditemukan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validasi gagal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit atau kuota terlampaui","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks":{"post":{"tags":["Webhook"],"summary":"Daftarkan webhook","description":"Kontainer.id mengirim POST JSON ke URL Anda untuk event terpilih. Verifikasi header `X-Kontainer-Signature: sha256=HMAC_SHA256(secret, timestamp + '.' + body)` dengan `X-Kontainer-Timestamp`. `secret` hanya ditampilkan sekali. Scope: `webhooks:manage`.","security":[{"ApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreate"}}}},"responses":{"201":{"description":"Webhook dibuat","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"secret":{"type":"string"}},"required":["id","secret"]}},"required":["data"]}}}},"400":{"description":"Permintaan tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope/paket tidak mengizinkan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Tidak ditemukan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validasi gagal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit atau kuota terlampaui","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"tags":["Webhook"],"summary":"Daftar webhook","security":[{"ApiKey":[]}],"responses":{"200":{"description":"Webhook","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Webhook"}}},"required":["data"]}}}},"400":{"description":"Permintaan tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope/paket tidak mengizinkan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Tidak ditemukan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validasi gagal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit atau kuota terlampaui","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/{id}":{"delete":{"tags":["Webhook"],"summary":"Nonaktifkan webhook","security":[{"ApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"204":{"description":"Dinonaktifkan"},"400":{"description":"Permintaan tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope/paket tidak mengizinkan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Tidak ditemukan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validasi gagal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit atau kuota terlampaui","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/usage":{"get":{"tags":["Akun"],"summary":"Pemakaian bulan berjalan","security":[{"ApiKey":[]}],"responses":{"200":{"description":"Pemakaian","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Usage"}},"required":["data"]}}}},"400":{"description":"Permintaan tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key tidak valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Scope/paket tidak mengizinkan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Tidak ditemukan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validasi gagal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit atau kuota terlampaui","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"webhooks":{}}