Quickstart

Authenticate with a workspace-scoped key. Make idempotent requests with an Idempotency-Key header.

curl https://api.scientohq.com/v1/workflows/runs \
  -H "Authorization: Bearer $SCIENTO_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{ "workflow": "literature.triage", "input": { "topics": ["Wnt signalling"] } }'

Resources

Workflows

/v1/workflows · list, create, version, archive.

Runs

/v1/runs · start, cancel, replay, fetch traces.

Approvals

/v1/approvals · list queue, approve, reject, comment.

Memory

/v1/memory · search, upsert, forget.

Tools

/v1/tools · register, allowlist, rotate keys.

Evals

/v1/evals · upload sets, trigger runs, fetch reports.

Model Context Protocol

Expose Sciento as a tool to any MCP-compatible agent — Claude Desktop, Cursor, your own runtime.

{
  "mcpServers": {
    "sciento": {
      "command": "npx",
      "args": ["-y", "@sciento/mcp-server"],
      "env": { "SCIENTO_KEY": "sk_..." }
    }
  }
}

TypeScript

import { Sciento } from "@sciento/sdk";
const s = new Sciento({ apiKey: process.env.SCIENTO_KEY });
const run = await s.runs.create({
  workflow: "methods.draft",
  input: { eln: "benchling://entries/xyz" },
});

Python

from sciento import Sciento
s = Sciento(api_key=os.environ["SCIENTO_KEY"])
run = s.runs.create(
  workflow="methods.draft",
  input={"eln": "benchling://entries/xyz"},
)

Events you can subscribe to

EventWhen
run.completedAny workflow finishes successfully
run.failedRun terminated after retries exhausted
approval.pendingHuman-in-the-loop review needed
verifier.flaggedVerifier rejected an agent output
budget.exceededWorkflow exceeded its credit cap

All webhook bodies are signed with HMAC-SHA256. Replay-protected with timestamps.