Rent the Brain · API & MCP
Rent the brain that makes any model or agent start from hard-won experience. Ask how to approach a task and get back a proven, sourced way of working — an experienced opinion your model can take or leave — or hand the whole question to a pipeline that answers it, cross-checks itself, and saves the result to your own storage.
Not a search engine. The answer APIs read your question and summarise the web; we hand your model the proven way to do the work— and on the rare topic we've nothing for, we tell it how to research it itself.
It runs on your own model keys. We never see your keys, and your task text is matched in memory and stored nowhere. We complement the labs — we don't train models or compete with them.
POST /api/approach
Send a task or decision in plain words. Get back proven ways of working — with concrete steps — from a curated base. You run the work yourself. If nothing proven matches, it says so, you're not charged — and it still hands your AI the way to research it well yourself, so you're never empty-handed.
POST /api/workflows/verified
A proven approach guides the answer, a second independent model (cross-vendor when your keys allow) reviews and improves it, and the result can be saved straight to your own GitHub or Drive. A cross-check a one-shot call skips. AI runs on your keys.
The base is a curated set of transferable ways-of-working — how to approach a decision, a build, a debug, a review — distilled from proven operators and real, hard-won lessons. Every card is a concrete, step-by-step method you can apply.
The call consults that base first, and only reaches for a generic answer where the base has a real gap. That ordering is the product: less time fighting the model out of generic mode, and a starting point grounded in real experience.
And when the base has nothing on your topic, it still knows how to make your model work the problem well — structure it, research in waves, check against your assumptions, converge. We don't sell knowledge to copy once; we instil the right working habit at the right moment — the difference between a considered answer and slop.
It complements whatever model or architecture you already use. We don't train models and we don't build the agent — we start the one you have from accumulated experience, not generic priors.
REST: POST /api/approach and POST /api/workflows/verified, plus free GET /api/approach/domains and GET /api/workflows to see what's covered.
MCP: point any MCP client (Claude Desktop, Cursor, …) at https://api.orioralabs.com/mcp with your key. It exposes recommend_approach and verified_answer alongside the model recommender.
Ride-along, always on: if you already call the model recommender, a matching approach comes back with it automatically, across every app. Because it stays quiet — and free — whenever it has nothing proven for you, you never pay for nothing and never have to think about switching it off. (A settings toggle is there if you ever want to.)
Each delivered layer is a flat $0.001, itemised on your usage feed so you see exactly what each charge was for:
The AI itself runs on your vendor keys, so your model provider bills you directly for tokens — Oriora only ever charges the small per-layer fee.
See API pricing for how the layer fees work across the whole API.
Your task text is matched against the base in memory and is not written to disk or logged. Oriora never holds your model keys beyond the moment of the call, and never stores the AI output.
Or don't send the question at all. Your client can hash your task locally and send only the hashes — we match those and never receive your words. It is the one place where “answer me without seeing my question” is even possible: an answer engine has to read your question to search the web; we don't.
Or match by meaning. Embed your task locally and send only the vector — we find the closest proven approach by similarity. It matches on meaning, not just shared words, and is even more private than hashes: a vector can't be read back into your words.
When you ask the workflow to save a result, it goes to your own connected GitHub or Drive — you own it, and Oriora keeps no copy.
API reference
Ask how to approach a task
Request
curl https://api.orioralabs.com/api/approach \
-H "Authorization: Bearer sk_oriora_..." \
-H "Content-Type: application/json" \
-d '{"task": "should I build my own auth or use a service?"}'Response
{
"approaches": [
{ "id": "build/find-first-build-last",
"title": "Find First, Build Last",
"source": "Oriora CORE",
"steps": ["...proven steps..."] }
],
"gap": false
}Outsource a question to the verified workflow
Request
curl https://api.orioralabs.com/api/workflows/verified \
-H "Authorization: Bearer sk_oriora_..." \
-H "Content-Type: application/json" \
-d '{"question": "...", "save": true}'Response
{
"answer": "...verified final answer...",
"verification": { "performed": true, "cross_vendor": true },
"approach": { "id": "...", "title": "..." },
"saved": { "provider": "github", "path": "oriora-workflows/..." }
}Match blind — hash locally, send only tokens
Run this on your side to turn a task into hashed tokens, then send tokens instead of task — we match them and never receive your words. The spec must match ours exactly: fetch it (and its version) at GET /api/approach/hash-spec and send spec_version so any drift is caught (409), never silent.
Client hasher (Node)
const { createHash } = require('crypto');
const STOP = new Set('the a an to of for and or is it this that my our me with on in be get go about at as if so up out by into your their its own them what when where which who whom whose why will are from than then there here over after before been was'.split(' '));
const FILLER = new Set('should would could must need want do does how much many we i you actually just really got make made thing things stuff lot put gonna'.split(' '));
const stem = w => { for (const s of ['ability','ations','ation','able','ings','ing','edly','ed','ers','er','ly','es','s']) { if (w.length > s.length+2 && w.endsWith(s)) { const b = w.slice(0,-s.length); if ((s==='s'||s==='es') && b.endsWith('s')) continue; return b; } } return w; };
const toTokens = task => [...new Set(task.toLowerCase().replace(/[^a-z0-9\s]/g,' ').split(/\s+/)
.filter(w => w && !STOP.has(w) && !FILLER.has(w)).map(stem))]
.map(s => createHash('sha256').update(s).digest('hex').slice(0,16));Request — no task text leaves your machine
curl https://api.orioralabs.com/api/approach \
-H "Authorization: Bearer sk_oriora_..." \
-H "Content-Type: application/json" \
-d '{"tokens": ["75490bd7b93e6fa7", "48ee046028069a9c", "..."], "spec_version": "v1"}'Sign in, generate an sk_oriora_… key, connect your model keys, and call it. Same key, same wallet as the rest of the Oriora API.