Partner Portal APIs
Portal endpoints for authenticated partner users.
Base URL
https://service-gateway.loscenotes.com/api/partner-portal
Authentication
Authorization: Bearer <jwt>
Endpoint groups
Dashboard
GET /api/partner-portal/metrics returns API timeseries from partner_api_logs (apiCalls, responseTime, errorRate, topEndpoints, statusCodes). Public Partner API traffic is ingested via PartnerAuditInterceptor when partnerContext.partnerId is present. The portal dashboard renders an API metrics section for that contract; empty logs → honest empty charts (no fake zeros). Primary business KPIs still come from the hybrid dashboard (GET /dashboard), not this timeseries.
GET /api/partner-portal/dashboardGET /api/partner-portal/metricsGET /api/partner-portal/activity-feed
API key management
GET /api/partner-portal/api-keys— returns maskedkey+keyPrefix+lastUsedAt(no full secret)POST /api/partner-portal/api-keys— once-reveal full key on createPUT /api/partner-portal/api-keys/:keyIdDELETE /api/partner-portal/api-keys/:keyIdPOST /api/partner-portal/api-keys/:keyId/rotate— once-reveal on rotate
Webhooks
Portal webhook create/update/test reject private/metadata URLs. Outbound delivery uses maxRedirects: 0 and pinned DNS (anti rebinding).
GET /api/partner-portal/webhooksPOST /api/partner-portal/webhooksPUT /api/partner-portal/webhooks/:webhookIdDELETE /api/partner-portal/webhooks/:webhookIdPOST /api/partner-portal/webhooks/:webhookId/testGET /api/partner-portal/webhooks/:webhookId/logs
Onboarding
POST /api/partner-portal/onboarding/startGET /api/partner-portal/onboarding/statusPOST /api/partner-portal/onboarding/complete-step/:step
Portal sandbox
GET /api/partner-portal/sandbox/statusPOST /api/partner-portal/sandbox/resetPOST /api/partner-portal/sandbox/generate-data
Live when schema
partners_sandboxexists: generate/reset/status return real sandbox operations. Soft-fail (success payload explaining unavailability) only if the schema is missing on that environment. Mintedsk_test_keys are for sandbox tooling only — they cannot call/api/partner/*production routes.
Billing and usage
API call counts may be real; bandwidth, webhook usage metrics, plan catalog, and settlements-as-invoices remain incomplete. Portal billing UI is live (/partner/billing) for usage / invoices / plan — still not a full commercial billing product.
GET /api/partner-portal/billing/usageGET /api/partner-portal/billing/invoicesGET /api/partner-portal/billing/plan
Support
Create/list persist to partner_support_tickets (migration v23.0.67), scoped to the authenticated partner. Portal UI: /partner/support. Staff Admin triage UI is not shipped yet — partners can still create and list their own tickets.
POST /api/partner-portal/support/ticketGET /api/partner-portal/support/ticketsGET /api/partner-portal/quickstart
Notes
- these endpoints are operational/portal-focused, not public partner API key endpoints
- data isolation is enforced through the authenticated partner context
- for organization-level config, users, reports, reservations and sandbox tooling, see Management features