> ## Documentation Index > Fetch the complete documentation index at: https://openrouter.ai/docs/llms.txt > Use this file to discover all available pages before exploring further. # SystemOne > System One endpoints for models such as Jev, compatible with the TypeSafe SDKs. See https://openrouter.ai/docs/guides/community/typesafe-sdk. ## Overview System One endpoints for models such as Jev, compatible with the TypeSafe SDKs. See [https://openrouter.ai/docs/guides/community/typesafe-sdk](https://openrouter.ai/docs/guides/community/typesafe-sdk.md). ### Available Operations * [create](#create) - Submit a System One request ## create Sends state and typed questions to a System One model such as Jev and returns its answers. Compatible with the TypeSafe SDKs. Bare System One model IDs such as `jev-1.13` and `jev-latest` are mapped onto the `typesafe/` namespace. ### Example Usage ```python theme={null} from openrouter import OpenRouter import os with OpenRouter( http_referer="", x_open_router_title="", x_open_router_categories="", api_key=os.getenv("OPENROUTER_API_KEY", ""), ) as open_router: res = open_router.system_one.create(model="typesafe/jev-1.13", questions={ "is_bug": { "criteria": { "false": "The customer is asking a question or requesting a feature.", "true": "The customer describes broken or unexpected product behavior.", }, "instructions": "Is the customer reporting a software defect?", "type": "noul", }, "team": { "criteria": { "account": "Login, permissions, or profile issues.", "frontend": "Rendering, layout, or browser compatibility issues.", "payments": "Checkout, billing, or payment processing issues.", }, "instructions": "Which team should own this ticket?", "type": "choice", }, "urgency": { "criteria": [ "Can wait for the next release", "Should be fixed this week", "Blocking revenue right now", ], "instructions": "How urgent is this ticket?", "type": "score", }, }, state={ "customer_tier": "enterprise", "ticket": "My checkout page shows a blank screen after I click Pay. I have tried two browsers.", }) # Handle response print(res) ``` ### Parameters | Parameter | Type | Required | Description | Example | | - | - | - | - | - | | `model` | *str* | ✔️ | N/A | | | `questions` | Dict\[str, [components.Questions](../../components/questions.mdx)] | ✔️ | N/A | | | `state` | [components.State](../../components/state.mdx) | ✔️ | The content to evaluate: a plain string, or a JSON object or array of related context. | | | `http_referer` | *Optional\[str]* | ➖ | The app identifier should be your app's URL and is used as the primary identifier for rankings. This is used to track API usage per application. | | | `x_open_router_title` | *Optional\[str]* | ➖ | The app display name allows you to customize how your app appears in OpenRouter's dashboard. | | | `x_open_router_categories` | *Optional\[str]* | ➖ | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings. | | | `assets` | Dict\[str, [components.DecisionsImageAsset](../../components/decisionsimageasset.mdx)] | ➖ | Images keyed by reference string, as in TypeSafe's API. Write a reference wherever the image belongs in `state`, `instructions`, or `criteria`; every asset must be referenced at least once, or the request fails with `400` naming the unused key. TypeSafe Jev endpoints receive `assets` as written and read a reference as a whole string value or inside longer text. Every other provider has each whole-string reference resolved to an `image_url` part before the request is sent, so it is accepted only where that provider reads `image_url` parts (top-level `state` items), and a reference inside longer text fails with `400`. `image_url` parts and `assets` can be mixed in one request. | | | `provider` | [OptionalNullable\[components.ProviderPreferences\]](../../components/providerpreferences.mdx) | ➖ | N/A | \{ "allow\_fallbacks": true } | | `session_id` | *Optional\[str]* | ➖ | A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. | session-1234 | | `trace` | [Optional\[components.TraceConfig\]](../../components/traceconfig.mdx) | ➖ | Metadata for observability and tracing. Known keys (trace\_id, trace\_name, span\_name, generation\_name, parent\_span\_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations. | \{ "trace\_id": "trace-abc123", "trace\_name": "my-app-trace" } | | `user` | *Optional\[str]* | ➖ | N/A | | | `retries` | [Optional\[utils.RetryConfig\]](../../models/utils/retryconfig.mdx) | ➖ | Configuration to override the default retry behavior of the client. | | ### Response **[components.DecisionsResponse](../../components/decisionsresponse.mdx)** ### Errors | Error Type | Status Code | Content Type | | - | - | - | | errors.BadRequestResponseError | 400 | application/json | | errors.UnauthorizedResponseError | 401 | application/json | | errors.PaymentRequiredResponseError | 402 | application/json | | errors.ForbiddenResponseError | 403 | application/json | | errors.NotFoundResponseError | 404 | application/json | | errors.PayloadTooLargeResponseError | 413 | application/json | | errors.TooManyRequestsResponseError | 429 | application/json | | errors.InternalServerResponseError | 500 | application/json | | errors.BadGatewayResponseError | 502 | application/json | | errors.ServiceUnavailableResponseError | 503 | application/json | | errors.EdgeNetworkTimeoutResponseError | 524 | application/json | | errors.ProviderOverloadedResponseError | 529 | application/json | | errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* |