API Reference
Authentication
All endpoints except /v1/trial/request require a Bearer token:
Authorization: Bearer AW-xxxxxxxxxxxxxxxxxxxxxxxxxxxx
| Status | Meaning |
|---|---|
| 401 | Missing, invalid, or revoked API key |
| 429 | Monthly quota exceeded |
POST /v1/trial/request
POST
/v1/trial/request
Issue a free 100-call trial key. No authentication required. No credit card.
Request body
{
"email": "you@yourapp.com"
}
email is optional but recommended — used for quota alerts and upgrade notifications.
Response 200
{
"api_key": "AW-xxxx",
"tier": "trial",
"calls": 100,
"endpoint": "POST /v1/audio/serve",
"auth": "Authorization: Bearer <your_key>"
}
GET /v1/audio/catalog
GET
/v1/audio/catalog
List all available audio tracks. Requires authentication.
Response 200
{
"count": 15,
"tracks": [
{
"id": "432hz_432hz_universal_healing",
"title": "432hz_universal_healing",
"frequency": "432",
"format": "MP3",
"size_bytes": 14401453,
"use_cases": ["healing", "grounding", "sleep", "calm", "focus"]
}
]
}
POST /v1/audio/serve
POST
/v1/audio/serve
Serve an audio file. Returns binary audio with metadata response headers. Decrements quota by 1.
Request body — provide at least one selector
{
"audio_id": "432hz_432hz_universal_healing",
"frequency": "432",
"use_case": "sleep"
}
Selection priority: audio_id > frequency + use_case > frequency > use_case
Response headers
Content-Type: audio/mpeg X-Audio-Id: 432hz_432hz_universal_healing X-Frequency-Hz: 432 X-Use-Cases: healing,grounding,sleep,calm,focus X-Quota-Status: 5/100
Errors
| Status | Detail |
|---|---|
| 400 | No selector provided in request body |
| 401 | Invalid or missing API key |
| 404 | No track matches the requested frequency / use_case |
| 429 | Monthly quota exceeded |
| 503 | No audio files present on server disk |
GET /v1/key/status
GET
/v1/key/status
Return quota and tier information for the authenticated key.
Response 200
{
"tier": "starter",
"calls_month": 47,
"calls_total": 312,
"quota": "47/1000",
"active": true,
"email": "you@yourapp.com"
}
GET /health
GET
/health
Service health check. No authentication required.
Response 200
{
"status": "ok",
"port": 8990,
"audio_tracks": 15,
"active_keys": 3,
"stripe_ready": true
}
Error format
All error responses return JSON:
{ "detail": "human-readable error message" }
Frequencies and use-cases
| Hz | Use cases |
|---|---|
| 174 | pain_relief, grounding, security |
| 285 | tissue_repair, healing |
| 396 | release_fear, grounding, guilt |
| 417 | change, clearing, trauma |
| 432 | healing, grounding, sleep, calm, focus |
| 528 | dna_repair, stress_relief, healing, love |
| 639 | relationships, connection, communication |
| 741 | awakening, toxin_release, clarity, expression |
| 852 | intuition, vagal_tone, calm, spiritual |
| 963 | pineal, clarity, transcendence, crown |
Quotas & pricing
| Tier | Calls / month | Overage | Price |
|---|---|---|---|
| trial | 100 (one-time) | 429 error | Free |
| starter | 1,000 | 429 error | $9 / mo |
| pro | 10,000 | 429 error | $29 / mo |
| unlimited | no limit | — | $79 / mo |
No surprise charges. Quota resets on the 1st of each month. Your key upgrades automatically on subscription — same key, no migration. Start with a free trial →
Stripe webhook events
AnchorScout listens at POST /webhooks/stripe for:
| Event | Action |
|---|---|
| checkout.session.completed | Issues API key, sends welcome email |
| customer.subscription.deleted | Revokes key — sets active=0 |