{
  "opencollection": "1.0.0",
  "info": {
    "name": "Quadrillion Cloud account auth API",
    "version": "0.1.0"
  },
  "items": [
    {
      "info": {
        "name": "auth",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Current User",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/auth/me"
          },
          "docs": "Get current authenticated user information.\n\nRequires: Bearer token or session cookie\n\nReturns:\n    {\n        \"id\": 123,\n        \"email\": \"user@example.com\",\n        \"name\": \"John Doe\",\n        \"created_at\": \"2025-01-15T10:30:00Z\",\n        \"last_login\": \"2025-01-16T14:20:00Z\",\n        \"job_type\": \"Data Scientist\",\n        \"company_name\": \"Acme Corp\",\n        \"onboarding_completed\": true,\n        \"organization_role\": \"owner\"\n    }"
        },
        {
          "info": {
            "name": "Logout",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/auth/logout",
            "params": [
              {
                "name": "frontend_origin",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Logout endpoint - clears the session cookie.\n\nReturns:\n    {\"message\": \"Logged out successfully\"}"
        },
        {
          "info": {
            "name": "Preview Invitation",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/auth/orgs/invitations/:token",
            "params": [
              {
                "name": "token",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Preview an invitation by token — no auth required.\n\nReturns org name, role, and invited email so the frontend can show\na confirmation screen before the user accepts."
        },
        {
          "info": {
            "name": "Accept Invitation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/auth/orgs/invitations/:token/accept",
            "params": [
              {
                "name": "token",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Accept Invitation"
        },
        {
          "info": {
            "name": "Start",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/auth/workos/start",
            "params": [
              {
                "name": "org_slug",
                "value": "",
                "type": "query"
              },
              {
                "name": "frontend_origin",
                "value": "",
                "type": "query"
              },
              {
                "name": "next",
                "value": "",
                "type": "query"
              },
              {
                "name": "callback_port",
                "value": "",
                "type": "query"
              },
              {
                "name": "login_hint",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Build the WorkOS authorization URL and redirect.\n\n* ``org_slug`` — when present, the start endpoint looks up the\n  Organization's WorkOS organization id and routes through the\n  tenant SSO connection. When absent, falls back to personal\n  Google OAuth via WorkOS's built-in ``GoogleOAuth`` provider.\n* ``frontend_origin`` — explicit browser origin. Required for\n  browser logins and must match ``ALLOWED_FRONTEND_ORIGINS``. Used\n  to pick the callback host for dashboard-vs-cloud logins.\n* ``next`` —"
        },
        {
          "info": {
            "name": "Callback",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/auth/workos/callback",
            "params": [
              {
                "name": "code",
                "value": "",
                "type": "query"
              },
              {
                "name": "state",
                "value": "",
                "type": "query"
              },
              {
                "name": "error",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Exchange the WorkOS code for a profile and finalise the session."
        },
        {
          "info": {
            "name": "Discover",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/auth/workos/discover",
            "params": [
              {
                "name": "email",
                "value": "",
                "type": "query"
              },
              {
                "name": "frontend_origin",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Email-domain SSO routing.\n\nLooks up whether the email's domain belongs to a WorkOS Organization\nthat's wired to one of our ``Organization`` rows. Returns the org\nslug + the ``/start`` URL the caller should redirect to. Returns\n``{org_slug: null, login_url: null}`` when no SSO is configured for\nthe domain — the caller falls back to global Google login.\n\nWhen the caller supplies ``frontend_origin``, it must match\n``ALLOWED_FRONTEND_ORIGINS`` and is round-tripped into ``login_url``\nso hosted browse"
        },
        {
          "info": {
            "name": "Webhook",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/auth/workos/webhook"
          },
          "docs": "WorkOS event delivery endpoint.\n\nSubscribed events:\n* ``dsync.user.created`` — eager membership provisioning. Customer's\n  IdP pushed a new user via SCIM; create the local User +\n  OrganizationMember rows so the user can sign in directly without\n  an admin invite.\n* ``dsync.user.deleted`` — per-user revocation (offboard)\n* ``dsync.user.updated`` (state=inactive) — per-user revocation\n  (suspend / disable; covers Okta DEPROVISIONED, Azure Disabled, etc.)\n* ``connection.deactivated`` / ``connectio"
        }
      ]
    }
  ],
  "bundled": true
}