{"openapi":"3.1.0","info":{"title":"Shurer Manchitra open map API","version":"1.0.0","description":"Read-only access to published, public, rights-cleared recordings and artists on the map, and to the administrative boundaries it draws. Every item from a partner collection carries its credit line and source link; show them wherever the item appears. Boundaries: OCHA/HDX COD-AB (CC BY-IGO). Rivers: © OpenStreetMap contributors (ODbL)."},"servers":[{"url":"/api/v1"}],"paths":{"/map/points":{"get":{"summary":"Recordings as GeoJSON points","parameters":[{"name":"division","in":"query","schema":{"type":"string"},"description":"Division P-code, e.g. BD60"},{"name":"district","in":"query","schema":{"type":"string"},"description":"District P-code, e.g. BD6091"},{"name":"upazila","in":"query","schema":{"type":"string"},"description":"Upazila P-code"},{"name":"tradition","in":"query","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true,"description":"Tradition slug; repeat for several"},{"name":"yearFrom","in":"query","schema":{"type":"integer","minimum":1700,"maximum":2050}},{"name":"yearTo","in":"query","schema":{"type":"integer","minimum":1700,"maximum":2050}},{"name":"beyondBorders","in":"query","schema":{"type":"boolean","default":false},"description":"Include Bengal beyond Bangladesh and the diaspora"},{"name":"bbox","in":"query","schema":{"type":"string","pattern":"^-?[0-9.]+(,-?[0-9.]+){3}$"},"description":"minLng,minLat,maxLng,maxLat"},{"name":"instrument","in":"query","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"vitalityStatus","in":"query","schema":{"type":"string"}},{"name":"collection","in":"query","schema":{"type":"string"}},{"name":"hasLyrics","in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"One feature per recording, at most 5,000. Cached for 60 seconds.","content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/RecordingPoints"}}}},"400":{"description":"Malformed parameters"},"500":{"description":"The archive could not be read"}}}},"/map/artists":{"get":{"summary":"Artists' home places as GeoJSON points","parameters":[{"name":"division","in":"query","schema":{"type":"string"},"description":"Division P-code, e.g. BD60"},{"name":"district","in":"query","schema":{"type":"string"},"description":"District P-code, e.g. BD6091"},{"name":"upazila","in":"query","schema":{"type":"string"},"description":"Upazila P-code"},{"name":"tradition","in":"query","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true,"description":"Tradition slug; repeat for several"},{"name":"yearFrom","in":"query","schema":{"type":"integer","minimum":1700,"maximum":2050}},{"name":"yearTo","in":"query","schema":{"type":"integer","minimum":1700,"maximum":2050}},{"name":"beyondBorders","in":"query","schema":{"type":"boolean","default":false},"description":"Include Bengal beyond Bangladesh and the diaspora"},{"name":"bbox","in":"query","schema":{"type":"string","pattern":"^-?[0-9.]+(,-?[0-9.]+){3}$"},"description":"minLng,minLat,maxLng,maxLat"}],"responses":{"200":{"description":"At most 2,000 features. Cached for 60 seconds.","content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/ArtistPoints"}}}},"400":{"description":"Malformed parameters"},"500":{"description":"The archive could not be read"}}}},"/map/divisions-summary":{"get":{"summary":"Published recordings per division","responses":{"200":{"description":"Cached for 120 seconds.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DivisionSummary"}}}}},"500":{"description":"The archive could not be read"}}}},"/geo/{level}":{"get":{"summary":"Administrative boundaries","description":"Display-simplified polygons. For drill-down without a request per view, the same geometry is published as static files: /geo/divisions.geojson, /geo/district/{divisionPcode}.geojson and /geo/upazila/{districtPcode}.geojson.","parameters":[{"name":"level","in":"path","required":true,"schema":{"type":"string","enum":["division","district","upazila"]}},{"name":"parent","in":"query","schema":{"type":"string","pattern":"^[A-Za-z0-9]{2,12}$"},"description":"Only units inside this parent P-code"}],"responses":{"200":{"description":"Cached for a day.","content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/Boundaries"}}}},"400":{"description":"Malformed parameters"},"500":{"description":"The archive could not be read"}}}}},"components":{"schemas":{"RecordingPoints":{"type":"object","required":["type","features"],"properties":{"type":{"const":"FeatureCollection"},"truncated":{"const":true,"description":"Present only when the server's cap was reached. Narrow with bbox or filters to see the rest."},"features":{"type":"array","items":{"type":"object","required":["type","geometry","properties"],"properties":{"type":{"const":"Feature"},"geometry":{"type":"object","required":["type","coordinates"],"properties":{"type":{"const":"Point"},"coordinates":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2,"description":"[longitude, latitude], WGS 84"}}},"properties":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"publicId":{"type":"string","description":"Stable id used in /recordings/{publicId}"},"titleBn":{"type":["string","null"]},"titleEn":{"type":["string","null"]},"traditionSlug":{"type":["string","null"]},"traditionNameBn":{"type":["string","null"]},"traditionNameEn":{"type":["string","null"]},"vitalityStatus":{"type":["string","null"]},"instrumentSlug":{"type":["string","null"]},"year":{"type":["integer","null"]},"durationMs":{"type":["integer","null"]},"locationPrecision":{"type":"string","enum":["exact","village","union","upazila","district","division","country","unknown"],"description":"How precisely the point is placed. Living people's locations are never finer than upazila without recorded consent."},"isApproximate":{"type":"boolean"},"collectionSlug":{"type":["string","null"]},"collectionCreditBn":{"type":["string","null"],"description":"Required credit line (Bangla)"},"collectionCreditEn":{"type":["string","null"],"description":"Required credit line (English)"},"collectionCreditUrl":{"type":["string","null"],"format":"uri"},"sourceUrl":{"type":["string","null"],"format":"uri"},"countryCode":{"type":"string"}}}}}}}},"ArtistPoints":{"type":"object","required":["type","features"],"properties":{"type":{"const":"FeatureCollection"},"truncated":{"const":true,"description":"Present only when the server's cap was reached. Narrow with bbox or filters to see the rest."},"features":{"type":"array","items":{"type":"object","required":["type","geometry","properties"],"properties":{"type":{"const":"Feature"},"geometry":{"type":"object","required":["type","coordinates"],"properties":{"type":{"const":"Point"},"coordinates":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2,"description":"[longitude, latitude], WGS 84"}}},"properties":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"publicId":{"type":"string"},"slug":{"type":"string"},"nameBn":{"type":"string"},"nameEn":{"type":["string","null"]},"otherNames":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"string"}},"traditionSlugs":{"type":"array","items":{"type":"string"}},"birthYear":{"type":["integer","null"]},"deathYear":{"type":["integer","null"]},"livingStatus":{"type":"string","enum":["living","deceased","unknown"]},"placeNameBn":{"type":["string","null"]},"placeNameEn":{"type":["string","null"]},"biographyBn":{"type":["string","null"]},"biographyEn":{"type":["string","null"]},"sourceUrl":{"type":["string","null"],"format":"uri"},"portraitUrl":{"type":["string","null"]},"locationPrecision":{"type":"string","enum":["exact","village","union","upazila","district","division","country","unknown"],"description":"How precisely the point is placed. Living people's locations are never finer than upazila without recorded consent."},"isApproximate":{"type":"boolean"},"countryCode":{"type":"string"}}}}}}}},"DivisionSummary":{"type":"object","required":["pcode","nameEn","recordingCount"],"properties":{"pcode":{"type":"string"},"nameEn":{"type":"string"},"nameBn":{"type":["string","null"]},"recordingCount":{"type":"integer","minimum":0}}},"Boundaries":{"type":"object","required":["type","features"],"properties":{"type":{"const":"FeatureCollection"},"features":{"type":"array","items":{"type":"object","properties":{"type":{"const":"Feature"},"id":{"type":"string","description":"P-code"},"geometry":{"type":"object","description":"GeoJSON Polygon or MultiPolygon"},"properties":{"type":"object","properties":{"pcode":{"type":"string"},"level":{"type":"string"},"nameEn":{"type":["string","null"]},"nameBn":{"type":["string","null"]},"nameBnMissing":{"type":"boolean"}}}}}}}}}}}