runs

Start a run from a local repository surface

Grade a Marketing Surface Artifact produced by index365 scan repo on the caller's machine. The artifact carries CITATIONS (vendor, file, line) and counts, never source bodies, .env values, or absolute paths. This server never reads a filesystem and never fetches anything, including URLs referenced inside the artifact.

A repository run reports evidenceMode: local_source and carries local_repository provenance. It does NOT produce a headline Marketing Signal score: source cannot prove response headers, DNS, TLS, redirects, email authentication, or anything requiring a rendered page, so those checks are absent rather than guessed. Escalate to a live scan through POST /api/v1/runs to grade the published experience.

projectId is required, because a repository scan carries no URL to resolve a project from. Re-uploading an unchanged tree replays the previous run rather than spending again.

post/api/v1/runs/analyze-repo

Request

  • Base URL: https://index365.co
  • URL: https://index365.co/api/v1/runs/analyze-repo
  • Auth: HTTP bearer

Request body

projectIdstring uuid required
idempotencyKeystring
surfaceobject required

Marketing Surface Artifact. Produce it with index365 scan repo <dir> --dry-run, which prints the exact bytes this endpoint receives.

Response

Run accepted.

schemaVersioninteger
product'ai_readiness' | 'marketing_signal' | 'marketing_signal_v2' | 'website_security'
runIdstring uuid
projectIdstring uuid nullable
status'pending' | 'running' | 'completed' | 'failed' | 'failed_auto_credit' | 'refunded'
progressPctinteger
currentStepstring nullable
urlstring
scanModestring nullable
modelstring nullable
costUsdnumber
errorstring nullable
createdAtstring date-time
startedAtstring date-time nullable
completedAtstring date-time nullable
scoreinteger nullable
scoreStatus'unverified' | 'null' nullable

unverified when source-only page evidence needs rendered verification.

band'Weak' | 'Fair' | 'Good' | 'Excellent' | 'null' nullable

Marketing Signal runs only: the band for score.

coverageLinestring

Marketing Signal runs only: what the run graded, as a sentence.

restatedboolean

Marketing Signal runs only: true when this run stored a different headline, which happens on runs scored before the corrected weighting.

restatementNotestring
legacyStoredScoreinteger nullable

Marketing Signal runs only: the headline this run stored. For reconciliation, never for display.

severityCountsobject nullable
findingsTotalinteger nullable
humanUrlstring

Example response

{
  "schemaVersion": 3,
  "coverageLine": "Scored from 21 of 24 applicable checks"
}

Changes

No recorded changes to this operation across all 1 revision of this API.