Для правильного вопроса надо знать половину ответа
Откройте консоль браузера, вкладку "Сеть" и посмотрите, что именно возвращается с сервера в ответ на ваш запрос. Судя по ошибке, кроме/вместо JSON вы возвращаете HTML.
Для правильного вопроса надо знать половину ответа
Ошибка - пустая строка после завершения PHP-блока. Всё, что не находится внутри <?php ?> выводится как есть.
Самое лучшее решение - убрать завершающую скобку ?>.
Для правильного вопроса надо знать половину ответа
Просто используйте идентификатор квеста в URL запроса, например: https://my.own.site/api/quests/:quest_id/timetable
Тогда URL будет уникальным для каждого квеста.
Для правильного вопроса надо знать половину ответа
В JSON квадратные скобки обозначают массив, а вы пытаетесь разместить в них объект. '{"foo":1}' или '[1]' или '[{"foo":1}]', в зависимости от того, что именно вам надо.
Для правильного вопроса надо знать половину ответа
Достаточно добавить одно поле - валюта, и вуаля, в вашу таблицу можно записать сколько угодно различных валют. А если правильно построить индекс, то и работа с таблицей останется быстрой.