Для разработчиков

AudioRanobe API

Открытое read-only API каталога: тайтлы, главы с аудио, чтецы, авторы, подборки и комментарии. Без ключей и регистрации — берите данные для своих приложений, ботов и плееров.

Базовый адрес

https://back.audioranobe.com/api

curl

curl "https://back.audioranobe.com/api/titles?sort=rating&per_page=5"

JavaScript

const res = await fetch('https://back.audioranobe.com/api/titles/random');
const { slug } = await res.json();
const title = await fetch(`https://back.audioranobe.com/api/titles/${slug}`).then((r) => r.json());

Основы

Формат

JSON в UTF-8. Только GET, тело запроса не нужно.

Авторизация

Не нужна: ключей и токенов нет, все эндпоинты публичные.

CORS

Access-Control-Allow-Origin: * — вызывайте прямо из браузера с любого домена.

Ошибки

Тело {"error": "текст"} и соответствующий HTTP-статус (400, 404…)

Пагинация

Списки принимают page (с 1) и per_page (по умолчанию 24, максимум 100) и возвращают:

{
  "items": [ /* … */ ],
  "page": 1,
  "per_page": 24,
  "total": 312
}

Сервис

GET/home

Содержимое главной: объявления, новые тайтлы (new_titles), баннеры (banners) и каталог (catalog).

Попробовать
https://back.audioranobe.com/api/home

Тайтлы

GET/titles

Каталог.

Попробовать
qПоиск по названию, альтернативным названиям и имени автора.
genreСлаг тега, например fantasy. Можно перечислить через запятую — тогда тайтл должен иметь все теги.
authorИмя автора целиком, без учёта регистра.
year_fromГод выпуска от, целое число.
year_toГод выпуска до, целое число.
release_statusongoing | completed | abandoned | frozen.
countrychina | korea | japan | other.
min_ratingМинимальная средняя оценка, 0–10.
finished1 — только завершённые и полностью озвученные.
hide_ai1 — скрыть тайтлы с синтезированной озвучкой.
sortpopular (по умолчанию) | rating | new | updated | az | chapters.
orderdesc (по умолчанию) | asc — обратный порядок сортировки.
pageНомер страницы, с 1. По умолчанию 1.
per_pageРазмер страницы. По умолчанию 24, максимум 100.
https://back.audioranobe.com/api/titles
GET/titles/{slug}

Карточка тайтла целиком: описание, теги, чтецы, тома с главами, похожие тайтлы.

Вместо слага можно передать числовой id — это поддерживается намеренно.

Попробовать
{slug}Часть адреса — slug или числовой id.
https://back.audioranobe.com/api/titles/1
GET/titles/random

Слаг случайного тайтла.

Попробовать
https://back.audioranobe.com/api/titles/random
GET/search/suggest

Быстрые подсказки для строки поиска: тайтлы, чтецы, авторы и подборки.

Кроме локальных результатов может вернуть external — книги источника, для которых можно заказать озвучку.

Попробовать
qЗапрос, минимум 2 символа. Короче — пустой результат.
https://back.audioranobe.com/api/search/suggest
GET/genres

Список тегов со счётчиком тайтлов.

Попробовать
qПоиск по названию.
pageНомер страницы, с 1. По умолчанию 1.
per_pageРазмер страницы. По умолчанию 24, максимум 2000 — весь список за один запрос.
https://back.audioranobe.com/api/genres

Главы и файлы

GET/chapters/{id}

Данные для воспроизведения одной главы: audio_url, длительность, том, соседние главы.

404, пока глава не одобрена и её аудио не готово. Для тайтлов 18+ и с чувствительными тегами — 401: такие главы слушают только на сайте после входа.

Попробовать
{id}Часть адреса — slug или числовой id.
https://back.audioranobe.com/api/chapters/1
GET/download/chapters/{id}

Сам аудиофайл (Opus) с заголовком Content-Disposition. Обычная ссылка для скачивания, авторизация не требуется.

Попробовать
{id}Часть адреса — slug или числовой id.
https://back.audioranobe.com/api/download/chapters/1

Чтецы и авторы

GET/narrators

Список чтецов.

Попробовать
qПоиск по имени.
pageНомер страницы, с 1. По умолчанию 1.
per_pageРазмер страницы. По умолчанию 24, максимум 100.
https://back.audioranobe.com/api/narrators
GET/narrators/{slug}

Страница чтеца: описание, ссылки, тайтлы.

Вместо слага принимается числовой id.

Попробовать
{slug}Часть адреса — slug или числовой id.
https://back.audioranobe.com/api/narrators/1
GET/narrators/{id}/posts

Посты чтеца.

Попробовать
{id}Часть адреса — slug или числовой id.
pageНомер страницы, с 1. По умолчанию 1.
per_pageРазмер страницы. По умолчанию 24, максимум 100.
https://back.audioranobe.com/api/narrators/1/posts
GET/posts/{id}

Один пост чтеца.

Попробовать
{id}Часть адреса — slug или числовой id.
https://back.audioranobe.com/api/posts/1
GET/authors

Список авторов.

Попробовать
qПоиск по имени.
pageНомер страницы, с 1. По умолчанию 1.
per_pageРазмер страницы. По умолчанию 24, максимум 100.
https://back.audioranobe.com/api/authors
GET/authors/{id}

Страница автора и его тайтлы.

Вместо id принимается слаг.

Попробовать
{id}Часть адреса — slug или числовой id.
https://back.audioranobe.com/api/authors/1

Подборки, объявления, комментарии

GET/collections

Публичные подборки пользователей.

Попробовать
qПоиск по названию.
userИмя пользователя — вернёт только его публичные подборки.
sortnew (по умолчанию) | popular.
pageНомер страницы, с 1. По умолчанию 1.
per_pageРазмер страницы. По умолчанию 24, максимум 100.
https://back.audioranobe.com/api/collections
GET/collections/{id}

Одна подборка с её тайтлами.

Попробовать
{id}Часть адреса — slug или числовой id.
https://back.audioranobe.com/api/collections/1
GET/announcements

Опубликованные новости.

Попробовать
pageНомер страницы, с 1. По умолчанию 1.
per_pageРазмер страницы. По умолчанию 24, максимум 100.
https://back.audioranobe.com/api/announcements
GET/announcements/{slug}

Одна новость.

Попробовать
{slug}Часть адреса — slug или числовой id.
https://back.audioranobe.com/api/announcements/1
GET/comments

Комментарии к объекту, ответы вложены в родителя.

Попробовать
target_typeОбязательный: title | narrator | post | announcement.
target_idОбязательный: id объекта.
sortnew (по умолчанию) | old | top.
pageНомер страницы, с 1. По умолчанию 1.
per_pageРазмер страницы. По умолчанию 24, максимум 100.
https://back.audioranobe.com/api/comments?target_type=title&target_id=1

Профили

GET/users/{id}

Публичный профиль. Вместо id во всех адресах профиля принимается имя пользователя.

Попробовать
{id}Часть адреса — slug или числовой id.
https://back.audioranobe.com/api/users/1
GET/users/{id}/library

Библиотека пользователя.

Попробовать
{id}Часть адреса — slug или числовой id.
statusplanning | in_progress | completed | dropped.
pageНомер страницы, с 1. По умолчанию 1.
per_pageРазмер страницы. По умолчанию 24, максимум 100.
https://back.audioranobe.com/api/users/1/library
GET/users/{id}/favorites

Избранное пользователя.

Попробовать
{id}Часть адреса — slug или числовой id.
pageНомер страницы, с 1. По умолчанию 1.
per_pageРазмер страницы. По умолчанию 24, максимум 100.
https://back.audioranobe.com/api/users/1/favorites
GET/users/{id}/comments

Комментарии пользователя.

Попробовать
{id}Часть адреса — slug или числовой id.
pageНомер страницы, с 1. По умолчанию 1.
per_pageРазмер страницы. По умолчанию 24, максимум 100.
https://back.audioranobe.com/api/users/1/comments