Skip to main content

Base URL

Local development:
http://localhost:8000/api/v1
Production:
https://beta-api.conformly.ai/api/v1

Authentication

All endpoints (except payments) require: Authorization: Bearer <supabase_jwt_token>

Endpoints Overview

Authentication

MethodEndpointDescriptionAuth
GET/auth/meGet current user profile (includes subscription_status, subscription_plan)Yes
POST/auth/syncSync profile and activate subscription (free plan auto-activated if none exists)Yes
POST/auth/refreshRefresh JWT tokenYes

Payments

MethodEndpointDescriptionAuth
POST/payments/create-checkout-sessionCreate Stripe Checkout session for paid plansNo
GET/payments/session-info/{session_id}Get Stripe session details (post-payment flow)No
POST/payments/webhookStripe webhook handler (checkout completed, subscription cancelled)No

Workspaces

MethodEndpointDescription
GET/workspacesList user workspaces
POST/workspacesCreate new workspace
GET/workspaces/{id}Get workspace details
PATCH/workspaces/{id}Update workspace
DELETE/workspaces/{id}Delete workspace

Standards

MethodEndpointDescription
GET/standards/commonGet common standards catalog
GET/standardsList standards (paginated)
POST/standardsCreate new standard
GET/standards/{id}Get standard details
PATCH/standards/{id}/attestAttest standard ownership
DELETE/standards/{id}Delete standard
POST/standards/{id}/uploads/initInitialize file upload
POST/standards/{id}/uploads/{upload_id}/completeComplete file upload

Work Products

MethodEndpointDescription
GET/work-productsList work products (paginated)
GET/work-products/{id}Get work product details
PATCH/work-products/{id}Update work product
DELETE/work-products/{id}Delete work product
POST/work-products/uploads/initInitialize file upload
POST/work-products/uploads/{file_id}/completeComplete file upload

Analysis

MethodEndpointDescription
GET/analysis/overviewGet analysis overview
GET/analysis/standards/{id}/drilldownGet standard drill-down
POST/analysis/gapsStart gap analysis
GET/analysis/evidenceGet evidence mapping
GET/analysis/analysesList persisted analyses
GET/analysis/analyses/{id}Get analysis by ID (with gaps/recommendations)
GET/analysis/gapsList persisted gaps (filters supported)
PATCH/analysis/gaps/{gap_id}Update gap status (open/in_progress/resolved/accepted)

Compliance

MethodEndpointDescription
POST/compliance/completenessStart completeness analysis
POST/compliance/checklistStart checklist validation

Reports

MethodEndpointDescription
GET/reportsList reports (paginated)
POST/reportsCreate new report
GET/reports/{id}Get report details
DELETE/reports/{id}Delete report
GET/reports/{id}/downloadDownload report

Export

MethodEndpointDescription
GET/export/gap-analysisExport gap analysis (HTML/CSV/JSON)
GET/export/checklistExport checklist results
GET/export/completenessExport completeness results

Traceability

MethodEndpointDescription
GET/traceability/matrixGet traceability matrix
GET/traceability/gapsGet traceability gaps
GET/traceability/completenessGet workspace completeness metrics
GET/traceability/analyzeRun comprehensive traceability analysis
GET/traceability/linksList links with filters
POST/traceability/linksCreate traceability link

Key Response Examples

GET /auth/me

{
  "id": "f2427d3d-96c6-41a3-8a5d-9e0bd3fe4031",
  "email": "user@example.com",
  "name": "John Doe",
  "organization": "Acme Corp",
  "role": "engineer",
  "created_at": "2026-01-15T10:30:00Z",
  "last_login": "2026-03-03T14:00:00Z",
  "subscription_status": "active",
  "subscription_plan": "free"
}

POST /auth/sync

{
  "success": true,
  "message": "Profile synced successfully",
  "user_id": "f2427d3d-96c6-41a3-8a5d-9e0bd3fe4031",
  "email": "user@example.com",
  "subscription_migrated": false,
  "subscription_plan": "free"
}

Detailed API Reference

View complete API documentation with examples