Skip to main content

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​

Metrics

GET /api/partner-portal/metrics returns your API traffic: apiCalls, responseTime, errorRate, topEndpoints, statusCodes. If there is no traffic yet, the series is empty. Business KPIs come from GET /api/partner-portal/dashboard.

  • GET /api/partner-portal/dashboard
  • GET /api/partner-portal/metrics
  • GET /api/partner-portal/activity-feed

API key management​

  • GET /api/partner-portal/api-keys — returns masked key + keyPrefix + lastUsedAt (no full secret)
  • POST /api/partner-portal/api-keys — once-reveal full key on create
  • PUT /api/partner-portal/api-keys/:keyId
  • DELETE /api/partner-portal/api-keys/:keyId
  • POST /api/partner-portal/api-keys/:keyId/rotate — once-reveal on rotate

Webhooks​

Public HTTPS only

Create, update, and test reject private and metadata URLs. Delivery accepts public HTTPS only and does not follow redirects.

  • GET /api/partner-portal/webhooks
  • POST /api/partner-portal/webhooks
  • PUT /api/partner-portal/webhooks/:webhookId
  • DELETE /api/partner-portal/webhooks/:webhookId
  • POST /api/partner-portal/webhooks/:webhookId/test
  • GET /api/partner-portal/webhooks/:webhookId/logs

Onboarding​

  • POST /api/partner-portal/onboarding/start
  • GET /api/partner-portal/onboarding/status
  • POST /api/partner-portal/onboarding/complete-step/:step

Portal sandbox​

  • GET /api/partner-portal/sandbox/status
  • POST /api/partner-portal/sandbox/reset
  • POST /api/partner-portal/sandbox/generate-data

Live when sandbox storage is provisioned: generate, reset, and status run real sandbox operations. If it is not provisioned, those portal routes still return HTTP 200 with a payload that explains unavailability. Minted sk_test_ keys are for sandbox tooling only — they cannot call /api/partner/* production routes.

Billing and usage​

Billing is partial

API call counts may be real. Bandwidth, webhook usage, the plan catalog, and settlements shown as invoices are not complete. The portal billing screen lists usage, invoices, and plan, and it is not a full commercial billing product.

  • GET /api/partner-portal/billing/usage
  • GET /api/partner-portal/billing/invoices
  • GET /api/partner-portal/billing/plan

Support​

Partner JWT. Create requires permission partner.manage_settings. List, detail, and reply require partner.view_settings. Staff triage is documented under Admin partner APIs.

  • POST /api/partner-portal/support/ticket — body subject (5–200), description (20–2000), category (1–50). Optional priority: low, medium, high, urgent.
  • GET /api/partner-portal/support/tickets — query page (default 1) and limit (default 20)
  • GET /api/partner-portal/support/tickets/:ticketId — ticket plus replies. :ticketId is a UUID.
  • POST /api/partner-portal/support/tickets/:ticketId/replies — body { "message": "..." } (1–5000 characters)
  • GET /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