API Overview
Implemented โ generated from the live FastAPI OpenAPI spec (127 endpoints as
Introduction
FastAPI backend for Azan360 live audio relay and admin APIs
Add Mosque Admin
Add Mosque Admin
Add Mosque Membership
Admin-side counterpart to POST /{mosque_id}/join โ a mosque admin or
Announce
A unit says what it is. Unauthenticated, and hands out nothing.
Announce Device
Provisioning flow D: unprovisioned device announces itself and polls
Approve
`verify` and `activate` in one transaction โ the common case (ยง5a).
Attach Push Token
Replaces `/users/me/{voip,fcm,apns}-token` โ a token belongs to *this*
Block
The abuse lever, and the only Super Admin action an install has
Cancel Invoice
Cancel Invoice
Claim
A signed-in member says a unit is theirs.
Claim Device
Provisioning flows A/B (setup code) and C (serial). Contract ยง10.
Claim Inventory Item
Superadmin completes onboarding for a unit that will never call `/claim`
Connectivity Test
Attempts HTTP GET to `health_check_url` from the API server.
Create Announcement
Create Announcement
Create Device
Create Device
Create Event
Create a new scheduled event for a mosque.
Create Inventory Item
One procurement record, entered by hand โ a unit bought outside a
Create Invite
Create Invite
Create Invoice
Create Invoice
Create Mosque
Create Mosque
Create Mosque Trigger
Same as POST /api/v1/triggers/mosque/{mosque_id} โ create a trigger for this mosque.
Create Trigger
Create Trigger
Create User
Create User
Dashboard Summary
Platform-wide summary: mosques, users, device inventory, sales,
Delete Announcement
Delete Announcement
Delete Azan Audio
Delete Azan Audio
Delete Device
Delete Device
Delete Device
Claimed devices are soft-retired (history preserved, hidden from
Delete Draft
Delete Draft
Delete Event
Delete an event by ID (mosque admin only).
Delete Me
Delete Me
Delete User
Delete User
Device Assignment History
Both axes' full history โ the drawer's Assignments tab. ยง5a-ii: binding
Device Audit History
The drawer's Audit tab โ `device_audit_log`, not `device_events`. Every
Device Event History
The drawer's Health tab โ `device_events`, AZD-58's telemetry log:
Device Events
Device Events
Device Health
Aggregated health for the panel drawer: 24 h uptime %, transition
Enroll
Idempotent on `(user, install_uid)`. Always returns a fresh secret โ
Factory Reset Device
Physically factory-reset unit needs re-pairing: drop the stale MAC/FW/
Force Claim Device
Superadmin override: mark a 'registered' (Awaiting Setup) device claimed
Forgot Password
Forgot Password
Get Admin Status
Get Admin Status
Get Azan Audio Storage
Storage used vs. the per-mosque quota โ Overview attention-needed card.
Get Broadcast Detail
Full detail for a single broadcast including all delivery metrics,
Get Broadcast Failed Recipients
Users whose FCM or APNs token was invalid during this broadcast.
Get Device
One device, with the open assignment and ownership rows beside it.
Get Device
Get Device
Get Device
Get Device
Get History
Get History
Get In Progress Broadcasts
Broadcasts currently in-flight โ status = 'in_progress'.
Get Inventory Item
Get Inventory Item
Get Invoice
Get Invoice
Get Me
Get Me
Get Me
Get Me
Get Mosque Activity
Recent-activity feed for the Overview page โ merges broadcasts, device
Get Mosque
Get Mosque
Get Mosque Audio
Get Mosque Audio
Get Mosque Broadcast Errors
Recent delivery errors for a mosque.
Get Mosque Broadcast Summary
Aggregate summary stats for a mosque.
Get My Mosques
Get My Mosques
Get Prayer Times
Get Prayer Times
Get Prayer Times By Location
Get Prayer Times By Location
Get Prayer Times Coverage
Get Prayer Times Coverage
Get Prayer Times Saved Dates
Get Prayer Times Saved Dates
Get Preferences
Get Preferences
Get Room
Get Room
Get Settings
Get Settings
Get Status
Where today's prayer times come from for the auto azan scheduler:
Get Trigger
Get Trigger
Get User
Get User
Health Detail
Health Detail
Health Simple
Health Simple
Icecast Listener Add
Icecast's `listener_add` hook โ layer 2 of ยง6.2.
Import Inventory
A factory serial batch. Every row lands `inventory_source='manifest'`
Issue Invoice
Issue Invoice
Issue Stream Token
Exchange a credential for a token bound to one subject and one mount.
Join By Code
Join By Code
Join Mosque
Join Mosque
Leave Mosque
Leave Mosque
List Announcements
List Announcements
List Announcements
Units that announced themselves and matched no manifest row.
List Azan Audio
List Azan Audio
List Devices
The registry grid. Counts come back unfiltered by lifecycle on purpose โ
List Devices
List Devices
List Devices
List Devices
List Events
List upcoming events for a mosque.
List Installs
List Installs
List Inventory
The asset screen's grid. Counts come back unfiltered by status, same
List Invoices
List Invoices
List Memberships
List Memberships
List Mosque Admins
List Mosque Admins
List Mosque Broadcasts
Paginated list of all broadcasts for a mosque with full delivery stats.
List Mosque Memberships
List Mosque Memberships
List Mosques
List Mosques
List My Devices
The caller's units, bound mosque from the open assignment row โ never
List Pending Devices
Unclaimed auto-announced devices (flow D). Visible to any mosque admin;
List Rooms
List room types for a mosque, with live status and stream URL per room.
List Triggers
List Triggers
List Users
List Users
Login
Login
Lookup User
Public pre-auth endpoint: check if an account exists without exposing profile data.
Mark Paid
Mark Paid
Played
A backgrounded confirmation the app fires after playing azaan โ not
Print Invoice
Standalone printable HTML (browser Print โ PDF). Panel fetches this with
Print Mosque Broadcasts
Standalone printable HTML (browser Print โ PDF) for the broadcast
Promote Announcement
Import an announcement into inventory, or record that it was not.
Put Prayer Times
Put Prayer Times
Read Auto Draft Settings
Read Auto Draft Settings
Read Recommended Firmware
Superadmin-set target firmware version โ any authenticated user may
Rebind
Move my unit to a mosque I already belong to. No approval, no queue โ
Rebind Targets
Mosques the **caller** โ not the device โ holds an approved membership
Regenerate Broadcast Secret
Rotate the audio-uplink secret (docs/transmitter-audio-uplink-contract.md)
Regenerate Setup Code
Reissue a fresh 24h setup code for a device stuck 'registered' because
Register Apns Token
Register or clear the raw APNs device token for direct alert push delivery (iOS).
Register Device
Manual registration (flow A/B). Response includes the one-time setup code
Register Fcm Token
Register or refresh the FCM registration token for the authenticated user (Android + iOS).
Register Voip Token
Register or refresh the iOS PushKit VOIP push token for the authenticated user.
Remove Mosque Admin
Remove Mosque Admin
Replace Device
Swap a failed unit for a replacement, in ยง7's normative order.
Report Client Connectivity
Store result of a connectivity test run on the phone (same LAN as the device).
Republish Retained
Rebuild the broker's retained config from Postgres โ AZD-43, ยง9b.
Reset Password
Reset Password
Rotate Secret
Rotate Secret
Send Command
Publish a command (contract ยง7) and await the device ack โค5 s.
Send Device Command
Publish an interactive command (contract ยง7) and await the device ack.
Send Login Code
Send Login Code
Set Default Azan Audio
Make this recording the active default for its category (fajr/regular).
Set Maintenance
Pause/resume a claimed device (e.g. mosque under renovation, unit
Signup
Signup
Start Room
Start Room
Superadmin Forgot
Step 1 of superadmin password reset: validate email hash and send OTP.
Superadmin Forgot Verify
Step 2 of superadmin password reset: verify HMAC-wrapped OTP and issue a reset token.
Superadmin Login Init
Step 1 of superadmin 2FA: validate credentials then send OTP to the account email.
Superadmin Reset Password
Step 3 of superadmin password reset: set new password using SHA-256 prehash scheme.
Superadmin Verify
Step 2 of superadmin 2FA: verify HMAC-wrapped OTP and issue access token.
Transfer Ownership
Hand a unit to a new owner. Super Admin only in V1 (ยง5a-iii).
Transition
One cell of ยง5c's matrix.
Transition Inventory
One cell of ยง4a's matrix. `allocate` / `deploy` / `return_to_stock` /
Unbind
Detach my unit from its mosque. Keeps the credential, the broker
Unblock
Unblock
Update Announcement
Update Announcement
Update Device
Update Device
Update Device
Edit name/config/identity. A config change bumps config_version and
Update Draft
Edit a draft (items replaced wholesale, totals recomputed). Used by the
Update Inventory Item
Procurement fields only โ `status` is absent from the schema entirely,
Update Me
Update Me
Update Membership
Update Membership
Update Mosque
Update Mosque
Update Preferences
Update Preferences
Update Settings
Update Settings
Update User Superadmin
Update User Superadmin
Upload Azan Audio
Upload or record an azan voice for this mosque. The new file becomes the
Upload Live Audio
Upload a live audio recording (from mic). Returns audio_file_url for use in trigger.
Verify Login Code
Verify Login Code
Verify Stream Request
Allow or refuse one listener connection. Called by Caddy per connect.
Write Auto Draft Settings
Write Auto Draft Settings
Write Recommended Firmware
Write Recommended Firmware