runs

Start a paid scan

Starts a paid Marketing Signal scan and returns 202 with the run immediately. Pass projectId for an existing project, or omit it with an absolute URL to reuse or create that URL's canonical-domain project in the key's organization. scanMode defaults to paid_marketing_signal_v2, the only startable mode; legacy scanModes return 400 error.code=legacy_product_not_creatable (their completed runs stay readable). Spends one Page Check per run; requires the runs:write scope and an active paid plan. Poll get_run for completion. Send an Idempotency-Key header so retries never double-spend. Single-flight is per product per project.

post/api/v1/runs

Request

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

Headers

Idempotency-Keystring

Replaying the same key returns the original run (200) instead of creating a new one.

Request body

OR

Response

Idempotent replay of an existing run (idempotentReplay=true).

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.