API Reference

Base URL: https://anchor.verityswarm.com Auth: Authorization: Bearer AW-your-key Format: JSON / binary audio

Authentication

All endpoints except /v1/trial/request require a Bearer token:

Authorization: Bearer AW-xxxxxxxxxxxxxxxxxxxxxxxxxxxx
StatusMeaning
401Missing, invalid, or revoked API key
429Monthly 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

StatusDetail
400No selector provided in request body
401Invalid or missing API key
404No track matches the requested frequency / use_case
429Monthly quota exceeded
503No 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

HzUse cases
174pain_relief, grounding, security
285tissue_repair, healing
396release_fear, grounding, guilt
417change, clearing, trauma
432healing, grounding, sleep, calm, focus
528dna_repair, stress_relief, healing, love
639relationships, connection, communication
741awakening, toxin_release, clarity, expression
852intuition, vagal_tone, calm, spiritual
963pineal, clarity, transcendence, crown

Quotas & pricing

TierCalls / monthOveragePrice
trial100 (one-time)429 errorFree
starter1,000429 error$9 / mo
pro10,000429 error$29 / mo
unlimitedno 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:

EventAction
checkout.session.completedIssues API key, sends welcome email
customer.subscription.deletedRevokes key — sets active=0