{"openapi":"3.1.0","info":{"title":"Lokah catalogue API","version":"0.1.0","summary":"Read-only access to the dataset catalogue.","description":"Lokah is the data platform of Kenpath Labs, a frontier AI and data company in Bengaluru. Its catalogue holds licensable datasets for training and evaluating AI, conversational speech in Indian languages and English first, each with a playable sample, a specification measured from the files and a conversation profile. No authentication. The same records are available over MCP at https://kenpathlabs.com/api/lokah/mcp and as Croissant metadata per dataset.","contact":{"name":"Kenpath Labs","email":"hello@kenpathlabs.com","url":"https://kenpathlabs.com"}},"servers":[{"url":"https://kenpathlabs.com"}],"paths":{"/api/lokah/datasets":{"get":{"operationId":"listDatasets","summary":"List and filter datasets","parameters":[{"name":"q","in":"query","required":false,"description":"Free text over title, id, domain and language.","schema":{"type":"string"}},{"name":"language","in":"query","required":false,"description":"Language name, ISO 639-3 code or BCP-47 tag: Hindi, hin, hi-IN.","schema":{"type":"string"}},{"name":"channels","in":"query","required":false,"description":"dual: one channel per speaker. mono: one mixed channel with speaker labels.","schema":{"type":"string","enum":["dual","mono"]}},{"name":"collection","in":"query","required":false,"description":"What kind of conversation.","schema":{"type":"string","enum":["call-centre","general-conversation"]}},{"name":"sample","in":"query","required":false,"description":"Only datasets with a public playable sample.","schema":{"type":"boolean"}},{"name":"transcribed","in":"query","required":false,"description":"Only datasets with time-aligned transcripts.","schema":{"type":"boolean"}},{"name":"min_hours","in":"query","required":false,"description":"Minimum volume, in hours.","schema":{"type":"number"}}],"responses":{"200":{"description":"Matching datasets, short form.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetList"}}}}}}},"/api/lokah/datasets/{slug}":{"get":{"operationId":"getDataset","summary":"One dataset's full record","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"hindi-call-centre-insurance"}],"responses":{"200":{"description":"The record. Null fields are not held; `gaps` lists them.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dataset"}}}},"404":{"description":"No dataset with that slug."}}}},"/lokah/datasets/{slug}/croissant.json":{"get":{"operationId":"getCroissant","summary":"MLCommons Croissant 1.0 metadata for a dataset","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Croissant JSON-LD.","content":{"application/ld+json":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"DatasetBrief":{"type":"object","required":["id","slug","title","language","hours","url","record"],"properties":{"id":{"type":"string","example":"LK-SP-HIN-001"},"slug":{"type":"string"},"title":{"type":"string"},"language":{"type":"string"},"bcp47":{"type":"string","example":"hi-IN"},"hours":{"type":"number"},"channels":{"type":["string","null"],"enum":["dual","mono",null]},"collection":{"type":"string","enum":["call-centre","general-conversation"]},"domain":{"type":"string"},"transcribed":{"type":"boolean"},"hasSample":{"type":"boolean"},"englishShare":{"type":["number","null"],"description":"Share of transcript words written in Latin script, measured from a sample conversation. A transcript that spells English words in the native script reads as 0."},"url":{"type":"string","format":"uri"},"record":{"type":"string","format":"uri"},"croissant":{"type":"string","format":"uri"}}},"DatasetList":{"type":"object","properties":{"count":{"type":"integer"},"totalHours":{"type":"integer"},"datasets":{"type":"array","items":{"$ref":"#/components/schemas/DatasetBrief"}}}},"Dataset":{"type":"object","description":"The full record. `sample.metrics` holds the conversation profile; `sample.metrics.turnTaking` exists for dual-channel data only.","required":["id","slug","title","language","hours","gaps"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"language":{"type":"object"},"hours":{"type":"number"},"channels":{"type":["string","null"]},"sample":{"type":["object","null"]},"gaps":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}}}}