A chamada à API /categories.json retorna apenas categorias de nível superior, pelo menos no meu servidor. Consigo ler as subcategorias usando /c/<id>.json, mas não sei como descobrir esses IDs.
Para obter todas as categorias e subcategorias da API, você precisa fazer uma solicitação para /site.json. Se não se importar em examinar o código PHP/WordPress, há um exemplo de solicitação à API para obter todas as categorias aqui: wp-discourse/lib/plugin-utilities.php at main · discourse/wp-discourse · GitHub.
Excelente, obrigado!
Notei que o registro de categoria retornado não possui uma categoria pai. Se tivesse, uma lista achatada de todas as categorias a partir de /catgories.json seria, creio eu, um resultado menos surpreendente, em vez de apenas o nível raiz.
Vejo que os subs têm parent_category_id vindo de sites.json. Por que, então, categories.json contém apenas o nível raiz?
Observe que você pode agora obter todas as categorias e subcategorias de categories.json com
/categories.json?include_subcategories=true