# RingLogix CPaaS API — Complete Object Catalog **Base URL:** `https://api.ringlogix.com/pbx/v1/` **Auth:** OAuth2 (password grant + refresh token) **Pattern:** All requests POST with `?object=X&action=Y` **Scopes:** Basic User (own data), Office Manager (domain), Reseller (all domains) ## For Customer Portal ### Customers & Users | Object | Actions | Use | |---|---|---| | subscriber | create, read, update, count, list | Customer accounts, user management | | contact | create, read, update, delete, count | Personal contact directories | | presence | list | Online/offline status per domain | ### Phones & Devices | Object | Actions | Use | |---|---|---| | device | create, read, update, delete, count | Phone provisioning, read by MAC | | devicemodel | read | List supported devices for auto-provisioning | | phonenumber | read, update, count | DID management | | MAC | create, read, update, delete, count | Provision by MAC address | ### Calls & Messaging | Object | Actions | Use | |---|---|---| | call | create (make), read, answer, disconnect, transfer, hold, unhold, record | Full call control | | callqueue | create, read, update, delete | Call center queues | | agent | create, read, update, delete, change_status | Agent provisioning | | queued | read, update | Manage queued calls | | message | create (send), read, delete | SMS/MMS | | messagesession | read, update, accept, delete | Chat conversations | | smsnumber | count, read, update | SMS-capable numbers | ### Voicemail & Recordings | Object | Actions | Use | |---|---|---| | recording | create, read, update, delete | Call recording management | | vmailnag | create, read, update, delete, count | Voicemail reminders (phone/SMS/email) | ### Meetings | Object | Actions | Use | |---|---|---| | meeting | create, read, update, delete, count, log_event | Video conferencing (SnapHD) | ### Routing & IVR | Object | Actions | Use | |---|---|---| | answerrule | create, read, update, delete, count, reorder | Call routing/forwarding | | dialplan | read | Dial plan configuration | | dialrule | create, read, update, delete, count | Dial plan rules | | audio | create, read, update, delete, count, upload, play | IVR prompts, hold music | | timeframe | create, read, update | Business hours | | timerange | create, update | Time windows within timeframes | | upload | create, upload_chunk, config | File upload staging for MMS/media | ### Billing & CDRs | Object | Actions | Use | |---|---|---| | CDR2 | read (by domain/user/group/id), count, report, update, optimize, purge | Call detail records | | cdrexport | create, read, update, delete, download | CDR export jobs | | cdrschedule | create, read, update, delete, count | Scheduled CDR exports | ### Admin & Org | Object | Actions | Use | |---|---|---| | department | create, list | Org structure | | site | list, count, read (with billing) | Physical locations | | quota | read | Domain limits | | dashboard | create, read, update, delete, count, list, toggle_favorite, toggle_visibility | Analytics dashboards | | chart | create, read, update, delete, count, list | Dashboard widgets | | subscription | create, read, delete | Webhook event subscriptions | | call_request | read, add (wake-up), delete | Wake-up call requests | ### Analytics | Object | Actions | Use | |---|---|---| | callcenterstats | read (agent_log, dnis_stats, queue_stats, user_stats), send_email_report | Call center reporting | | callqueuestats | read | Queue-level analytics | | trace | export | SIP trace export | ### Not Yet Available - RingOS API (billing data, agent commissioning) — currently unavailable, contact Success Manager for roadmap. ## OAuth2 Flow ```python # Get token import requests r = requests.post("https://api.ringlogix.com/pbx/v1/oauth2/token/", data={ "grant_type": "password", "client_id": CLIENT_ID, "client_secret": CLIENT_SECRET, "username": PBX_USER, "password": PBX_PASS }) token = r.json()["access_token"] # Use in requests headers = {"Authorization": f"Bearer {token}"} r = requests.post( "https://api.ringlogix.com/pbx/v1/?object=subscriber&action=read", headers=headers, data={"domain": "customer-domain.voipsimplicity.com", "user": "101"} ) ``` ## Data Presentation in Emails When sending structured summaries (registration lists, inventory, status reports) via email: 1. **HTML tables whenever possible** — zebra striping, green ✓ / red ✗ for status. Build manually, never via send-shonuff.py. 2. **Normalize names** — proper case (`.title()`). Never raw database casing. 3. **Simplify labels** — raw values → human-readable: "NASA Registration w/ Upgraded Photo/Video Package - $2,332.00" → "Photo/Video" 4. **Preview before sending** — user wants to format-correct before it goes to the team. 5. **Plain-text fallback:** Use consistent ASCII formatting with `|` separators and `=` borders. 6. **Summary at bottom:** Totals + "OUTSTANDING" list for action items. ## Business Email Pattern (non-Sho'Nuff) When sending from business addresses (contact@apex, info@voipsimplicity, etc.): - Clean HTML tables with alternating row colors (#fff / #f9f9f9) - Green checkmark: `` - Red X mark: `` - NO Sho'Nuff signature badge or red divider - Plain professional sign-off - SMTP via the appropriate relay (not Core's relay for Apex/SiteGround-hosted domains)