Base URL
https://subflow.synergylabs.cloud/api/v1
Authentication
After activate, every protected route needs both headers:
Authorization: Bearer PX-XXXX-XXXX-XXXX
X-Provxo-Site: {site_uid}
Activate itself is public (rate-limited by license and max sites). Do not expose your license key in front-end JavaScript.
Endpoints
| Method | Path | Auth | Purpose |
|---|---|---|---|
POST | /plugin/activate | None | Bind WP/site to license; returns site_uid |
GET | /plugin/settings | Bearer + site | Read branding, trial settings, packages, quotas |
PUT/POST | /plugin/settings | Bearer + site | Push settings from the plugin to Provxo |
POST | /plugin/config | Bearer + site | Same payload as settings (legacy alias) |
GET | /plugin/panels | Bearer + site | List panels + currently bound panel_id |
POST | /plugin/site-panel | Bearer + site | Bind this site to a panel_id |
GET | /plugin/stats | Bearer + site | Dashboard counters for the site |
GET | /plugin/trials | Bearer + site | Paginated trials (page, per_page) |
POST | /plugin/trials | Bearer + site | Create a trial (panel must be bound) |
GET | /plugin/trials/{id} | Bearer + site | Trial detail + credentials presentation |
POST | /plugin/trials/{id}/resend | Bearer + site | Resend credentials email / WhatsApp |
GET | /plugin/customers/{id} | Bearer + site | Customer detail |
Create a trial
Requires a bound panel. Example:
POST https://subflow.synergylabs.cloud/api/v1/plugin/trials
Authorization: Bearer PX-XXXX-XXXX-XXXX
X-Provxo-Site: 00000000-0000-0000-0000-000000000000
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com",
"phone": "+212600000000",
"device_type": "android",
"duration_hours": 24,
"connection_type": "user",
"package_id": null,
"locale": "en"
}
Create-trial fields
| Field | Notes |
|---|---|
name | Usually required |
email | Usually required |
phone | Depends on form settings |
whatsapp | Optional |
device_type | Must be in allowed_devices |
duration_hours | Hours (must match allowed durations) |
device_id | Optional / required by settings |
connection_type | user | mag | code |
mac_address | Required when connection_type = mag |
package_id | Optional Provxo package id |
locale | en | fr |
Bind panel
POST https://subflow.synergylabs.cloud/api/v1/plugin/site-panel
Authorization: Bearer PX-XXXX-XXXX-XXXX
X-Provxo-Site: {site_uid}
Content-Type: application/json
{ "panel_id": 1 }
Do not use POST /api/v1/tenants/{slug}/trials for production integrations. Prefer the authenticated plugin API above.