# System One API

Source: https://cicora.ai/en/docs/system-one

System One uses TypeSafe's native JSON format with the same decision models and API key. The selected model's catalog price applies.

## Text and JSON

Use `decision.json` from the [Decisions API example](/en/docs/decisions) with this request path:

```bash
curl --fail-with-body --silent --show-error https://api.cicora.ai/v1/systemone \
  -H "Authorization: Bearer $CICORA_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @decision.json
```

`POST /api/v1/systemone` is an alias for the same operation. Do not duplicate `/v1` when configuring a base URL.

## Differences from Decisions API

* Question `instructions` may be omitted or `null`.
* Choice returns `choice`, `confidence` and `probabilities`.
* Score returns `score`, `confidence`, `probabilities` and `legend`.
* Noul returns `noul`, a number from 0 to 1.
* Box returns `box` with normalized `top`, `bottom`, `left`, `right` edges from 0 to 1, and `confidence`.

Choice accepts at most 255 options and Score at most 10 levels; individual models can impose lower limits. Check supported question types and context in the catalog.

## Images and Box

Only models with verified image and Box support on System One accept this input. Add `typesafe-danger-zone-images: true`. Supply PNG/JPEG via `assets`; `data_base64` contains raw Base64 without a `data:` prefix. Multipart uploads are not supported.

The body below illustrates the structure. Replace `BASE64_IMAGE_BYTES` with actual encoded image bytes.

```json
{
  "model": "typesafe/jev-1.14",
  "state": "Product photo: product",
  "assets": {
    "product": {"type": "image", "format": "png", "data_base64": "BASE64_IMAGE_BYTES"}
  },
  "questions": {
    "product_region": {"type": "box", "instructions": "The product in the product photo."}
  }
}
```

Box edges are measured from the top-left corner. A box alone does not prove the target exists; add a Noul presence question when your task requires that check.

## Long context

If supported by the model, explicitly enable long context with `typesafe-danger-zone-long-context: true`. Opt-in headers must have the exact value `true`; omit a header when its mode is not needed. These flags do not bypass model context or request body limits.

See [Decisions API](/en/docs/decisions) for costs, usage accounting and retry behavior. To try the model without code, select it from the chat model picker in the cabinet.

## Troubleshooting


**Why is the model unavailable?**


Check your selected workspace, model access and balance. If Jev is absent from the Decisions catalog, it is not enabled for your access yet.


**What should I do after a timeout?**


Check [Usage](/en/docs/usage-costs) for the request time first. No response does not mean no charge. Make an explicit decision before submitting again.

## FAQ

### What is cicora.ai?

cicora.ai is a multi-model AI workspace and compatible API for chat, text, images, video, coding tools, and teams. Start with the [overview](/en.md), [documentation](/en/docs.md), or [model catalog](/en/models.md).

### How is usage billed?

Confirmed usage is charged in USD from the active workspace's prepaid balance. Use the live catalog for current model prices and the [usage guide](/en/docs/usage-costs.md) for settlement details.

### Which protocols and integrations are available?

Documentation covers OpenAI-compatible Chat Completions and Responses, Anthropic Messages, image interfaces, Claude Code, OpenCode, and Codex CLI. Compatibility does not imply support for every upstream parameter.

### Which sources are authoritative and current?

For model IDs, availability, capabilities, limits, and prices, use the [live catalog](/en/models.md). For API behavior, use the matching [documentation page](/en/docs.md). Never include API keys, private workspace data, or preview URLs in public documents.
