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

# Criar um Run

> Execute um endpoint com a entrada preparada a partir de Inspect. O Glasser verifica a Policy da sua Key e reserva fundos antes de criar um Run.

* **200:** o Run foi concluído. Verifique seu status, a resposta do provedor de dados e a cobrança.
* **202:** um Run assíncrono ainda está em andamento. Use [Get a Run](https://glasser.ai/docs/pt/api-reference/runs/get.md) para verificar o resultado.

Um Run concluído pode conter um erro do provedor de dados. Use o mesmo `Idempotency-Key` e os mesmos parâmetros de execução ao tentar novamente.


## OpenAPI

````yaml /openapi.pt.json post /v1/runs
openapi: 3.1.0
info:
  title: Glasser
  version: 0.0.1
  description: >-
    Uma chave, sem contrato, pagamento por chamada, para todas as APIs pagas
    adquiridas no atacado. Cada resposta contém x-request-id; cada corpo de erro
    contém o mesmo envelope.
servers:
  - url: https://api.glasser.ai
security: []
tags:
  - name: Solutions
  - name: Endpoints
  - name: Runs
  - name: Balance
paths:
  /v1/runs:
    post:
      tags:
        - Runs
      summary: Executar um endpoint
      description: >-
        Execute um endpoint com entrada nativa do provedor de dados, preparada a
        partir de Inspect. O Glasser verifica a Policy da sua API Key e reserva
        a cobrança máxima antes de criar um Run. Uma recusa não cria Run nem
        cobrança. Reutilize o mesmo Idempotency-Key e os mesmos parâmetros de
        execução para tentar novamente sem uma segunda execução.


        - **200:** o Run foi concluído. Verifique o status, a resposta do
        provedor de dados e a cobrança.

        - **202:** um Run assíncrono ainda está em andamento. Use Get Run para
        ler o resultado. Endpoints síncronos sempre retornam um Run concluído
        dentro do timeout_ms publicado.


        COMPLETED pode incluir um erro do provedor de dados; verifique
        provider_response. Status e cobrança são independentes: um Run FAILED
        pode ter uma cobrança.
      operationId: runs-create
      parameters:
        - name: idempotency-key
          in: header
          schema:
            type: string
            minLength: 1
            description: >-
              Gere um valor exclusivo para cada execução pretendida
              (recomenda-se um UUID). Tente novamente com a mesma chave e os
              mesmos parâmetros de execução para recuperar o Run original sem
              uma segunda cobrança. Alterar os parâmetros de execução usando a
              mesma chave retorna 409; alterar task_id ou metadata não atualiza
              o Run original.
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                provider:
                  type: string
                  pattern: ^[a-z0-9][a-z0-9-]*$
                endpoint:
                  type: string
                  pattern: ^\/.+$
                input:
                  type: object
                  description: >-
                    Entrada nativa do provedor de dados. Construa-a a partir de
                    input_schema retornado por Inspect.
                endpoint_version:
                  anyOf:
                    - type: integer
                      exclusiveMinimum: 0
                      description: >-
                        Selecione uma versão compatível ou omita-a para usar o
                        padrão. Atualizações compatíveis mantêm a versão;
                        versões indisponíveis ou descontinuadas retornam 409.
                        Uma versão não fixa o preço: novos Runs usam o preço no
                        momento da admissão, e Runs aceitos o mantêm até a
                        liquidação.
                    - type: 'null'
                task_id:
                  anyOf:
                    - type: string
                      description: >-
                        A tarefa à qual este Run pertence, obtida de uma
                        resposta de pesquisa do catálogo. Apenas agrupamento:
                        nunca afeta o roteamento, o preço ou a idempotência.
                    - type: 'null'
                metadata:
                  anyOf:
                    - anyOf:
                        - type: object
                          additionalProperties:
                            type: string
                            minLength: 1
                            maxLength: 500
                          maxProperties: 20
                          propertyNames:
                            type: string
                            pattern: ^[a-z][a-z0-9_]{0,39}$
                        - {}
                      description: >-
                        Campos de rastreamento opcionais, retornados no Run e
                        disponíveis como filtros. Eles nunca são enviados ao
                        provedor de dados nem afetam o roteamento, o preço ou a
                        idempotência.


                        - Até 20 chaves: letras minúsculas, dígitos e
                        sublinhados; comece com uma letra; no máximo 40
                        caracteres.

                        - Valores: strings de 1–500 caracteres.

                        - user_id: o ID opaco do seu usuário final, nunca o
                        endereço de e-mail ou o nome dele.


                        Entradas inválidas são descartadas integralmente, não
                        truncadas. A solicitação continua, e o Run retorna os
                        campos que foram armazenados.
                    - type: 'null'
              required:
                - provider
                - endpoint
              additionalProperties: false
        required: true
      responses:
        '200':
          description: 'um Run terminal: COMPLETED, FAILED ou STOPPED'
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  run_url:
                    type: string
                    description: Abra este Run no console. Requer associação ao Workspace.
                  provider:
                    type: string
                    pattern: ^[a-z0-9][a-z0-9-]*$
                  endpoint:
                    type: string
                    pattern: ^\/.+$
                  endpoint_version:
                    type: integer
                    exclusiveMinimum: 0
                  status:
                    type: string
                    enum:
                      - QUEUED
                      - RUNNING
                      - COMPLETED
                      - FAILED
                      - STOPPED
                    description: >-
                      QUEUED ou RUNNING: ainda em andamento. COMPLETED: uma
                      resposta do provedor de dados está disponível, inclusive
                      respostas não 2xx. FAILED: consulte `failure`. STOPPED:
                      interrompido antes do envio. Leia charge_usd separadamente
                      de status.
                  failure:
                    anyOf:
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - TIMED_OUT
                              - INTERNAL
                          message:
                            type: string
                        required:
                          - kind
                          - message
                        additionalProperties: false
                      - type: 'null'
                    description: >-
                      Motivo da falha do Run. Não nulo somente quando o status é
                      FAILED.
                  input:
                    type: object
                  output: {}
                  provider_response:
                    anyOf:
                      - type: object
                        properties:
                          http_status:
                            type: integer
                            minimum: 100
                            maximum: 599
                            description: >-
                              Status HTTP retornado pelo provedor de dados.
                              Verifique-o mesmo quando o Run estiver COMPLETED.
                          error:
                            anyOf:
                              - {}
                              - type: 'null'
                        required:
                          - http_status
                        additionalProperties: false
                      - type: 'null'
                    description: >-
                      Não nulo somente quando o status é COMPLETED.


                      - Para respostas 2xx, output contém JSON nativo do
                      provedor de dados (qualquer formato) ou nulo para um corpo
                      vazio.

                      - Para respostas não 2xx, error contém o corpo de erro do
                      provedor de dados e output é nulo.


                      Campos sensíveis são removidos de ambos os corpos.
                  charge_usd:
                    anyOf:
                      - type: string
                        pattern: ^(0|[1-9]\d*)\.(\d{2}|\d{2}\d{0,3}[1-9])$
                        description: >-
                          String decimal exata em USD (mínimo de 2 e máximo de 6
                          casas decimais, com uma única grafia canônica). Some
                          usando aritmética decimal ou escale por 10^6 — nunca
                          use números de ponto flutuante.
                      - type: 'null'
                    description: >-
                      Cobrança final como uma string decimal exata em USD. Nulo
                      enquanto QUEUED ou RUNNING. Um Run FAILED pode ter uma
                      cobrança diferente de zero conforme o preço do endpoint.
                  charge_basis:
                    anyOf:
                      - type: object
                        properties:
                          clause:
                            type: string
                            enum:
                              - rule
                              - NO_RESULT
                              - PROVIDER_ERROR
                              - TIMED_OUT
                              - INTERNAL
                          quantity:
                            anyOf:
                              - type: integer
                                minimum: 0
                              - type: 'null'
                        required:
                          - clause
                          - quantity
                        additionalProperties: false
                      - type: 'null'
                    description: >-
                      Cláusula de preço usada para calcular a cobrança. Nulo
                      antes da liquidação ou quando não houve tentativa com o
                      provedor de dados.
                  stoppable:
                    type: boolean
                    description: >-
                      Indica se uma solicitação de interrupção pode ser aceita
                      no momento. Isso não garante que o Run possa ser
                      interrompido antes do envio.
                  stop_requested_at:
                    anyOf:
                      - type: string
                        description: timestamp UTC ISO-8601
                        format: date-time
                      - type: 'null'
                    description: >-
                      Quando uma parada foi solicitada. O Run ainda pode
                      continuar se o dispatch já tiver começado.
                  created_at:
                    type: string
                    description: timestamp UTC ISO-8601
                    format: date-time
                  started_at:
                    anyOf:
                      - type: string
                        description: timestamp UTC ISO-8601
                        format: date-time
                      - type: 'null'
                  completed_at:
                    anyOf:
                      - type: string
                        description: timestamp UTC ISO-8601
                        format: date-time
                      - type: 'null'
                  task_id:
                    anyOf:
                      - type: string
                      - type: 'null'
                  metadata:
                    type: object
                    additionalProperties:
                      type: string
                      minLength: 1
                      maxLength: 500
                    maxProperties: 20
                    propertyNames:
                      type: string
                      pattern: ^[a-z][a-z0-9_]{0,39}$
                    description: >-
                      Seus campos de rastreamento armazenados. Use-os para
                      filtrar Runs. Eles nunca são enviados ao provedor de dados
                      nem afetam o roteamento, o preço ou a idempotência.


                      - Até 20 chaves: letras minúsculas, dígitos e sublinhados;
                      comece com uma letra; no máximo 40 caracteres.

                      - Valores: strings de 1–500 caracteres.

                      - user_id: o ID opaco do seu usuário final, nunca o
                      endereço de e-mail ou o nome dele.
                required:
                  - id
                  - run_url
                  - provider
                  - endpoint
                  - endpoint_version
                  - status
                  - failure
                  - input
                  - output
                  - provider_response
                  - charge_usd
                  - charge_basis
                  - stoppable
                  - stop_requested_at
                  - created_at
                  - started_at
                  - completed_at
                  - task_id
                  - metadata
                additionalProperties: false
        '202':
          description: 'um Run em andamento: QUEUED ou RUNNING'
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  run_url:
                    type: string
                    description: Abra este Run no console. Requer associação ao Workspace.
                  provider:
                    type: string
                    pattern: ^[a-z0-9][a-z0-9-]*$
                  endpoint:
                    type: string
                    pattern: ^\/.+$
                  endpoint_version:
                    type: integer
                    exclusiveMinimum: 0
                  status:
                    type: string
                    enum:
                      - QUEUED
                      - RUNNING
                      - COMPLETED
                      - FAILED
                      - STOPPED
                    description: >-
                      QUEUED ou RUNNING: ainda em andamento. COMPLETED: uma
                      resposta do provedor de dados está disponível, incluindo
                      respostas não 2xx. FAILED: consulte `failure`. STOPPED:
                      parado antes do dispatch. Leia charge_usd separadamente do
                      status.
                  failure:
                    anyOf:
                      - type: object
                        properties:
                          kind:
                            type: string
                            enum:
                              - TIMED_OUT
                              - INTERNAL
                          message:
                            type: string
                        required:
                          - kind
                          - message
                        additionalProperties: false
                      - type: 'null'
                    description: >-
                      Por que o Run falhou. Não nulo somente quando o status é
                      FAILED.
                  input:
                    type: object
                  output: {}
                  provider_response:
                    anyOf:
                      - type: object
                        properties:
                          http_status:
                            type: integer
                            minimum: 100
                            maximum: 599
                            description: >-
                              Status HTTP retornado pelo provedor de dados.
                              Verifique-o mesmo quando o Run estiver COMPLETED.
                          error:
                            anyOf:
                              - {}
                              - type: 'null'
                        required:
                          - http_status
                        additionalProperties: false
                      - type: 'null'
                    description: >-
                      Não nulo somente quando o status é COMPLETED.


                      - Para respostas 2xx, output contém JSON nativo do
                      provedor de dados (qualquer formato) ou null para um corpo
                      vazio.

                      - Para respostas não 2xx, error contém o corpo de erro do
                      provedor de dados e output é null.


                      Campos sensíveis são removidos de ambos os corpos.
                  charge_usd:
                    anyOf:
                      - type: string
                        pattern: ^(0|[1-9]\d*)\.(\d{2}|\d{2}\d{0,3}[1-9])$
                        description: >-
                          String decimal exata em USD (mínimo de 2 e máximo de 6
                          casas decimais, com uma única grafia canônica). Some
                          usando aritmética decimal ou faça a escala por 10^6 —
                          nunca use números de ponto flutuante.
                      - type: 'null'
                    description: >-
                      Cobrança final como uma string decimal exata em USD. Null
                      enquanto estiver QUEUED ou RUNNING. Um Run FAILED pode ter
                      uma cobrança diferente de zero conforme o preço do
                      endpoint.
                  charge_basis:
                    anyOf:
                      - type: object
                        properties:
                          clause:
                            type: string
                            enum:
                              - rule
                              - NO_RESULT
                              - PROVIDER_ERROR
                              - TIMED_OUT
                              - INTERNAL
                          quantity:
                            anyOf:
                              - type: integer
                                minimum: 0
                              - type: 'null'
                        required:
                          - clause
                          - quantity
                        additionalProperties: false
                      - type: 'null'
                    description: >-
                      Cláusula de preço usada para calcular a cobrança. Null
                      antes da liquidação ou quando nenhuma tentativa com o
                      provedor de dados foi feita.
                  stoppable:
                    type: boolean
                    description: >-
                      Indica se uma solicitação de parada pode ser aceita no
                      momento. Isso não garante que o Run possa parar antes do
                      dispatch.
                  stop_requested_at:
                    anyOf:
                      - type: string
                        description: timestamp UTC ISO-8601
                        format: date-time
                      - type: 'null'
                    description: >-
                      Quando uma parada foi solicitada. O Run ainda pode
                      continuar se o dispatch já tiver começado.
                  created_at:
                    type: string
                    description: timestamp UTC ISO-8601
                    format: date-time
                  started_at:
                    anyOf:
                      - type: string
                        description: timestamp UTC ISO-8601
                        format: date-time
                      - type: 'null'
                  completed_at:
                    anyOf:
                      - type: string
                        description: timestamp UTC ISO-8601
                        format: date-time
                      - type: 'null'
                  task_id:
                    anyOf:
                      - type: string
                      - type: 'null'
                  metadata:
                    type: object
                    additionalProperties:
                      type: string
                      minLength: 1
                      maxLength: 500
                    maxProperties: 20
                    propertyNames:
                      type: string
                      pattern: ^[a-z][a-z0-9_]{0,39}$
                    description: >-
                      Seus campos de rastreamento armazenados. Use-os para
                      filtrar Runs. Eles nunca são enviados ao provedor de dados
                      nem afetam o roteamento, o preço ou a idempotência.


                      - Até 20 chaves: letras minúsculas, dígitos e sublinhados;
                      comece com uma letra; no máximo 40 caracteres.

                      - Valores: strings de 1–500 caracteres.

                      - user_id: o ID opaco do seu usuário final, nunca o
                      endereço de e-mail ou o nome dele.
                required:
                  - id
                  - run_url
                  - provider
                  - endpoint
                  - endpoint_version
                  - status
                  - failure
                  - input
                  - output
                  - provider_response
                  - charge_usd
                  - charge_basis
                  - stoppable
                  - stop_requested_at
                  - created_at
                  - started_at
                  - completed_at
                  - task_id
                  - metadata
                additionalProperties: false
        '400':
          description: ValidationFailed | IdempotencyKeyRequired
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ValidationFailedEncoded'
                  - $ref: '#/components/schemas/IdempotencyKeyRequiredEncoded'
                  - $ref: '#/components/schemas/ValidationFailedEncoded'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedEncoded'
        '402':
          description: InsufficientBalance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsufficientBalanceEncoded'
        '403':
          description: EndpointNotPermitted | Forbidden
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/EndpointNotPermittedEncoded'
                  - $ref: '#/components/schemas/ForbiddenEncoded'
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundEncoded'
        '409':
          description: IdempotencyConflict | EndpointVersionMismatch
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/IdempotencyConflictEncoded'
                  - $ref: '#/components/schemas/EndpointVersionMismatchEncoded'
        '429':
          description: RateLimited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedEncoded'
        '503':
          description: ServiceUnavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableEncoded'
      security:
        - bearer: []
components:
  schemas:
    ValidationFailedEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - validation_failed
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    IdempotencyKeyRequiredEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - idempotency_key_required
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    UnauthorizedEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - unauthorized
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    InsufficientBalanceEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - insufficient_balance
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    EndpointNotPermittedEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - endpoint_not_permitted
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    ForbiddenEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - forbidden
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    NotFoundEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - not_found
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    IdempotencyConflictEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - idempotency_conflict
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    EndpointVersionMismatchEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - endpoint_version_mismatch
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    RateLimitedEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - rate_limited
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    ServiceUnavailableEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - service_unavailable
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
  securitySchemes:
    bearer:
      type: http
      scheme: Bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.