REST API

In development

The engine behind the console, over plain HTTP and JSON. Every route is a documented GET or POST that curl can drive — there is nothing to install to start.

What it is
One request starts an analysis; the response carries the findings, each with the source it came from and whether it was confirmed, refuted, or could not be established.
Why it matters
The console is one client. Anything else you build — a bot, a CI step, an internal tool — needs the same engine without a browser in the middle.
What it will enable
  • Executions
  • Research
  • Reports
  • Artifacts
  • Projects
  • Providers

The interface, as designed

12 routes across 6 groups. None of them accepts requests yet — this describes the shape so it can be evaluated before it ships, not a surface you can call today.

  • POST/v1/executionsAPI keyRun an analysis against a subject.
  • GET/v1/executionsAPI keyList your executions, newest first.
  • GET/v1/executions/{id}API keyOne execution with its evidence and sources.
  • POST/v1/researchAPI keyCollect ranked sources with citations.
  • POST/v1/website-auditAPI keyMap a site, read what matters, and report on it.
  • POST/v1/repository-analysisAPI keyRead a repository and what is written about it.
  • POST/v1/reportsAPI keyBuild a report from one or more executions.
  • GET/v1/reports/{id}API keySections, findings, confidence, and sources.
  • GET/v1/artifacts/{id}API keyOne artifact, with its own media type.
  • GET/v1/executions/{id}/artifactsAPI keyEvery file an execution produced.
  • GET/v1/projectsAPI keyEverything you have analysed, grouped.
  • GET/v1/providersNoneCapabilities available on this deployment.

What a call will look like

Shown so the shape can be judged now. It will not run.

curlillustrative
curl -X POST https://api.molthood.org/v1/executions   -H "Authorization: Bearer mk_live_..."   -H "content-type: application/json"   -d '{ "target": "token", "subject": "0x..." }'
responseillustrative
{
  "id": "exe_...",
  "status": "succeeded",
  "evidence": [
    {
      "label": "Owner can pause transfers",
      "state": "confirmed",
      "source_url": "https://..."
    },
    {
      "label": "Can be sold",
      "state": "unknown",
      "reason": "The screening source did not answer."
    }
  ]
}