{"openapi":"3.0.3","info":{"title":"Yayasan Jaya Sanga Nusantara — Dataset API","description":"API dataset terbuka pertunjukan rakyat Kabupaten Wonosobo. Open dataset API for folk performance data from Wonosobo Regency, Central Java, Indonesia. Licensed under CC BY 4.0.","version":"1.0.0","contact":{"name":"Yayasan Jaya Sanga Nusantara","url":"https://jayasanganusantara.or.id","email":"admin@jayasanganusantara.or.id"},"license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"}},"servers":[{"url":"https://jayasanganusantara.or.id/api/v1/dataset","description":"Production server"}],"tags":[{"name":"LenggerEvent","description":"Folk Performance Event Data — Data Pentas Budaya Rakyat"},{"name":"Archive","description":"Cultural Archive Data — Arsip Digital Budaya Terstruktur"},{"name":"Podcast","description":"Podcast Episode Data — Data Episode Podcast"},{"name":"Report","description":"Analytical Report Data — Data Laporan Analitis"}],"paths":{"/{table}":{"get":{"summary":"Retrieve dataset records","description":"Fetch records from a specified dataset table. Returns JSON by default, or CSV if format=csv is specified. No authentication required.","operationId":"getDataset","tags":["LenggerEvent","Archive","Podcast","Report"],"parameters":[{"name":"table","in":"path","required":true,"description":"Dataset table name","schema":{"type":"string","enum":["LenggerEvent","Archive","Podcast","Report"]}},{"name":"format","in":"query","required":false,"description":"Response format. JSON (default) returns structured data; CSV returns downloadable file.","schema":{"type":"string","enum":["json","csv"],"default":"json"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of records to return.","schema":{"type":"integer","minimum":1,"maximum":50000,"default":10000}},{"name":"search","in":"query","required":false,"description":"Free-text search across all string fields. Case-insensitive.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response with dataset records","content":{"application/json":{"schema":{"type":"object","properties":{"dataset":{"type":"string","description":"Table name","example":"LenggerEvent"},"version":{"type":"string","description":"API version (semver)","example":"1.0.0"},"generatedAt":{"type":"string","format":"date-time","description":"Timestamp of response generation"},"recordCount":{"type":"integer","description":"Number of records returned","example":219},"fields":{"type":"array","items":{"type":"string"},"description":"List of available fields","example":["id","title","date","klasifikasi"]},"license":{"type":"string","description":"License code","example":"CC-BY-4.0"},"licenseUrl":{"type":"string","format":"uri","description":"License URL","example":"https://creativecommons.org/licenses/by/4.0/"},"citation":{"type":"string","description":"Citation template for academic use"},"data":{"type":"array","items":{"type":"object"},"description":"Array of dataset records"}},"required":["dataset","version","generatedAt","recordCount","fields","license","data"]}},"text/csv":{"schema":{"type":"string","description":"CSV file with headers. Filename format: {TableName}_{YYYY-MM-DD}.csv"}}}},"400":{"description":"Invalid table name","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Invalid table: Foo. Allowed: LenggerEvent, Archive, Podcast, Report"},"allowedTables":{"type":"array","items":{"type":"string"},"example":["LenggerEvent","Archive","Podcast","Report"]}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Failed to fetch dataset"}}}}}}}}}},"components":{"schemas":{"LenggerEvent":{"type":"object","description":"Folk performance event data — Data pentas budaya rakyat","properties":{"id":{"type":"string","description":"Unique identifier (CUID)","example":"cm3abc123xyz"},"title":{"type":"string","description":"Event title","example":"Bersih Desa Loano"},"description":{"type":"string","nullable":true,"description":"Event description"},"date":{"type":"string","format":"date-time","description":"Performance date","example":"2026-03-15T00:00:00.000Z"},"location":{"type":"string","nullable":true,"description":"Event location","example":"Balai Desa Loano"},"dusun":{"type":"string","nullable":true,"description":"Hamlet/sub-village name","example":"Dusun Krajan"},"desa":{"type":"string","nullable":true,"description":"Village name","example":"Loano"},"kecamatan":{"type":"string","nullable":true,"description":"Sub-district name","example":"Loano"},"kabupaten":{"type":"string","nullable":true,"description":"Regency name","example":"Wonosobo"},"provinsi":{"type":"string","nullable":true,"description":"Province name","example":"Jawa Tengah"},"komunitasBudaya":{"type":"string","nullable":true,"description":"Cultural community/troupe names (semicolon-separated)","example":"Sido Mukti;Mudo Ngesti"},"artisLengger":{"type":"string","nullable":true,"description":"Lengger dancers (semicolon-separated)","example":"Sri Lestari;Dewi Rahayu"},"sinden":{"type":"string","nullable":true,"description":"Singers (semicolon-separated)","example":"Bu Wagi;Bu Darmi"},"klasifikasi":{"type":"string","nullable":true,"description":"Performance type (separated by & and ,)","example":"Lengger & Jaranan"},"status":{"type":"string","nullable":true,"description":"Event status","example":"completed"},"category":{"type":"string","nullable":true,"description":"Event category","example":"Bersih Desa"},"createdAt":{"type":"string","format":"date-time","description":"Record creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Record update timestamp"}}},"Archive":{"type":"object","description":"Cultural archive data — Data arsip pemajuan kebudayaan","properties":{"id":{"type":"string","description":"Unique identifier (CUID)"},"title":{"type":"string","description":"Archive title"},"type":{"type":"string","description":"Archive type","enum":["video","shorts","film","postingan","terbitan","foto","dokumen","artikel"]},"description":{"type":"string","nullable":true,"description":"Archive description"},"fileUrl":{"type":"string","nullable":true,"description":"File URL (PDF, image, etc.)"},"thumbnailUrl":{"type":"string","nullable":true,"description":"Thumbnail/preview image URL"},"youtubeUrl":{"type":"string","nullable":true,"description":"YouTube URL"},"date":{"type":"string","format":"date-time","nullable":true,"description":"Archive date"},"location":{"type":"string","nullable":true,"description":"Location"},"tags":{"type":"string","nullable":true,"description":"Tags/keywords"},"published":{"type":"boolean","description":"Publication status"},"publishedAt":{"type":"string","format":"date-time","nullable":true,"description":"Publication timestamp"},"lenggerEventId":{"type":"string","nullable":true,"description":"Related LenggerEvent ID (foreign key)"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"Podcast":{"type":"object","description":"Podcast episode data — Data episode podcast","properties":{"id":{"type":"string","description":"Unique identifier (CUID)"},"title":{"type":"string","description":"Episode title"},"description":{"type":"string","nullable":true,"description":"Episode description"},"episodeNumber":{"type":"integer","description":"Episode number"},"youtubeUrl":{"type":"string","nullable":true,"description":"YouTube URL"},"duration":{"type":"string","nullable":true,"description":"Duration (mm:ss)"},"coverUrl":{"type":"string","nullable":true,"description":"Cover image URL"},"guests":{"type":"string","nullable":true,"description":"Guest names"},"tags":{"type":"string","nullable":true,"description":"Tags/keywords"},"published":{"type":"boolean","description":"Publication status"},"publishedAt":{"type":"string","format":"date-time","nullable":true,"description":"Publication timestamp"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"Report":{"type":"object","description":"Analytical report data — Data laporan analitis","properties":{"id":{"type":"string","description":"Unique identifier (CUID)"},"title":{"type":"string","description":"Report title"},"type":{"type":"string","description":"Report type","enum":["weekly","monthly","quarterly","annual"]},"period":{"type":"string","nullable":true,"description":"Report period"},"content":{"type":"string","nullable":true,"description":"Report content"},"summary":{"type":"string","nullable":true,"description":"Report summary"},"fileUrl":{"type":"string","nullable":true,"description":"PDF file URL"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}}}},"externalDocs":{"description":"API Documentation","url":"https://jayasanganusantara.or.id/api-docs"}}