Skip to content

REST API

The Soxom dashboard is backed by an HTTP API rooted at /api/v1. This page documents those endpoints for reference — for understanding how the system fits together, for debugging, and for support conversations.

The API base URL depends on your deployment — substitute your Soxom API base URL for https://api.example.com in the snippets below.

All endpoints authenticate via the user-session cookie set by the WorkOS sign-in flow.

  • All paths live under /api/v1.
  • Requests and responses are JSON.
  • Standard HTTP status codes: 200/201 on success, 400 for malformed input, 401 for missing auth, 403 for unauthorized, 404 for missing resources, 422 for validation errors, 5xx for server errors.
  • Resource paths follow REST conventions (GET to read, POST to create or trigger, PATCH to update, DELETE to remove).
MethodPathPurpose
GET/api/v1/auth/meCurrent user and active Organization context (cookie auth).
GET/api/v1/organizationsList Organizations the current user belongs to.
POST/api/v1/organizations/switchSwitch the active Organization for the current session.
GET/api/v1/membersList members of the active Organization.
MethodPathPurpose
GET/api/v1/projectsList Projects in the active Organization.
POST/api/v1/projectsCreate a Project and its config repository.
GET/api/v1/projects/:idGet a single Project.
PATCH/api/v1/projects/:idUpdate a Project.
DELETE/api/v1/projects/:idDelete a Project.
MethodPathPurpose
GET/api/v1/projects/:projectId/sdk-targetsList SDK Targets for a Project.
POST/api/v1/projects/:projectId/sdk-targetsCreate an SDK Target. Provisions a Staging Repository and a Production Repository.
GET/api/v1/projects/:projectId/sdk-targets/:idGet a single SDK Target.
PATCH/api/v1/projects/:projectId/sdk-targets/:idUpdate an SDK Target.
DELETE/api/v1/projects/:projectId/sdk-targets/:idDelete an SDK Target.
MethodPathPurpose
GET/api/v1/projects/:projectId/sdk-targets/:id/sdk-buildsList SDK builds.
POST/api/v1/projects/:projectId/sdk-targets/:id/sdk-builds/triggerManually trigger a new build.
POST/api/v1/projects/:projectId/sdk-targets/:id/sdk-builds/:buildId/retryRetry a failed build.
MethodPathPurpose
GET/api/v1/projects/:projectId/sdk-targets/:id/staging-releasesList staging releases.
POST/api/v1/projects/:projectId/sdk-targets/:id/staging-releasesCreate a staging release.
GET/api/v1/projects/:projectId/sdk-targets/:id/releasesList production releases.
POST/api/v1/projects/:projectId/sdk-targets/:id/releasesCreate a production release and publish it.
MethodPathPurpose
GET/api/v1/github/installationsList GitHub App installations connected to the Organization.
POST/api/v1/github/installations/installStart the GitHub App install flow.
MethodPathPurpose
GET/api/v1/membersList members of the active Organization.
MethodPathPurpose
GET/api/v1/billing/planCurrent plan and usage for the active Organization.
POST/api/v1/billing/checkoutStart a Stripe Checkout session.
POST/api/v1/billing/portalOpen the Stripe Customer Portal.

For reference, the request shape is a normal cookie-authenticated JSON call:

Terminal window
curl -X POST "https://api.example.com/api/v1/projects/abc/sdk-targets/xyz/sdk-builds/trigger" \
-H "Cookie: user-session=<session-cookie-from-browser>"

The same action in the dashboard — clicking Trigger build on an SDK Target — issues this request for you, with no cookie handling required.