API Reference
Technical documentation for integrating with the STANDARD platform.
Public API access is currently in private beta. Contact support@iowire.com for access.
Overview
Base URL
https://standard.iowire.com/api
Authentication
All API requests require authentication via session cookie. API key authentication is also available.
Response Format
All responses are JSON with the following structure:
{
"success": true,
"data": { ... },
"error": null
}
Error responses:
{
"success": false,
"data": null,
"error": "Error message here"
}
Authentication Endpoints
POST /api/auth/login
Authenticate a user and create a session.
{
"email": "user@example.com",
"password": "password123"
}
Response:
{
"success": true,
"data": {
"user": {
"id": 1,
"email": "user@example.com",
"display_name": "Artist Name",
"role": "artist"
}
}
}
POST /api/auth/logout
End the current session.
GET /api/auth/me
Get the current authenticated user.
Song Endpoints
POST /api/songs/add
Submit a song for review.
Content-Type: multipart/form-data
title: "My Song"
artist_name: "Artist Name"
song_url: "https://open.spotify.com/track/..."
genre: "pop"
notes: "Looking for feedback on the mix"
Response:
{
"success": true,
"data": {
"song_id": 123,
"title": "My Song"
}
}
GET /api/songs
Get all songs for the authenticated user.
Query Parameters:
limit- Number of results (default: 20, max: 100)offset- Pagination offsetstatus- Filter by status (pending, reviewed)
Submission Endpoints
POST /api/submissions/create
Create a submission to a reviewer's queue.
{
"song_id": 123,
"reviewer_id": 456,
"session_id": 789,
"review_type": "standard"
}
GET /api/submissions/{id}
Get details of a specific submission.
GET /api/submissions
Get all submissions for the authenticated user.
Reviewer Endpoints
GET /api/reviewers
Get list of all active reviewers.
Query Parameters:
genre- Filter by genre specialtylive_only- Only return currently live reviewers
GET /api/reviewers/{slug}
Get reviewer details by room slug.
GET /api/reviewers/{slug}/queue
Get the current queue for a reviewer (if live).
Session Endpoints (Reviewer Only)
POST /api/sessions/create
Create a new review session.
{
"room_type": "comprehensive",
"genre_focus": "pop"
}
POST /api/sessions/{id}/live
Set a session to live status.
POST /api/sessions/{id}/end
End a live session.
Feedback Endpoints
POST /api/feedback/reviewer
Submit feedback/rating for a reviewer (as an artist).
{
"reviewer_id": 456,
"submission_id": 789,
"rating": 5,
"feedback_text": "Great, detailed feedback!"
}
POST /api/feedback/mark-viewed
Mark feedback as viewed (as a reviewer).
Upload Endpoints
POST /api/upload/audio
Upload an audio file directly.
Content-Type: multipart/form-data
file: (binary audio data)
filename: "my-song.mp3"
Supported formats: MP3, WAV, FLAC, M4A
Max file size: 50MB
Error Codes
| Code | Meaning |
|---|---|
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Authentication required |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Resource doesn't exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Server Error - Something went wrong |
Rate Limiting
API requests are rate limited:
- Standard users: 100 requests/minute
- Authenticated users: 300 requests/minute
Rate limit headers are included in responses:
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 299
X-RateLimit-Reset: 1640000000
SDKs & Libraries
Official SDKs are in development:
- JavaScript/TypeScript (npm)
- Python (pip)
Contact support@iowire.com for early access.