API Endpoints
Complete reference for all available Bassode API endpoints.
https://api.bassode.com
Speakers
/api/speakers
Retrieve a list of speakers with optional filtering and pagination.
Required Scope
speakers:read
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page |
integer | Page number (default: 1) |
pageSize |
integer | Items per page (default: 50, max: 100) |
brand |
string | Filter by brand name |
type |
string | Filter by speaker type (Bookshelf, Floor-standing, etc.) |
minPrice |
decimal | Minimum price filter |
maxPrice |
decimal | Maximum price filter |
Example Request
GET /api/speakers?brand=Klipsch&type=Bookshelf&page=1&pageSize=20
Example Response
{
"speakers": [
{
"id": "1",
"brand": "Klipsch",
"model": "RP-600M II",
"type": "Bookshelf",
"price": 549.99,
"frequencyResponse": "45Hz - 25kHz",
"sensitivity": "96dB",
"impedance": "8 Ohms"
}
],
"pagination": {
"page": 1,
"pageSize": 20,
"totalCount": 45,
"totalPages": 3
}
}
/api/speakers/{id}
Get detailed information about a specific speaker.
Required Scope
speakers:read
Path Parameters
id |
string | The unique speaker identifier |
Example Request
GET /api/speakers/123
Amplifiers
/api/amplifiers
Retrieve a list of amplifiers with optional filtering and pagination.
Required Scope
amplifiers:read
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page |
integer | Page number (default: 1) |
pageSize |
integer | Items per page (default: 50, max: 100) |
brand |
string | Filter by brand name |
minPower |
integer | Minimum power output (watts) |
maxPower |
integer | Maximum power output (watts) |
/api/amplifiers/{id}
Get detailed information about a specific amplifier.
Required Scope
amplifiers:read
DACs (Digital-to-Analog Converters)
/api/dacs
Retrieve a list of DACs with optional filtering and pagination.
Required Scope
dacs:read
Query Parameters
Similar to speakers and amplifiers endpoints (page, pageSize, brand, price filters)
/api/dacs/{id}
Get detailed information about a specific DAC.
Required Scope
dacs:read
Recommendations
/api/recommendations
Get intelligent equipment recommendations based on user preferences and budget.
Required Scope
recommendations:read
Request Body
{
"budget": 1500,
"preferences": {
"roomSize": "medium",
"musicGenres": ["rock", "jazz"],
"priorities": ["soundQuality", "value"]
},
"includeCategories": ["speakers", "amplifiers", "dacs"]
}
Example Response
{
"recommendations": {
"speakers": {
"id": "123",
"brand": "Klipsch",
"model": "RP-600M II",
"price": 549.99,
"matchScore": 0.95,
"reasoning": "Excellent for rock and jazz with high sensitivity"
},
"amplifier": {
"id": "456",
"brand": "Cambridge Audio",
"model": "CXA61",
"price": 699.99,
"matchScore": 0.92
}
},
"totalCost": 1249.98,
"budgetRemaining": 250.02
}
Search
/api/search
Search across all equipment categories.
Required Scope
search:read or any category-specific read scope
Query Parameters
q |
string | Search query |
categories |
string | Comma-separated categories (speakers,amplifiers,dacs) |
page |
integer | Page number |
Example Request
GET /api/search?q=Klipsch+reference&categories=speakers
Health Check
/health
Check API service health and database connectivity.
Required Scope
None - publicly accessible
Example Response
{
"status": "Healthy",
"checks": {
"database": "Healthy"
},
"timestamp": "2024-01-15T10:30:00Z"
}
HTTP Status Codes
| Status Code | Meaning | Description |
|---|---|---|
200 |
OK | Request succeeded |
201 |
Created | Resource created successfully |
400 |
Bad Request | Invalid request parameters |
401 |
Unauthorized | Missing or invalid authentication |
403 |
Forbidden | Insufficient permissions (scope) |
404 |
Not Found | Resource not found |
429 |
Too Many Requests | Rate limit exceeded |
500 |
Internal Server Error | Server error |
Pagination
All list endpoints support pagination with the following parameters:
page- Page number starting from 1pageSize- Number of items per page (default: 50, max: 100)
Paginated responses include metadata:
{
"data": [ /* items */ ],
"pagination": {
"page": 1,
"pageSize": 50,
"totalCount": 234,
"totalPages": 5,
"hasNextPage": true,
"hasPreviousPage": false
}
}