API Documentation

Captivux REST API

JSON API to drive captive portals, RADIUS and CRM. Base:https://api.captivux.com/api/radius

Authentication

Admin endpoints require a token (obtained via /login/), passed in the header:

curl -X POST https://api.captivux.com/api/radius/login/ \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"••••••"}'
# → { "success": true, "token": "<40-char-token>", "tenants": [...] }

curl https://api.captivux.com/api/radius/stats/?tenant=demo \
  -H "Authorization: Token <40-char-token>"

Public endpoints (captive portal)

POST
/login/

Authenticates an administrator and returns a token.

GET
/tenant-profile/?tenant=<slug>

Captive portal branding (colors, logo, methods).

POST
/auth/

Registers a guest from the captive portal.

POST
/sms/send/

Sends an OTP code by SMS.

POST
/sms/verify/

Verifies the OTP code and authenticates the guest.

POST
/contact/

Submits a contact / demo request.

Admin endpoints (token required)

GET
/stats/?tenant=<slug>

Real KPIs: guests, sessions, footfall, access, cohorts.

GET
/crm/?tenant=<slug>

List of collected contacts (CSV export in the CRM).

GET
/sessions/?tenant=<slug>

Venue RADIUS sessions (active + closed).

POST
/sessions/kick/

Force-disconnect a user (CoA).

GET
/logs/?tenant=<slug>

RADIUS event timeline (Accept/Reject/CoA).

GET
/nas/?tenant=<slug>

List of Wi-Fi access points (NAS).

POST
/nas/

Registers an access point (MAC, IP, location).

DELETE
/nas/<id>/

Deletes an access point.

GET
/tenants/

Enriched client list (KPIs + auth methods).

POST
/tenants/

Creates a new client (venue).

POST
/tenant-profile/

Updates branding / authentication methods.

Marketing integrations

Each venue can set their Facebook Pixel and Google Tag (GTM/GA4) in the CRM console. These IDs are automatically injected into the captive portal: every Wi-Fi connection becomes a retargetable audience, and traffic is redirected to the client’s site after authentication (redirect_url).