KSM Model Logo
← Back to Lite scan
KSM Model™ Assessment API

API Documentation

Overview

Run the full KSM assessment (scan + scoring + AI narrative) via a single authenticated HTTP call. The API returns the same JSON payload the in-app report consumes, including scores, grades, maturity levels, pillar breakdowns, and AI-generated narrative with a 90-day roadmap.

Endpoint

POST https://ksm-model.lovable.app/api/public/ksm/audit

Use https://project--f82ce3bc-2e17-4ecc-9a98-7a861a1579fc.lovable.app if you need a stable URL that survives renames.

Authentication

Send your API key as a Bearer token in the Authorization header:

Authorization: Bearer <KSM_API_KEY>

Keep KSM_API_KEY server-side. Anyone with this key can run assessments (which call paid AI models).

Request

Content-Type: application/json

{
  "company": "Acme Inc.",
  "url": "https://acme.com",
  "advanced": {
    "industry": "B2B SaaS",
    "market": "US",
    "competitors": "competitor-a.com, competitor-b.com"
  }
}
FieldTypeRequiredNotes
companystringyes1–200 chars
urlstringyes1–500 chars; bare domains accepted
advanced.industrystringno1–200 chars
advanced.marketenumno"US" | "Global" | "Regional"
advanced.competitorsstringno1–500 chars, comma-separated

Response

200 OK

{
  "scanId": "uuid",
  "payload": {
    "company": "Acme Inc.",
    "url": "acme.com",
    "overall": 72.4,
    "grade": "B",
    "maturity": { "name": "Operational" },
    "pillars": [
      { "score": 78.0, "name": "Structured Extractability", "tag": "SE" }
    ],
    "narrative": "…",
    "brand": {
      "primaryColor": "#…",
      "headingFont": "…",
      "bodyFont": "…"
    }
  }
}

Error codes

StatusMeaning
400Invalid JSON or input validation failed
401Missing or invalid Bearer token
405Method not allowed (only POST is supported)
500Assessment pipeline failed

Example (cURL)

curl -X POST https://ksm-model.lovable.app/api/public/ksm/audit \
  -H "Authorization: Bearer $KSM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"company":"Acme Inc.","url":"https://acme.com"}'

A full assessment typically takes 20–60 seconds (live crawl + Claude narrative generation).

Response payload fields

FieldTypeDescription
scanIdstringUnique identifier for this assessment run
payload.companystringCompany name as provided
payload.urlstringNormalized domain
payload.overallnumberOverall KSM score (0–100)
payload.gradestringLetter grade (A–F)
payload.maturity.namestringMaturity stage name
payload.pillarsarrayThree pillar scores with names and tags
payload.narrativestringAI-generated narrative and 90-day roadmap
payload.brandobjectDetected brand colors and fonts (if available)