Общее
Этот раздел API посвящён запросу данных о звуках, которые пользователь может микшировать в отдельном разделе приложения
- вызов /sounds/categories — позволяет получить список актуальных категорий звуков и их полное наполнение (с путями к файлам)
- вызов /sounds/get — получает детальную информацию по конкретному звуку
- вызов /sounds/check — быстрая проверка доступности контента для пользователя (проверка наличия доступа или подписки к платному контенту)
/categories
Описание: отправляет список категорий звуков и их идентификаторов
Полный путь к методу: https://www.s1eep.app/api/sounds/categories
Полный путь к методу: https://www.s1eep.app/api/sounds/categories
Тип запроса: POST
Требования безопасности: API-ключ
Дополнительные ожидаемые параметры:
- hash — сохранённый клиентом хеш с прошлого раза, в случае совпадения с актуальным (поле sound_categories_hash) будет пустой ответ, необязательно
Дополнительные возвращаемые параметры (в случае отсутствия или несовпадения переданного hash'а):
- sound_categories — массив данных о категориях и их наполнении, каждый элемент является словарём со следующими полями
- id — идентификатор тегов
- name — описание тега
- sort — порядковый номер категории в списке
- sounds_count — количество звуков в этой категории
- sounds — массив словарей с информацией о звуках, состоит из следующих ключей:
- id — идентификатор звука
- name — название звука
- paid — признак платности звука (требуется ли активная подписка для доступа)
- sound_category_id — ID категории, к которой принадлежит звук
- length_secs — длина звука в секундах
- image_url — адрес изображения, сопровождающего звук
- sound_hash — хеш звука для сравнение с информацией о звуке, сохранённой в локальном кеше
- sounds — массив информации о аудиофайлах, составляющих звук
- id — идентификатор аудиофайла
- sound_url — адрес аудиофайла
- sound_secs — длина аудиофайла в секундах
- sound_category_hash — хэш категории звуков (зависит от её наполнения и удаления звуков)
- deleted_sound_categories_ids — массив идентификаторов удалённых категорий звуков
- deleted_sound_ids — массив идентификаторов удалённых звуков
- sound_categories_hash — хэш всего контента, чтобы при совпадении с ранее полученным ответом (если он был) не пересохранять данные
Пример ответа в случае не совпадения хеша:
{
"_code": 200,
"_msg": "OK",
"_need_payment": false,
"_data": {
"sound_categories": [
{
"id": 5,
"name": "ASMR",
"sort": 0,
"sounds_count": 6,
"sounds": [
{
"id": 33,
"name": "Pencil",
"paid": false,
"sort": 0,
"sound_category_id": 5,
"length_secs": 50,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415415i_s_003.png",
"sound_hash": "1410313b6568fc84dbfc32939e687592",
"sounds": [
{
"id": 187,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415415writing with a pencil .mp3",
"sound_secs": 50
}
]
},
{
"id": 34,
"name": "Vinyl Crackle",
"paid": false,
"sort": 1,
"sound_category_id": 5,
"length_secs": 12,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415446i_s_008.png",
"sound_hash": "9dc237cef591ad08579c370b1781fd10",
"sounds": [
{
"id": 188,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415446vinyl crackle.mp3",
"sound_secs": 12
}
]
},
{
"id": 35,
"name": "Fur Stroking",
"paid": true,
"sort": 2,
"sound_category_id": 5,
"length_secs": 66,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415494i_s_012.png",
"sound_hash": "d4abfa56c08e5981d649aba8b58a01d1",
"sounds": [
{
"id": 189,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415494fur stroking .mp3",
"sound_secs": 66
}
]
}
],
"sound_category_hash": "3ddccdfe546be391d19a92b53093c6d2"
},
{
"id": 6,
"name": "Colored Noises",
"sort": 1,
"sounds_count": 6,
"sounds": [
{
"id": 20,
"name": "White Noise",
"paid": false,
"sort": null,
"sound_category_id": 6,
"length_secs": 10,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579412721i_s_002.png",
"sound_hash": "a40f9693e6d136788e5c75ce450b73d7",
"sounds": [
{
"id": 169,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579412722white noise.mp3",
"sound_secs": 10
}
]
},
{
"id": 22,
"name": "Pink Noise",
"paid": false,
"sort": null,
"sound_category_id": 6,
"length_secs": 10,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579414774i_s_009.png",
"sound_hash": "17d4dad68c75e6b324b9d52ae1010513",
"sounds": [
{
"id": 176,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579414774pink noise.mp3",
"sound_secs": 10
}
]
},
{
"id": 23,
"name": "Green Noise",
"paid": false,
"sort": null,
"sound_category_id": 6,
"length_secs": 10,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579414806i_s_006.png",
"sound_hash": "8a9614a8744ad662266eade30517fc53",
"sounds": [
{
"id": 177,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579414806green noise.mp3",
"sound_secs": 10
}
]
},
{
"id": 24,
"name": "Delta Waves",
"paid": false,
"sort": null,
"sound_category_id": 6,
"length_secs": 10,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579414839i_s_004.png",
"sound_hash": "d2957380d5566e1eb14f5caff8da2c00",
"sounds": [
{
"id": 178,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579414839delta waves.mp3",
"sound_secs": 10
}
]
},
{
"id": 25,
"name": "Brown Noise",
"paid": false,
"sort": null,
"sound_category_id": 6,
"length_secs": 10,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415007i_s_012.png",
"sound_hash": "4fcbb01536ea153d0bd43d80cffe1f84",
"sounds": [
{
"id": 179,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579414882brown noise.mp3",
"sound_secs": 10
}
]
}
],
"sound_category_hash": "7e0d8012f1a41832340af271f8a11a65"
},
{
"id": 7,
"name": "Nature Sounds",
"sort": 2,
"sounds_count": 7,
"sounds": [
{
"id": 36,
"name": "Whales",
"paid": false,
"sort": null,
"sound_category_id": 7,
"length_secs": 80,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415642i_s_008.png",
"sound_hash": "7b640ca068217bc60a29bf7573c4280f",
"sounds": [
{
"id": 190,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415642whales.mp3",
"sound_secs": 80
}
]
},
{
"id": 37,
"name": "Spring Birds",
"paid": false,
"sort": null,
"sound_category_id": 7,
"length_secs": 60,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415670i_s_013.png",
"sound_hash": "140babb83247a97b8bb6b9f4c41fca96",
"sounds": [
{
"id": 191,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415670spring birds.mp3",
"sound_secs": 60
}
]
},
{
"id": 38,
"name": "Space Voices",
"paid": false,
"sort": null,
"sound_category_id": 7,
"length_secs": 80,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415698i_s_007.png",
"sound_hash": "b93fec4d09493772ed40b1045edaf353",
"sounds": [
{
"id": 192,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415698space voices.mp3",
"sound_secs": 80
}
]
},
{
"id": 39,
"name": "Night Bird",
"paid": false,
"sort": null,
"sound_category_id": 7,
"length_secs": 120,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415731i_s_002.png",
"sound_hash": "b9f81cc0d235da0783b115a526f3f140",
"sounds": [
{
"id": 193,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415731night bird.mp3",
"sound_secs": 120
}
]
},
{
"id": 40,
"name": "Mysterious Owls",
"paid": false,
"sort": null,
"sound_category_id": 7,
"length_secs": 120,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415763i_s_009.png",
"sound_hash": "e5ac753fd81d1c6dd8abd1c9d66f5c22",
"sounds": [
{
"id": 194,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415763mysterious owls.mp3",
"sound_secs": 120
}
]
},
{
"id": 41,
"name": "Crickets",
"paid": false,
"sort": null,
"sound_category_id": 7,
"length_secs": null,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415793i_s_011.png",
"sound_hash": "962286e49aa2afe6d036612809faa8a2",
"sounds": [
{
"id": 198,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579480020https___test.s1eep.app_sounds_2020_01_1578485594121335__cityrocker__air-traffic-3.mp3",
"sound_secs": 42
}
]
}
],
"sound_category_hash": "8c70ab74f8d9bb8600bf2208b017fa31"
},
{
"id": 8,
"name": "Mechanical Sounds",
"sort": 3,
"sounds_count": 8,
"sounds": [
{
"id": 26,
"name": "Submarine",
"paid": false,
"sort": null,
"sound_category_id": 8,
"length_secs": 30,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415131i_s_006.png",
"sound_hash": "6dc62ed2ea58fa33339a094d6327bdf0",
"sounds": [
{
"id": 180,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415131submarine.mp3",
"sound_secs": 30
}
]
},
{
"id": 27,
"name": "Spaceship",
"paid": false,
"sort": null,
"sound_category_id": 8,
"length_secs": 32,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415159i_s_003.png",
"sound_hash": "df1603622cc0e4add5d6c77f0e0e2c40",
"sounds": [
{
"id": 181,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415159spaceship.mp3",
"sound_secs": 32
}
]
},
{
"id": 28,
"name": "Space Sonar",
"paid": false,
"sort": null,
"sound_category_id": 8,
"length_secs": 28,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415210i_s_008.png",
"sound_hash": "1d72a50902ccb07b33683bf1a12372f1",
"sounds": [
{
"id": 182,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415210space sonar.mp3",
"sound_secs": 28
}
]
},
{
"id": 29,
"name": "Keyboard Typing",
"paid": false,
"sort": null,
"sound_category_id": 8,
"length_secs": 32,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415244i_s_003.png",
"sound_hash": "2124e1eb8a737b15d8d9bd7e255e7023",
"sounds": [
{
"id": 183,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415244keyboard typing.mp3",
"sound_secs": 32
}
]
},
{
"id": 30,
"name": "Hairdryer",
"paid": false,
"sort": null,
"sound_category_id": 8,
"length_secs": 22,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415278i_s_007.png",
"sound_hash": "4f539b93c20762433550b6c7bba61681",
"sounds": [
{
"id": 184,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415278hairdryer.mp3",
"sound_secs": 22
}
]
},
{
"id": 31,
"name": "Drone Engine",
"paid": false,
"sort": null,
"sound_category_id": 8,
"length_secs": 28,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415307i_s_008.png",
"sound_hash": "83ba31dca62ade96f1cfbd686492ffbd",
"sounds": [
{
"id": 185,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415307drone engine.mp3",
"sound_secs": 28
}
]
},
{
"id": 32,
"name": "Dishwasher",
"paid": false,
"sort": null,
"sound_category_id": 8,
"length_secs": 32,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1579415341i_s_002.png",
"sound_hash": "aaa641ad4a024e8d24cc30b593069189",
"sounds": [
{
"id": 186,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1579415341dishwasher.mp3",
"sound_secs": 32
}
]
}
],
"sound_category_hash": "e72a41b6410d2beb807987722a179740"
},
{
"id": 9,
"name": "Relax Melodies",
"sort": 4,
"sounds_count": 1,
"sounds": [],
"sound_category_hash": "df057541ddb07d45b2b473a39bdf448a"
},
{
"id": 1,
"name": "Air",
"sort": 5,
"sounds_count": 7,
"sounds": [
{
"id": 5,
"name": "Duster",
"paid": false,
"sort": null,
"sound_category_id": 1,
"length_secs": 15,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1578486099Subtract2.png",
"sound_hash": "3130f30452081c836aacabb2ea11e9cb",
"sounds": [
{
"id": 144,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1578486099232920__bmusic92__duster.mp3",
"sound_secs": 15
}
]
},
{
"id": 6,
"name": "Whiff",
"paid": false,
"sort": null,
"sound_category_id": 1,
"length_secs": 4,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1578486193Subtract2.png",
"sound_hash": "9d909c780b7f612c3a7f752985b1f95f",
"sounds": [
{
"id": 145,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1578486193182693__kingsrow__whiff.mp3",
"sound_secs": 4
}
]
},
{
"id": 4,
"name": "Windstorm",
"paid": false,
"sort": 0,
"sound_category_id": 1,
"length_secs": 60,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1578485708Subtract2.png",
"sound_hash": "90e2b12a747acc3e0b6962ce0e4558c2",
"sounds": [
{
"id": 143,
"sound_url": "https://test.s1eep.app/sounds/2020/01/157848570879934__nickleus__ams-windstorm-20090917.mp3",
"sound_secs": 60
}
]
},
{
"id": 3,
"name": "Air Traffic",
"paid": false,
"sort": 1,
"sound_category_id": 1,
"length_secs": 42,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1578485594Subtract2.png",
"sound_hash": "99d29673591ee0f957e8f78d64ca5848",
"sounds": [
{
"id": 142,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1578485594121335__cityrocker__air-traffic-3.mp3",
"sound_secs": 42
}
]
},
{
"id": 1,
"name": "Cold & wet",
"paid": false,
"sort": 3,
"sound_category_id": 1,
"length_secs": 2,
"image_url": "https://test.s1eep.app/sound_images/2020/01/1578485370Subtract.png",
"sound_hash": "ea00a5627af6d4b86651043801056a7f",
"sounds": [
{
"id": 140,
"sound_url": "https://test.s1eep.app/sounds/2020/01/1578485119379470__vandale__wind3.mp3",
"sound_secs": 2
}
]
}
],
"sound_category_hash": "1ac7844a472837dfabf008c4a8536908"
}
],
"deleted_sound_categories_ids": [
2,
4
],
"deleted_sound_ids": [
2,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
21
],
"sound_categories_hash": "715400a43694a0fc1e5c0e14a0c28b44"
}
}Пример ответа в случае совпадения хеша:
{
"_code": 200,
"_msg": "OK",
"_need_payment": false,
"_data": "{}"
}/get
Описание: предоставляет информацию о конкретном звуке
Полный путь к методу: https://www.s1eep.app/api/sounds/get
Тип запроса: POST
Требования безопасности: API-ключ + пользовательский токен (опционально)
Дополнительные ожидаемые параметры:
- _user_token — пользовательский токен при наличии, чтобы получить доступ к платному контенту, необязательно
- sound_id — идентификатор звука
- hash — сохранённый клиентом хеш с прошлого раза, в случае совпадения с актуальным (поле meditation_hash в ответе) будет пустой ответ, необязательно
Дополнительные возвращаемые параметры (в случае отсутствия или несовпадения переданного hash'а):
- sound — словарь данных о запрошенном звуке
- id — идентификатор звука, который нужно использовать при запросе детальных данных о нём
- name — название звука
- paid — флаг true/false, индикатор платного контента
- sort — порядковый номер контента в списке
- sound_category_id — идентификатор категории звука
- length_secs — длина звука в секундах
- image_url — полный URL для картинки, которая представляет звук
- sounds — массив словарей с детальной информацией о звуковых файлах, состоящих из следующих ключей:
- id — идентификатор звука
- sound_url — полный URL к файлу со звуком
- sound_secs — длина звука в секундах
- sound_hash — хэш данных о звуке, чтобы при совпадении с ранее полученным ответом (если он был) не перезагружать данные
Пример ответа в случае несовпадения хеша:
{
"_code": 200,
"_msg": "OK",
"_need_payment": false,
"_data": {
"sound": {
"id": 11,
"name": "Water",
"paid": false,
"sort": 0,
"sound_category_id": 2,
"image_url": "https://www.s1eep.app/sound_images/2020/01/1578487365SSS.png",
"sounds": [
{
"id": 150,
"sound_url": "https://www.s1eep.app/sounds/2020/01/1578487365165669__dn-kp__dn-kp-water-01.mp3",
"sound_secs": 13
},
{
"id": 151,
"sound_url": "https://www.s1eep.app/sounds/2020/01/1578538127367689__funwithsound__water-pour-into-sink.mp3",
"sound_secs": 6
}
]
},
"sound_hash": "970b77f5bba4051835312cd9b153b670"
}
}Пример ответа в случае совпадения хеша:
{
"_code": 200,
"_msg": "OK",
"_need_payment": false,
"_data": "{}"
}/check
Описание: быстрая проверка доступности контента для пользователя (проверка наличия доступа или подписки к платному контенту)
Полный путь к методу: https://www.s1eep.app/api/sounds/check
Тип запроса: POST
Требования безопасности: API-ключ + пользовательский токен (опционально)
Дополнительные ожидаемые параметры:
- _user_token — пользовательский токен при наличии, чтобы проверить доступ к платному контенту для конкретного пользователя приложения, необязательно
- sound_id — идентификатор медитации
Дополнительные возвращаемые параметры:
- нет
Пример ответа в случае возможности доступа:
{
"_code": 200,
"_msg": "OK",
"_need_payment": false,
"_data": "{}"
}Пример ответа в случае невозможности доступа:
{
"_code": 403,
"_msg": "Active subscription required",
"_need_payment": true,
"_data": "{}"
}