Category-based sounds API with drag-and-drop ordering, audio uploads, admin dashboard, and x-api-key protected endpoints.
GET /api/v1/sounds?categorySlug=fire
Header: x-api-key: YOUR_API_KEY
{
"success": true,
"data": {
"sounds": [
{
"id": "66a1f2c3e4b5a6d7c8e9f012",
"name": "Campfire Crackling",
"url": "https://api.stressrelief2.com/uploads/sounds/fire/campfire.mp3",
"fileName": "fire/campfire.mp3",
"order": 1,
"status": "Active",
"categoryId": "66a1f2c3e4b5a6d7c8e9f000",
"category": { "id": "66a1f2c3e4b5a6d7c8e9f000", "name": "Fire", "slug": "fire" }
}
]
},
"meta": { "content": "Stress Relief App 2", "app": "Stress Relief App 2" }
}Categories
Ordered
Audio API
Secure
Deliver categorized ambient sounds with ordered playback lists to your mobile and web apps.
All public API endpoints are protected with x-api-key authentication for secure access.
Full control over categories and sounds with drag-and-drop ordering and status management.
All endpoints require the x-api-key header
/api/v1/categories/api/v1/categories/:id/api/v1/sounds/api/v1/sounds/:id/api/v1/breathing-sounds/api/v1/breathing-sounds/inhale/api/v1/breathing-sounds/exhale/api/v1/breathing-sounds/:idBreathing sounds live in their own collection. Each sound has a type of inhale or exhale. Fetch the Inhale and Exhale datasets independently, or all breathing sounds together. All endpoints require the x-api-key header and return only Active sounds ordered by order.
/api/v1/breathing-sounds?type=inhale|exhale & ?search=All active breathing sounds. Optional type and search filters.
/api/v1/breathing-sounds/inhale?search=Inhale dataset only. Response includes a top-level "type": "inhale".
/api/v1/breathing-sounds/exhale?search=Exhale dataset only. Response includes a top-level "type": "exhale".
/api/v1/breathing-sounds/:idSingle active breathing sound by id.
| Param | Applies to | Description |
|---|---|---|
| type | /breathing-sounds | inhale | exhale |
| search | list endpoints | Match name or fileName |
data.type — only on the inhale / exhale endpointsdata.sounds[] — id, name, url, fileName, fileSize, mimeType, duration, order, status, type, createdAt, updatedAtmeta — content metadata objectExample cURL Request — Inhale
curl -X GET "https://api.stressrelief2.com/api/v1/breathing-sounds/inhale" \ -H "x-api-key: YOUR_API_KEY" \ -H "Accept: application/json"
Example JSON Response
{
"success": true,
"data": {
"type": "inhale",
"sounds": [
{
"id": "66a1f2c3e4b5a6d7c8e9f012",
"name": "Deep Inhale",
"url": "https://api.stressrelief2.com/uploads/sounds/breathing/inhale/4f3c-deep-inhale.mp3",
"fileName": "breathing/inhale/4f3c-deep-inhale.mp3",
"fileSize": 524288,
"mimeType": "audio/mpeg",
"duration": 6,
"order": 1,
"status": "Active",
"type": "inhale",
"createdAt": "2026-06-25T07:30:00.000Z",
"updatedAt": "2026-06-25T07:30:00.000Z"
}
]
},
"meta": { "content": "Stress Relief App 2", "app": "Stress Relief App 2" }
}Quick start guide for integrating the Sounds API
https://api.stressrelief2.com/api/v1Include your API key in every request header:
x-api-key: YOUR_API_KEYFast Response
Secure
REST API
Example cURL Request
curl -X GET "https://api.stressrelief2.com/api/v1/sounds?categorySlug=meditation" \ -H "x-api-key: YOUR_API_KEY" \ -H "Accept: application/json"
Example JSON Response
{
"success": true,
"data": {
"sounds": [
{
"id": "66a1f2c3e4b5a6d7c8e9f012",
"name": "Gentle Rain",
"url": "https://api.stressrelief2.com/uploads/sounds/meditation/gentle-rain.mp3",
"fileName": "meditation/gentle-rain.mp3",
"fileSize": 2456789,
"mimeType": "audio/mpeg",
"order": 1,
"status": "Active",
"categoryId": "66a1f2c3e4b5a6d7c8e9f000",
"category": {
"id": "66a1f2c3e4b5a6d7c8e9f000",
"name": "Meditation",
"slug": "meditation"
},
"createdAt": "2026-06-18T10:30:00.000Z",
"updatedAt": "2026-06-18T10:30:00.000Z"
}
]
},
"meta": { "content": "Stress Relief App 2", "app": "Stress Relief App 2" }
}