Decision model API

Fast, structured decisions for software.

Send a state and a set of named, typed questions. Get back typed answers (probabilities, picks and scores) in milliseconds, not generated text.

Billed per input token from prepaid credits. Usage is visible in the console.

RequestPOST /v1/systemone
curl -sS https://oramodel.com/v1/systemone \
  -H "Authorization: Bearer $JEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "mm-fin-latest",
  "state": {
    "symbol": "TSLA"
  },
  "questions": {
    "up_week": {
      "type": "yes_no",
      "instructions": "Will the stock be higher in a week?"
    },
    "drop5": {
      "type": "yes_no",
      "instructions": "Will it drop at least 5% at some point in the next month?"
    }
  }
}'
Response200 · application/json
{
  "model": "mm-fin-0.1.1",
  "answers": {
    "up_week": {
      "type": "yes_no",
      "yes_no": 0.487
    },
    "drop5": {
      "type": "yes_no",
      "yes_no": 0.638
    }
  },
  "usage": {
    "input_tokens": 327,
    "output_tokens": 8
  },
  "context": {
    "source": "server",
    "symbol": "TSLA",
    "as_of": "2026-10-30"
  }
}

A real call to the financial model. The request names only the symbol; the server filled in the numbers from the latest completed session (context.as_of).

One call, typed answers

POST /v1/systemone with a model, a state (the content to judge) and questions. Each question is answered independently against the same state and comes back under the same name, as a number your code can compare.

yes_no

A probability that the answer is yes, from 0 to 1.

"yes_no": 0.638

choice

Picks one of the options you name and gives a probability for each, plus how clear the pick is.

"choice": "technical", "probabilities": {…}

score

Rates on ordered levels you define. The score is the expected level, so it can fall between two levels.

"score": 1.054

Financial model: send a symbol

Ask trading questions about roughly 2,000 liquid US stocks and ETFs with mm-fin-latest. Send just "state": {"symbol": "TSLA"}. The server fills in the latest completed session's numbers, refreshed after each close.

Answers are model probabilities for information only. They are not investment advice and not a guarantee of any outcome.

  • Will it drop at least 5% at some point in the next month?yes_no · drop5
  • Will the stock be higher in a week?yes_no · up_week

From answers to actions

Answers are numbers, so decisions are plain rules. Put the rules next to the questions and let them act for you.

Actions

Rules on the answers, such as drop5 >= 0.6, deliver to Slack or to a signed HTTPS webhook. Email is coming soon.

Preview with a dry run before anything is sent, and check every delivery in the log.

Workflows

Run the same questions and actions over a watchlist on a schedule, in New York time.

Each run sends one digest, not a message per symbol.

A console for building and shipping

Everything you need to go from a first question to production code.

Playground

Build a request without code, run it and read the answers.

Saved queries

Keep requests you use often, reopen them and share them with your organization.

Code in 8 languages

cURL, Python, JavaScript, PHP, Go, Java, C# and Ruby, generated from your request.

Guides

Step by step: your first decision, calling the API, actions, webhooks and scheduled watchlists.

Examples

Ready-to-run requests to open in the Playground and adapt.

Keys and usage

Create API keys, follow your usage and keep track of your prepaid credits.

Ask your first question

The documentation and the Playground are in the console. Create an account to open them.