> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Avaliar Decisões

> Avalie perguntas nomeadas de probabilidade, escolha e pontuação com um modelo de decisão nativo.

Envie `state` e `questions` nomeadas para um modelo de decisão. Use `GET /v1/models?category=decision` para verificar a disponibilidade atual e `GET /v1/models/{model}` para o seu contrato publicado.

O `state` e as `instructions` de cada pergunta aceitam uma string, um objeto JSON ou um array JSON. O endpoint retorna JSON de forma síncrona.

| Tipo de pergunta | Critérios                                                             | Resultado                                                                                                      |
| ---------------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `noul`           | Objeto opcional com orientações para `true` e `false`                 | `noul`, uma probabilidade de 0 a 1                                                                             |
| `choice`         | Objeto de 1 a 255 nomes de opções mapeados para orientações ou `null` | `choice`, opcionalmente `probabilities` e `confidence`                                                         |
| `score`          | Array ordenado de 2 a 10 descrições                                   | `score` de 0 até o último índice; pode ser fracionário, com `legend`, `probabilities` e `confidence` opcionais |

A resposta preserva os nomes das suas perguntas em `answers`. `usage.input_tokens` e `usage.output_tokens` relatam o uso observado quando disponível. A precificação é baseada na tarifa atual do modelo; saída gratuita não implica em zero tokens de saída.

Mensagens de chat, ferramentas, streaming e Batch não fazem parte do contrato deste endpoint.

```bash theme={null}
curl https://api.tokenlab.sh/v1/systemone \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-1.13",
    "state": "I was charged twice. Please refund the duplicate payment.",
    "questions": {
      "refund_requested": {"type": "noul", "instructions": "Is a refund requested?"},
      "department": {
        "type": "choice", "instructions": "Which team should handle this?",
        "criteria": {"billing": "Charges and refunds", "technical": "Software bugs"}
      },
      "urgency": {
        "type": "score", "instructions": "Rate urgency",
        "criteria": ["Routine enquiry", "Money affected", "Safety emergency"]
      }
    }
  }'
```

A requisição HTTP também pode ser utilizada com clientes `fetch` ou `requests` padrão. Uma resposta de decisão é um dado estruturado, não uma explicação em texto gerada.


## OpenAPI

````yaml openapi/pt.json POST /v1/systemone
openapi: 3.1.0
info:
  title: TokenLab AI Gateway
  description: >-
    Saldo da organização, gerenciamento de API key e uso/faturamento por chave
    via management token
  version: 1.0.0
  termsOfService: https://tokenlab.sh/tos
  contact:
    name: Technical Support
    email: support@tokenlab.sh
servers:
  - url: https://api.tokenlab.sh
    description: Servidor de produção
security:
  - BearerAuth: []
tags:
  - name: Chat
    description: API de chat completions (compatível com OpenAI)
  - name: Responses
    description: Endpoints nativos compatíveis com a API de respostas da OpenAI
  - name: Embeddings
    description: API de text embeddings
  - name: Images
    description: API de geração de imagens
  - name: Audio
    description: API de processamento de áudio (TTS e STT)
  - name: Video
    description: API de geração de vídeo
  - name: Models
    description: Listagem de modelos disponíveis
  - name: Anthropic
    description: API de Messages compatível com Anthropic
  - name: Gemini
    description: API compatível com Google Gemini
  - name: Management
    description: >-
      Gerenciamento de API key da organização e uso/faturamento por chave via
      management token
  - name: Files
    description: Upload e recuperação de arquivos em lote (batch)
  - name: Batches
    description: Jobs em lote (batch) assíncronos compatíveis com OpenAI
  - name: Seedance Volc Compatible
    description: Endpoints de compatibilidade estilo Volc do Seedance 2.0
  - name: Decisions
  - name: Webhooks
    description: >-
      Gerenciamento de webhook do workspace com Management Tokens (mt-...).
      Chaves da Inference API não concedem acesso de gerenciamento.
paths:
  /v1/systemone:
    post:
      tags:
        - Decisions
      summary: Avaliar perguntas de decisão
      description: >-
        Avaliar estado com perguntas de probabilidade nomeada, escolha e
        pontuação ordenada. Apenas JSON síncrono. O uso de tokens é relatado
        quando disponível; tokens de saída com preço zero ainda são incluídos.
      operationId: createSystemOneDecision
      parameters:
        - $ref: '#/components/parameters/DeliveryPolicy'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - state
                - questions
              properties:
                model:
                  type: string
                  minLength: 1
                state:
                  oneOf:
                    - type: string
                    - type: object
                      additionalProperties: true
                    - type: array
                      items: {}
                questions:
                  type: object
                  minProperties: 1
                  additionalProperties:
                    oneOf:
                      - type: object
                        required:
                          - type
                          - instructions
                        properties:
                          type:
                            type: string
                            enum:
                              - noul
                          instructions:
                            oneOf:
                              - type: string
                              - type: object
                                additionalProperties: true
                              - type: array
                                items: {}
                          criteria:
                            type: object
                            properties:
                              'true':
                                oneOf:
                                  - type: string
                                  - type: object
                                    additionalProperties: true
                                  - type: array
                                    items: {}
                              'false':
                                oneOf:
                                  - type: string
                                  - type: object
                                    additionalProperties: true
                                  - type: array
                                    items: {}
                            required:
                              - 'true'
                              - 'false'
                            additionalProperties: false
                        additionalProperties: false
                      - type: object
                        required:
                          - type
                          - instructions
                          - criteria
                        properties:
                          type:
                            type: string
                            enum:
                              - choice
                          instructions:
                            oneOf:
                              - type: string
                              - type: object
                                additionalProperties: true
                              - type: array
                                items: {}
                          criteria:
                            type: object
                            minProperties: 1
                            maxProperties: 255
                            additionalProperties:
                              oneOf:
                                - type: string
                                - type: object
                                  additionalProperties: true
                                - type: array
                                  items: {}
                                - type: 'null'
                        additionalProperties: false
                      - type: object
                        required:
                          - type
                          - instructions
                          - criteria
                        properties:
                          type:
                            type: string
                            enum:
                              - score
                          instructions:
                            oneOf:
                              - type: string
                              - type: object
                                additionalProperties: true
                              - type: array
                                items: {}
                          criteria:
                            type: array
                            minItems: 2
                            maxItems: 10
                            items:
                              oneOf:
                                - type: string
                                - type: object
                                  additionalProperties: true
                                - type: array
                                  items: {}
                        additionalProperties: false
              additionalProperties: false
      responses:
        '200':
          description: Resultados da decisão
          content:
            application/json:
              schema:
                type: object
                required:
                  - model
                  - answers
                properties:
                  id:
                    type: string
                  model:
                    type: string
                  answers:
                    type: object
                    additionalProperties:
                      oneOf:
                        - type: object
                          required:
                            - type
                            - noul
                          properties:
                            type:
                              type: string
                              enum:
                                - noul
                            noul:
                              type: number
                              minimum: 0
                              maximum: 1
                          additionalProperties: false
                        - type: object
                          required:
                            - type
                            - choice
                          properties:
                            type:
                              type: string
                              enum:
                                - choice
                            choice:
                              type: string
                            probabilities:
                              type: object
                              additionalProperties:
                                type: number
                                minimum: 0
                                maximum: 1
                            confidence:
                              type: number
                              minimum: 0
                              maximum: 1
                          additionalProperties: false
                        - type: object
                          required:
                            - type
                            - score
                          properties:
                            type:
                              type: string
                              enum:
                                - score
                            score:
                              type: number
                              minimum: 0
                            probabilities:
                              type: object
                              additionalProperties:
                                type: number
                                minimum: 0
                                maximum: 1
                            confidence:
                              type: number
                              minimum: 0
                              maximum: 1
                            legend:
                              type: object
                              additionalProperties:
                                oneOf:
                                  - type: string
                                  - type: object
                                    additionalProperties: true
                                  - type: array
                                    items: {}
                          additionalProperties: false
                  usage:
                    type: object
                    required:
                      - input_tokens
                      - output_tokens
                    properties:
                      input_tokens:
                        type: integer
                        minimum: 0
                      output_tokens:
                        type: integer
                        minimum: 0
                    additionalProperties: false
                additionalProperties: true
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '503':
          $ref: '#/components/responses/DeliveryUnavailable'
components:
  parameters:
    DeliveryPolicy:
      name: X-TokenLab-Delivery-Policy
      in: header
      required: false
      description: >-
        Política de entrega por requisição. Substitui os padrões da API key e do
        Workspace. Tenta automaticamente o TokenLab Verified primeiro e pode
        alternar uma vez para Official apenas antes da saída, aceitação upstream
        ou criação de recurso persistente.
      schema:
        type: string
        enum:
          - auto
          - verified
          - official
  responses:
    BadRequest:
      description: Bad Request - Entrada inválida
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
          example:
            error:
              message: 'model: Model is required'
              type: invalid_request_error
              param: model
            validation_errors:
              - field: model
                message: Model is required
    Unauthorized:
      description: Unauthorized - Chave de API inválida ou ausente
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          example:
            error:
              message: Invalid API key provided
              type: invalid_api_key
    DeliveryUnavailable:
      description: >-
        Nenhuma rota de entrega elegível está disponível no momento, ou todas as
        rotas elegíveis falharam.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            requestedTierUnavailable:
              summary: O nível de entrega solicitado não possui uma rota elegível
              value:
                error:
                  message: >-
                    The requested Delivery tier is temporarily unavailable for
                    model gpt-5.4.
                  type: all_channels_failed
                  code: delivery_tier_unavailable
                  retryable: true
                  request_id: req_01JEXAMPLE
            eligibleRoutesFailed:
              summary: Todas as rotas de entrega elegíveis falharam
              value:
                error:
                  message: All available routes failed to process the request.
                  type: all_channels_failed
                  retryable: true
                  request_id: req_01JEXAMPLE
  schemas:
    ValidationError:
      allOf:
        - $ref: '#/components/schemas/ApiError'
        - type: object
          properties:
            validation_errors:
              type: array
              items:
                type: object
                properties:
                  field:
                    type: string
                  message:
                    type: string
                  code:
                    type: string
    ApiError:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              description: Mensagem de erro
            type:
              type: string
              description: Tipo de erro
              enum:
                - unauthorized
                - invalid_api_key
                - expired_api_key
                - permission_error
                - insufficient_balance
                - quota_exceeded
                - invalid_request_error
                - model_not_found
                - context_length_exceeded
                - unsupported_tool_choice
                - rate_limit_exceeded
                - server_error
                - upstream_error
                - all_channels_failed
                - timeout_error
                - not_found_error
                - no_contract_compatible_route
                - request_shape_channel_mismatch
                - upstream_contract_mismatch
                - platform_normalization_error
                - async_task_not_found
                - async_task_mapping_invalid
                - delivery_tier_unavailable
            code:
              type: string
              description: Código de erro
            param:
              type: string
              description: Parâmetro que causou o erro
            model:
              type: string
              description: Modelo associado ao erro
            did_you_mean:
              type: string
            suggestions:
              type: array
              items:
                type: object
                required:
                  - id
                properties:
                  id:
                    type: string
                additionalProperties: true
            alternatives:
              type: array
              items:
                type: object
                required:
                  - id
                  - status
                  - tags
                properties:
                  id:
                    type: string
                  status:
                    type: string
                  tags:
                    type: array
                    items:
                      type: string
                additionalProperties: true
            hint:
              type: string
            retry_after:
              type: number
            retryable:
              type: boolean
            balance_usd:
              type: number
            estimated_cost_usd:
              type: number
            supported_operations:
              type: array
              items:
                type: string
            supported_parameters:
              type: array
              items:
                type: string
            required_selectors:
              type: array
              items:
                type: string
            optional_selectors:
              type: array
              items:
                type: string
            allowed_resolutions:
              type: array
              items:
                type: string
            allowed_durations:
              type: array
              items:
                type: string
            allowed_aspect_ratios:
              type: array
              items:
                type: string
            prompt_max_characters:
              type: number
            recommended_request:
              type: object
              additionalProperties: true
            request_endpoint:
              type:
                - string
                - 'null'
            request_shape_mode:
              type:
                - string
                - 'null'
            status_mode:
              type:
                - string
                - 'null'
            request_id:
              type: string
          required:
            - message
            - type
          additionalProperties: true
      additionalProperties: true
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Autenticação por Chave de API. Crie ou gerencie chaves de API em
        [Dashboard > API > API
        Keys](https://tokenlab.sh/dashboard/api?tab=keys).

````