THE OPENJEV API DOCUMENTATION

Call OpenJEV

The next generation of intelligent software can come from anyone. We built OpenJEV to make sure anyone can build it.

Build intelligence into every workflow. Send context and questions to Jev, and get structured decisions your code can act on.

01 / CONTEXTYour state

Text, objects, or arrays

02 / JUDGMENTYour questions

Choice · Score · Noul

03 / APPLICATIONTyped answers

Route, rank, or flag

Learn with Jev Code CampBuild your skills with eight hands-on lessons and earn your completion certificate.
01 / QUICKSTART

Make your first call.

No SDK required. Use any HTTP client.

  1. 1

    Get a key

    Sign in to your dashboard ↗ and create an API key.

  2. 2

    Keep it on your server

    Save it as OPENJEV_API_KEY in your environment.

  3. 3

    Send state + questions

    Copy an example below. Read each result from answers.

POSThttps://api.openjev.sh/v1/systemone

AuthorizationBearer <your API key>

Content-Typeapplication/json

Use the key in server-side code. The playground lets you explore requests without putting a key in your frontend.

02 / REQUEST → RESPONSE

Start with a small decision.

Switch the task or language. The request and illustrative response stay together.

Send a customer message to the right team.

{

  "model": "openjev",

  "state": "My card was charged twice. Please help ASAP.",

  "questions": {

    "team": {

      "type": "choice",

      "instructions": "Which team should handle this?",

      "criteria": {

        "billing": "Payments and refunds",

        "technical": "Bugs and integrations",

        "sales": "Pricing and new accounts"

      }

    }

  }

}
Try it in the playground
RESPONSE SHAPEILLUSTRATIVE
{

  "model": "openjev",

  "answers": {

    "team": {

      "type": "choice",

      "choice": "billing",

      "probabilities": {

        "billing": 0.94,

        "technical": 0.04,

        "sales": 0.02

      },

      "confidence": 0.85

    }

  }

}

Read answers.team.choice to get the selected team.

Sample values, not a live API result. Run the request in the playground to see the actual output.

JSON is the request body. Choose cURL, JS / TS, or Python for a complete HTTP request.

03 / THE REQUEST

One shared context.

Every question sees the same state. Send independent questions together in a single call.

Request body fields
FieldTypeWhat to send
stateRequiredString, object, arrayThe text and facts needed to answer your questions. Include the relevant records or policy here.
questionsRequiredObjectA non-empty map of question IDs to question definitions. Your IDs map each result back to your code.
modelOptionalStringopenjev is the default model.

Put the question in instructions. IDs such as team label the answer for your application. They do not replace an explicit question.

04 / THREE PRIMITIVES

Choose the shape of the answer.

Mix all three types in one request. Keep each question focused on one judgment.

05 / FROM ANSWER TO ACTION

Your code closes the loop.

Read a result by its question ID, then apply your application’s rules.

Know what each signal means.

  • Choice & Score include probabilities and confidence from 0 to 1.
  • Noul is near 1 for yes, near 0 for no, and near 0.5 for uncertainty. It has no separate confidence field.
  • Confidence is a signal, not a guarantee of correctness. Validate thresholds on your own examples.
EXAMPLE / SUPPORT ROUTING
const { team } = data.answers;



// Tune this threshold on your data.

if (team.confidence < 0.8) {

  queueForReview(ticket);

} else {

  routeTicket(ticket, team.choice);

}

Your application implements the routing and review functions.

06 / TROUBLESHOOTING

Know what to do next.

Check the HTTP status before using the answers.

401

Authentication

Check the Bearer header and that your API key is valid.

422

Invalid request

Check the JSON body, include state and a non-empty questions map, and use model openjev.

429

Rate limited

Respect Retry-After when present. Reduce concurrency and retry with backoff.

503

Temporarily unavailable

Retry with backoff. Keep a fallback for requests that still fail.

Provider errors may return other statuses. Handle non-2xx responses and network failures in your integration.

KEEP BUILDING

Take the next step.