Я предполагаю, что вы создали темы через API и установили параметр external_id.
Не уверен, поможет ли это, но в Discourse есть маршрут t/external_id/:external_id. Похоже, он возвращает только данные в формате JSON:
Так что вы можете получить JSON-данные темы, например, по адресу:
/t/external_id/2023-4.json
Это вернёт содержимое и id темы в Discourse. Однако, думаю, это не решит вашу проблему.
Прямо сейчас тестирую: данные в формате JSON возвращаются, но Discourse автоматически перенаправляет на фактический URL темы в Discourse при выполнении запроса. Например, GET-запрос к http://localhost:4200/t/external_id/1.json перенаправляет меня на http://localhost:4200/t/testing-the-external-id-param/206.json