# Evaluate decisions
URL: https://docs.munito.ai/api/createDecision

POST /systemone

Preview. Evaluate Noul, Choice, and Score questions against one state, with a TypeSafe-compatible response. Use a TypeSafe SDK base URL of https://api.munito.ai/inference. perplexity-ai/pplx-decider-v1.2 answers every question of a request in one pass, with calibrated probabilities. blockbrain/cygnet uses one pass for each question, and each pass counts as one request against the rate limit. A request over the limit gets 429 before any pass runs. Billing counts only a request that answers. Requests are synchronous; streaming and respond-async are unavailable. perplexity-ai/pplx-decider-v1.2 also accepts up to 8 images as base64 data URLs (JPEG, PNG, GIF, or WebP); it scales each image to at most 1.6 megapixels, about 1,000 input tokens per megapixel. An image link instead of a data URL gets 422. blockbrain/cygnet is text only.

```json
{
  "operationId": "createDecision",
  "summary": "Evaluate decisions",
  "tags": [
    "Decisions"
  ],
  "description": "Preview. Evaluate Noul, Choice, and Score questions against one state, with a TypeSafe-compatible response. Use a TypeSafe SDK base URL of https://api.munito.ai/inference. perplexity-ai/pplx-decider-v1.2 answers every question of a request in one pass, with calibrated probabilities. blockbrain/cygnet uses one pass for each question, and each pass counts as one request against the rate limit. A request over the limit gets 429 before any pass runs. Billing counts only a request that answers. Requests are synchronous; streaming and respond-async are unavailable. perplexity-ai/pplx-decider-v1.2 also accepts up to 8 images as base64 data URLs (JPEG, PNG, GIF, or WebP); it scales each image to at most 1.6 megapixels, about 1,000 input tokens per megapixel. An image link instead of a data URL gets 422. blockbrain/cygnet is text only.",
  "parameters": [
    {
      "name": "munito-service-tier",
      "in": "header",
      "description": "priority, standard or flex. The response names the tier that is billed; see x-ratelimit-over-limit. See [Service tiers](https://docs.munito.ai/service-tiers).",
      "schema": {
        "type": "string",
        "enum": [
          "priority",
          "standard",
          "flex"
        ],
        "default": "standard"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "model",
            "state",
            "questions"
          ],
          "properties": {
            "model": {
              "type": "string",
              "description": "A decision model available to your account."
            },
            "state": {
              "description": "The state to evaluate, as a string, object, or array.",
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object"
                },
                {
                  "type": "array",
                  "items": {}
                }
              ]
            },
            "images": {
              "type": "array",
              "description": "perplexity-ai/pplx-decider-v1.2 only: up to 8 images as base64 data URLs (data:image/png;base64,...), each up to 10 MB. Image links are not supported.",
              "items": {
                "type": "string"
              }
            },
            "questions": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 64,
              "description": "Questions keyed by a caller-selected identifier. The response preserves each identifier.",
              "additionalProperties": {
                "type": "object",
                "required": [
                  "type",
                  "instructions"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "noul",
                      "choice",
                      "score"
                    ]
                  },
                  "instructions": {
                    "description": "The question or rubric, as a string, object, or array.",
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "object"
                      },
                      {
                        "type": "array",
                        "items": {}
                      }
                    ]
                  },
                  "criteria": {
                    "description": "Choice requires an object with 2–255 option identifiers and descriptions. Score requires an ordered array of 2–10 levels. Noul accepts optional true and false descriptions. On blockbrain/cygnet, more than 20 choices require multiple passes, which increases latency and changes probability semantics.",
                    "oneOf": [
                      {
                        "type": "object"
                      },
                      {
                        "type": "array",
                        "items": {}
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "example": {
          "model": "perplexity-ai/pplx-decider-v1.2",
          "state": "The payment failed.",
          "questions": {
            "retry": {
              "type": "noul",
              "instructions": "Did the payment fail?"
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Answers keyed by question identifier and aggregate input/output token usage. Noul returns a probability. Choice returns the selected option, probabilities, and confidence. Score returns the expected level index, legend, probabilities, and confidence.",
      "content": {
        "application/json": {
          "example": {
            "model": "perplexity-ai/pplx-decider-v1.2",
            "answers": {
              "retry": {
                "type": "noul",
                "noul": 0.96
              }
            },
            "usage": {
              "input_tokens": 100,
              "output_tokens": 0
            }
          }
        }
      }
    },
    "401": {
      "description": "Authentication failed. The response contains a detail field."
    },
    "422": {
      "description": "Invalid request or unavailable decision model. The response contains a detail field."
    },
    "429": {
      "description": "Rate limit exceeded. Retry according to the Retry-After header."
    },
    "529": {
      "description": "Temporary capacity failure. Retry according to the Retry-After header."
    }
  }
}
```

# Shared API schemas
{
  "securitySchemes": {
    "BearerAuth": {
      "type": "http",
      "scheme": "bearer",
      "description": "Your Munito API key."
    },
    "ApiKeyAuth": {
      "type": "apiKey",
      "in": "header",
      "name": "x-api-key",
      "description": "Your Munito API key."
    }
  }
}