# RingLogix NetSapiens CPaaS API Reference **API base:** `POST https://api.ringlogix.com/pbx/v1/` **Docs:** https://apidocs.ringlogix.com/ **Support KB:** https://support.ringlogix.com/portal/en/kb/hosted-pbx ## Authentication OAuth2 password grant: ``` POST https://api.ringlogix.com/pbx/v1/oauth2/token/ grant_type=password&client_id=&client_secret=&username=&password= ``` **Response:** `access_token`, `expires_in`, `scope` (Basic User / Office Manager / Reseller), `domain`, `refresh_token`. **Refresh:** Same endpoint with `grant_type=refresh_token&refresh_token=`. ## Key API Endpoints All endpoints use `POST ?object=&action=` with form-encoded or multipart body. ### Subscriber Management | Action | Key Params | Response | |---|---|---| | `subscriber&action=create` | `domain, user, first_name, last_name, ...` | Subscriber created | | `subscriber&action=read` | `domain, user, uid, fields` | Full subscriber info (features, presence, voicemail, call limits) | | `subscriber&action=count` | `domain, territory` | `{ total: Number }` | | `subscriber&action=list` | `domain, fields` | Public info (name, group, dir) | ### Device Management | Action | Key Params | Response | |---|---|---| | `device&action=create` | `domain, device, user, mac (12 hex), model` | Device created | | `device&action=read` | `domain, user, device` | `aor, mac, model, server, user_agent, registration_time, auth_key, transport, call_processing_rule, auth_user, auth_pass, sub_fullname` | | `device&action=count` | `domain, territory, user` | `{ total: String }` | | `device&action=update` | `device, domain, user, mac, model, check-sync` | Device updated | ### Phone Numbers | Action | Key Params | Response | |---|---|---| | `phonenumber&action=read` | `domain, phonenumber` | DID config, inbound route, caller ID | | `phonenumber&action=create` | `domain, phonenumber, user` | Adds DID to a user | ### Call Queues | Action | Key Params | Response | |---|---|---| | `callqueue&action=read` | `domain, queue` | Queue config, agent list, routing rules | | `agent&action=create` | `domain, queue, device` | Adds agent to queue | | `agent&action=count` | `domain, queue` | Agent count | ### Auto Attendants | Action | Key Params | Response | |---|---|---| | `autoattendant&action=read` | `domain, name` | Menu structure, greetings, key mappings | ### Messaging (SMS/MMS) | Action | Key Params | Response | |---|---|---| | `message&action=create` | `domain, user, type (sms/mms), from_num, destination, message, file` | Message sent | | `message&action=read` | `domain, user, session_id, start, limit` | Message history | ### Call Records (CDR) | Action | Key Params | |---|---| | `cdr&action=read` | `domain, user, start_timestamp, end_timestamp, limit` | ## PBX Feature Catalog Features that can be enabled per extension/subscriber or per domain: **Call management:** Call Forwarding (Always/Busy/No Answer/Not Reachable/Find Me Follow Me), Call Transfer (Attended/Blind/Intercom), Call Parking (Dynamic/Static), Call Pickup (Any User/Department/Entire PBX), Call Waiting, Call Return, Three-Way Calling, Do Not Disturb **Recording & Monitoring:** Always recording, Manual, Via Device, Via Portal; Barge, Listen, Whisper **Caller ID:** Inbound & Outbound with Name; Anonymous Call Rejection, Selective Call Rejection, Whitelist, Blacklist **Voicemail:** Copy to extensions, Email notification (with/without attachment), Operator breakout, Web/Mobile/Web App view, Transcription (VoiceBase) **Device:** BLF on device/mobile/web, Presence, MWI, Auto Provisioning (multi-vendor), Bulk Import, Remote Reboot **Attendant Console:** Answer/transfer, Extension presence, Company contacts, Visual park/retrieve, Call queue view **System:** Auto Attendants (visual designer, record from phone, star codes), Dial by Name, Hunt/Ring Groups, Call Queues (multi-routing, skill-based), Day/Night Mode, Time of Day Routes, CRM Integration (TenFold, NAVA, custom HTTP URL post), Fraud Detection ## Reseller-level vs Customer-level | Scope | Can see/manage | |---|---| | **Reseller** | All domains under your reseller account | | **Office Manager** | Single domain's subscribers, devices, queues | | **Basic User** | Own subscriber data only | For a customer portal, the backend should authenticate as **Reseller** scope, then filter per customer's domain.