# Service Integration API Reference (IT Pro Partner Portal) Quick-reference for all external service APIs that the portal integrates with. Each entry covers: API base URL, auth method, key endpoints relevant to the portal, and what's needed to connect. ## RingLogix CPaaS - **API base:** `https://api.ringlogix.com/pbx/v1/` - **Auth:** OAuth2 (client_id + client_secret) - **Coverage:** Subscribers, DIDs, devices, auto attendants, call queues, feature plans - **Skill references:** `sync_ringlogix.py` (sync engine already built), RingLogix API patterns in `references/ringlogix-netsapiens-api.md` - **Needed:** OAuth client_id, client_secret, reseller username + password ## SyncroMSP - **API docs:** `https://api-docs.syncromsp.com/` (Swagger, 30+ entities) - **Auth:** API key from Admin Settings → API → Generate Key - **Portal uses:** Customers, tickets, assets, invoices, contacts - **Needed:** Syncro subdomain + API key ## Cloudflare - **API docs:** `https://developers.cloudflare.com/api/` - **Auth:** API token (Create in Dashboard → My Profile → API Tokens) - **Portal uses:** Create zones, DNS records, SSL certificates, account management - **Needed:** API token with Zone:Edit + DNS:Edit permissions ## RunCloud - **API docs:** Built-in (nearly all dashboard tasks available via API) - **Auth:** API key from RunCloud dashboard - **Portal uses:** Create web apps, manage servers, SSL certificates, databases - **Needed:** RunCloud API key ## Hetzner Cloud - **API:** `https://api.hetzner.cloud/v1` - **Auth:** API token (Read & Write) - **Portal uses:** Server management (reboot, snapshot, status), provisioning - **Needed:** Cloud API token (not Robot — Robot is for dedicated servers & auctions) ## Hudu - **API:** `https://{instance}.hudu.com/api/v1/` - **Auth:** `X-API-KEY` header or `Authorization: Bearer` - **Portal uses:** READ only — pull articles, passwords, assets, procedures inline when viewing a customer or device - **Needed:** Hudu instance URL + API key (generate in Admin → API Keys → View Documentation) - **Note:** Internal KB only, not customer-facing. No write-back from portal. ## UniFi / Ubiquiti UDM Pro - **API (official):** `https://developer.ui.com/` — API keys in Settings → API Keys - **API (controller):** `https://{controller-ip}:443/api/s/default/stat/{health,device,user}` - **Portal uses:** Device status, interface monitoring, connected clients, network topology, firmware version - **Needed:** API key + UniFi controller hostname/IP ## Grandstream GDMS - **API:** GDMS Developer API (apply for access through GDMS portal) - **Auth:** API key from GDMS Developer access grant - **Portal uses:** Device provisioning, firmware management, config templates, device status - **Needed:** GDMS Developer account + API key - **Caveat:** Reportedly "cryptic" API per community SDK maintainers. Will require hands-on debugging with the actual endpoints from the GDMS account. ## Stripe - **API:** `https://api.stripe.com/v1/` - **Auth:** Secret key (sk_live_*) - **Portal uses:** Customers, subscriptions, payment methods, invoices, webhooks - **Needed:** Stripe secret key (already used — one account with metadata tags per integration) ## Xero - **API:** OAuth2 - **Portal uses:** Invoices, contacts, bank transactions, accounting sync - **Needed:** Xero OAuth2 client_id + client_secret + tenant_id ## Wasabi S3 - **API:** AWS S3-compatible (boto3 / awscli) - **Endpoint:** `https://s3.{region}.wasabisys.com` - **Portal uses:** Backup upload, restore, listing, lifecycle management - **Needed:** IAM access key + secret key (subuser, not root) - **See:** `references/wasabi-iam-setup.md` for policy template and setup procedure