Ora
All documentation Overview

Getting started

IntroductionQuickstart

Concepts

StateQuestionsConfidence

Question types

yes_no (noul)choicescore

Actions & workflows

OverviewDestinationsRules and templatesWebhooks and signaturesAsk by symbolWorkflows

Limits & pricing

Rate limitsPricing

API reference

POST /v1/systemoneGET /v1/modelsErrors

Resources

Models & versions

Docs / Getting started

Quickstart

Get from zero to your first answer in about 5 minutes: create a key, send one request, read the answer. Prefer clicking? See Or start in the Playground below.

Before you start
  • You're signed in, and your organization has a positive balance (see Settings → Billing).
  • You have a terminal, plus curl or one of the languages below.
  1. Create an API key

    Open API Keys → Create key, name it (for example laptop) and copy it. It starts with jev_sk_ and is shown once.

  2. Put the key in an environment variable

    Every example reads it from JEV_API_KEY, so the key never sits in your code.

    # macOS / Linux / WSL
    export JEV_API_KEY="jev_sk_…"
    
    # Windows (PowerShell or cmd), then open a new terminal
    setx JEV_API_KEY "jev_sk_…"
  3. Send your first request

    Ask two questions about Tesla. You send only the symbol; the server fills in its latest completed-session numbers. Pick your language, copy, save and run:

    Requires curl 7.76+. Save as run.sh, then: bash run.sh
    curl -sS https://oramodel.com/v1/systemone \
      -H "Authorization: Bearer $JEV_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "model": "ora1",
      "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?"
        }
      }
    }'
  4. Read the response

    One answer per question, under the names you chose:

    {
      "model": "ora1",
      "version": "ora1-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"
      }
    }
    modelThe model you called: ora1.
    versionThe exact engine version that answered. Log it with each decision.
    answers.up_week.yes_noProbability of yes, 0 to 1. Here 0.487: no edge either way for the coming week.
    answers.drop5.yes_no0.638: a 5% drawdown within a month is more likely than not.
    usageTokens billed for this request. Output tokens are small: answers are numbers.
    contextPresent when the server filled in the data: which symbol and which session (as_of).

    Your numbers will differ: they move with every session.

  5. Ask about your own content

    The same request shape works for any text or record. Keep ora1, put the content in state and ask a choice (pick one option) or a score (rate on ordered levels):

    Requires curl 7.76+. Save as run.sh, then: bash run.sh
    curl -sS https://oramodel.com/v1/systemone \
      -H "Authorization: Bearer $JEV_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "model": "ora1",
      "state": "Our API started returning 500 errors 20 minutes ago and we cannot process any orders. This is costing us money every minute!",
      "questions": {
        "department": {
          "type": "choice",
          "instructions": "Which team should handle this?",
          "criteria": {
            "billing": "Payment, invoices or refunds",
            "technical": "Bugs, outages or integration problems",
            "sales": "Pricing or plan questions"
          }
        },
        "frustration": {
          "type": "score",
          "instructions": "How frustrated is the customer?",
          "criteria": [
            "Calm",
            "Annoyed",
            "Very frustrated"
          ]
        }
      }
    }'

    Answer: department → technical (probability 0.94), frustration → 1.05 (“Annoyed”).

  6. Optional: act on the answer

    Add an actions list and we run your rule on the answers and deliver a Slack message, webhook or email when it's true. Start with "dry_run": true to see what would be sent. Walkthrough: Send a Slack alert when a rule fires.

Or start in the Playground

  1. Open the Playground

    Playground runs as you, so no key is needed.

  2. Pick an example

    Press Examples and open one, for example Ask by symbol.

  3. Run it

    Press Run (Ctrl/⌘ + Enter) and read the answers on the right.

  4. Take it to code

    Press Code for the same request in cURL, Python, JavaScript, PHP, Go, Java, C# or Ruby, or Save to keep it under Saved queries.

Next steps

  • Guides: step-by-step walkthroughs, from your first decision to scheduled watchlists.
  • Question types: yes_no, choice and score, and what each answer means.
  • Actions: turn answers into Slack messages, webhooks and emails.
  • Errors and rate limits: what to retry.
Create an account Open the Playground Everything here also lives in the console, next to your keys and usage.