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

# List leaderboard runs for an eval suite

> Returns each ranking group's most recent completed runs for a suite in one request, with the group assignments in `groups`. A group is (model, targeted task) for task_ids-restricted runs and (model) for unrestricted runs (task_id null). Build boards from `groups`, not from run.models/run.task_ids — a returned run may name models or tasks whose groups it did not rank in. `truncated: true` means a server ceiling trimmed the aggregate; whole runs are kept in (best rank, first model, first task, id) order, so every group's newest runs survive before any group's fallbacks and no group is dropped for being old. Resume a truncated board by passing `next_cursor` back as `cursor` and unioning the responses. See the evals docs for grouping rationale and cost characteristics.



## OpenAPI

````yaml https://apigw.mka1.com/speakeasy.json get /api/v1/llm/evals/suites/{suite_id}/leaderboard-runs
openapi: 3.1.1
info:
  title: MKA1 API
  version: 1.1.0
  description: >-
    The MKA1 API is a RESTful API that provides access to the MKA1 platform.
    Learn how to get started with the API and the TypeScript SDK
    [here](https://mka1.apidocumentation.com/guides/getting-started).
  license:
    name: Proprietary
servers:
  - url: https://apigw.mka1.com
    description: MKA1 API Gateway
  - url: /
    description: Relative server URL (configurable via SDK constructor)
security: []
tags:
  - name: Resource Authorization
    description: >-
      Manage permissions for LLM resources. Create resources, grant/revoke
      permissions, and delete resources. Only resource owners can grant, revoke,
      or delete permissions.
    x-displayName: Resource Authorization
  - name: Embeddings
    description: >-
      Text embedding API endpoints for generating vector representations of
      text. Create semantic embeddings for search, clustering, and similarity
      matching using various embedding models.
    x-displayName: Embeddings
  - name: Feedback
    description: >-
      User feedback API for rating and commenting on chat completions. Collect
      thumbs up/down ratings and detailed feedback to improve model responses
      and track user satisfaction.
    x-displayName: Feedback
  - name: Images
    description: >-
      Image generation API endpoints for creating images from text descriptions.
      Generate images with control over size, quality, and style.
    x-displayName: Images
  - name: MCP Vault
    description: >-
      MCP vault API for storing user-owned MCP server configurations and
      encrypted credentials. Agents reference vault IDs so secrets are resolved
      only at tool execution time.
    x-displayName: MCP Vault
  - name: Speech
    description: >-
      Speech API endpoints for audio processing. Convert text to
      natural-sounding speech (TTS) or transcribe speech to text (STT) in
      different languages.
    x-displayName: Speech
  - name: Usage
    description: >-
      Usage tracking and analytics API for monitoring token consumption, request
      counts, and cost analysis. View detailed statistics per user, model, and
      time period.
    x-displayName: Usage
  - name: Extract
    description: >-
      Structured data extraction API for extracting information from files.
      Define JSON schemas to extract structured data from images, PDFs, and
      documents. Supports reusable schema templates.
    x-displayName: Extract
  - name: Text Classification
    description: >-
      Text classification API for categorizing text into predefined labels. Use
      AI models to classify text content for sentiment analysis, topic
      categorization, and content moderation.
    x-displayName: Text Classification
  - name: Responses
    description: >-
      Agent-powered responses API for creating AI agents with autonomous tool
      usage. Build conversational assistants that can use web search, file
      operations, image generation, code execution, computer use simulation, and
      MCP integrations. Supports background processing, streaming, and real-time
      status tracking.
    x-displayName: Responses
  - name: Files
    description: >-
      File management API for uploading, storing, and managing files with
      automatic expiration and S3 integration. Upload files that can be used
      with Assistants, Vector Stores, and other features. Files are stored in S3
      with metadata tracked in PostgreSQL. Supports automatic cleanup of expired
      files.
    x-displayName: Files
  - name: Vector Stores
    description: >-
      Vector store API for storing and searching documents using embeddings.
      Create vector stores, upload files with automatic chunking and embedding
      generation, and perform semantic search. Files are processed
      asynchronously using Temporal workflows for durability. Supports automatic
      cleanup of expired stores and LanceDB for efficient vector storage.
    x-displayName: Vector Stores
  - name: Conversations
    description: >-
      Conversation management API for storing and retrieving conversation state
      across Response API calls. Create conversations, add items (user messages,
      assistant messages, system messages), and maintain conversation history.
      Supports metadata tracking and multi-turn dialogue state management.
    x-displayName: Conversations
  - name: Guardrails
    description: >-
      AI safety guardrails API for configuring content moderation and security
      policies. Set up ban word lists, prompt injection detection, and system
      prompt leakage prevention. Guardrails apply to all requests from an
      account and can be tested before deployment.
    x-displayName: Guardrails
  - name: Models
    description: >-
      Model listing API for discovering available models. Returns model IDs,
      ownership, and metadata for all registered models in the gateway.
    x-displayName: Models
  - name: Skills
    description: >-
      Skills API for managing versioned bundles of instructions and files
      following the Agent Skills standard. Create, version, and download
      reusable skill packages that include SKILL.md manifests for agent
      environments.
    x-displayName: Skills
  - name: Chat Completions
    description: >-
      **Deprecated: Use the Responses API (`/api/v1/llm/responses`) instead.**
      Chat completion endpoints with support for streaming, tool calls, and
      multiple providers.
    x-deprecated: true
    x-displayName: Chat Completions
  - name: Batches
    x-displayName: Batches
  - name: Evals
    x-displayName: Evals
  - name: Fine-Tuning
    x-displayName: Fine-Tuning
  - name: Memory Stores
    x-displayName: Memory Stores
  - name: Prompts
    x-displayName: Prompts
  - name: API Key
    x-displayName: API Key
  - name: Organization
    x-displayName: Organization
  - name: Cluster Admin
    x-displayName: Cluster Admin
  - name: Sessions
    description: Create, inspect, access, and terminate sandbox sessions.
    x-displayName: Sessions
  - name: Browser
    description: >-
      Connect to browser sessions through the gateway port proxy. Browser
      sessions expose a Chrome DevTools Protocol endpoint on port 9222.
    x-displayName: Browser
  - name: Execution
    description: Run shell commands and code inside an existing sandbox session.
    x-displayName: Execution
  - name: Workspace
    description: >-
      Inspect the workspace manifest, transfer files or archives, and download
      generated artifacts.
    x-displayName: Workspace
  - name: Sandbox Usage
    description: >-
      Aggregate sandbox usage statistics across sessions, execution, and
      workspace operations.
    x-displayName: Sandbox Usage
  - name: Sandbox Pricing
    description: >-
      Cluster-admin management of the sandbox compute rate card used for
      budgeted spend.
    x-displayName: Sandbox Pricing
  - name: Agents
    description: Create and manage reusable agent definitions.
    x-displayName: Agents
  - name: Agent Versions
    description: Inspect an agent's configuration history and roll back to a prior version.
    x-displayName: Agent Versions
  - name: Agent Runs
    description: Execute saved agents and inspect persisted run results.
    x-displayName: Agent Runs
  - name: Agent Connectors
    description: >-
      Connect saved agents to external messaging channels such as Telegram,
      including text, photo, and supported document exchange.
    x-displayName: Agent Connectors
  - name: Agent Schedules
    description: Create and manage scheduled or recurring saved agent runs.
    x-displayName: Agent Schedules
  - name: schema-4_other
    x-displayName: other
  - name: Budgets
    x-displayName: Budgets
  - name: Settings
    x-displayName: Settings
  - name: Compute Jobs
    x-displayName: Compute Jobs
  - name: Compute Services
    x-displayName: Compute Services
  - name: Compute Catalog
    x-displayName: Compute Catalog
  - name: Compute Secrets
    x-displayName: Compute Secrets
  - name: Compute Usage
    x-displayName: Compute Usage
  - name: Compute Tenants
    x-displayName: Compute Tenants
  - description: Create, list, read, update, and delete repositories.
    name: Repositories
    x-displayName: Repositories
  - description: Manage a repository's explicit collaborators (readers/writers).
    name: Collaborators
    x-displayName: Collaborators
paths:
  /api/v1/llm/evals/suites/{suite_id}/leaderboard-runs:
    get:
      tags:
        - Evals
      summary: List leaderboard runs for an eval suite
      description: >-
        Returns each ranking group's most recent completed runs for a suite in
        one request, with the group assignments in `groups`. A group is (model,
        targeted task) for task_ids-restricted runs and (model) for unrestricted
        runs (task_id null). Build boards from `groups`, not from
        run.models/run.task_ids — a returned run may name models or tasks whose
        groups it did not rank in. `truncated: true` means a server ceiling
        trimmed the aggregate; whole runs are kept in (best rank, first model,
        first task, id) order, so every group's newest runs survive before any
        group's fallbacks and no group is dropped for being old. Resume a
        truncated board by passing `next_cursor` back as `cursor` and unioning
        the responses. See the evals docs for grouping rationale and cost
        characteristics.
      operationId: listEvalSuiteLeaderboardRuns
      parameters:
        - name: suite_id
          in: path
          required: true
          schema:
            type: string
          example: eval_suite_aa87e2b1112a455b8deabed784372198
        - name: suite_version
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 2147483647
            description: >-
              Narrow the ranking to runs recorded against one version of the
              suite. Scores are only comparable within a version, so leaderboard
              consumers should pass the version they score. A version the suite
              does not have returns an empty list, not 404, so it reads the same
              as a version with no completed runs yet.
          allowEmptyValue: true
          example: 1
        - name: per_group
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 20
            default: 5
            description: >-
              How many most-recent completed runs to keep per ranking group. A
              group is (model, targeted task) for task_ids-restricted runs —
              historical imports commit one run per model and task, so their
              boards assemble at per_group=1 — and (model) for unrestricted
              runs, which cover every task of their version. More than 1 lets a
              consumer fall back to an earlier run for a task whose newest run
              lacks usable stats.
          allowEmptyValue: true
          example: 5
        - name: model
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 255
            description: >-
              Narrow the ranking to one model's groups. Useful when the consumer
              already knows its board axes; for discovering and paging past a
              truncated response, use cursor/next_cursor. An empty value is
              rejected rather than treated as omitted.
          allowEmptyValue: true
          example: meetkai:qwen3.5-35b-a3b
        - name: cursor
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 2048
            description: >-
              Opaque resume cursor from a previous truncated response's
              next_cursor. Continues the ranking exactly where the previous page
              stopped — inside a model or a rank tier when that is where the cut
              landed. Pass it back verbatim; a malformed value is a 400. Page
              with a fixed filter set, like the run-list cursor.
          allowEmptyValue: true
        - name: X-On-Behalf-Of
          in: header
          required: false
          schema:
            type: string
          description: Optional external end-user identifier forwarded by the API gateway.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    const: eval.leaderboard_runs
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        object:
                          const: eval.run
                        suite_id:
                          type: string
                        suite_version:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        suite_version_id:
                          type: string
                        status:
                          $ref: '#/components/schemas/EvalRunStatus'
                        models:
                          type: array
                          items:
                            type: string
                        task_ids:
                          anyOf:
                            - type: array
                              items:
                                type: string
                            - type: 'null'
                        judge_model:
                          anyOf:
                            - type: string
                            - type: 'null'
                        embedding_model:
                          anyOf:
                            - type: string
                            - type: 'null'
                        generation:
                          type: object
                          properties:
                            instructions:
                              type: string
                            temperature:
                              type: number
                              minimum: 0
                              maximum: 2
                            top_p:
                              type: number
                              minimum: 0
                              maximum: 1
                            max_output_tokens:
                              type: integer
                              minimum: 1
                              maximum: 9007199254740991
                            max_gen_toks:
                              type: integer
                              minimum: 1
                              maximum: 9007199254740991
                              description: lm-eval alias for max_output_tokens.
                            stop:
                              anyOf:
                                - type: string
                                - type: array
                                  minItems: 1
                                  items:
                                    type: string
                            until:
                              type: array
                              minItems: 1
                              items:
                                type: string
                              description: lm-eval generate_until stop sequences.
                            max_tool_calls:
                              type: integer
                              minimum: 1
                              maximum: 9007199254740991
                            reasoning: {}
                            text: {}
                            tools:
                              type: array
                              items:
                                anyOf:
                                  - {}
                                  - type: 'null'
                            tool_choice: {}
                            parallel_tool_calls:
                              type: boolean
                            truncation:
                              enum:
                                - auto
                                - disabled
                              type: string
                            service_tier:
                              enum:
                                - auto
                                - default
                                - flex
                                - priority
                              type: string
                            presence_penalty:
                              type: number
                              minimum: -2
                              maximum: 2
                            frequency_penalty:
                              type: number
                              minimum: -2
                              maximum: 2
                            top_k:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            min_p:
                              type: number
                              minimum: 0
                              maximum: 1
                            repetition_penalty:
                              type: number
                              minimum: 0
                            do_sample:
                              type: boolean
                            extra_body:
                              type: object
                              propertyNames:
                                type: string
                              additionalProperties: {}
                            chat_template_kwargs:
                              type: object
                              propertyNames:
                                type: string
                              additionalProperties: {}
                            prefill_think:
                              anyOf:
                                - type: boolean
                                - type: string
                            use_cache:
                              type: boolean
                            timeout_seconds:
                              type: integer
                              minimum: 1
                              maximum: 3600
                            max_retries:
                              type: integer
                              minimum: 0
                              maximum: 10
                            max_empty_retries:
                              type: integer
                              minimum: 0
                              maximum: 10
                          additionalProperties: {}
                        request_counts:
                          type: object
                          properties:
                            total:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            completed:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            failed:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                          required:
                            - total
                            - completed
                            - failed
                        metrics:
                          anyOf:
                            - type: object
                              propertyNames:
                                type: string
                              additionalProperties: {}
                            - type: 'null'
                        error:
                          anyOf:
                            - type: object
                              propertyNames:
                                type: string
                              additionalProperties: {}
                            - type: 'null'
                        artifact_file_ids:
                          type: array
                          items:
                            type: string
                        metadata:
                          type: object
                          propertyNames:
                            type: string
                            maxLength: 64
                          additionalProperties:
                            type: string
                            maxLength: 512
                        created_at:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        started_at:
                          anyOf:
                            - type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            - type: 'null'
                        completed_at:
                          anyOf:
                            - type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            - type: 'null'
                        cancelled_at:
                          anyOf:
                            - type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            - type: 'null'
                        failed_at:
                          anyOf:
                            - type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            - type: 'null'
                      required:
                        - id
                        - object
                        - suite_id
                        - suite_version
                        - suite_version_id
                        - status
                        - models
                        - task_ids
                        - judge_model
                        - embedding_model
                        - generation
                        - request_counts
                        - metrics
                        - error
                        - artifact_file_ids
                        - metadata
                        - created_at
                        - started_at
                        - completed_at
                        - cancelled_at
                        - failed_at
                    description: The deduplicated runs behind `groups`, newest first.
                  groups:
                    type: array
                    items:
                      $ref: '#/components/schemas/EvalLeaderboardRunGroup'
                    description: >-
                      The server's group assignments — build boards from these,
                      not from run.models/run.task_ids. Ordered by model, then
                      task id with the covers-everything group first within each
                      model, then rank; that ordering is contract.
                  truncated:
                    type: boolean
                    description: >-
                      True when a server ceiling trimmed the aggregate. Whole
                      runs are kept in (rank, model, task) order — never dropped
                      for being old; resume with `cursor: next_cursor`.
                  next_cursor:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: >-
                      Set when truncated: pass as `cursor` on the next request
                      and union the responses until truncated is false to
                      assemble the complete aggregate. Null when this response
                      is complete.
                required:
                  - object
                  - data
                  - groups
                  - truncated
                  - next_cursor
              example:
                object: eval.leaderboard_runs
                data:
                  - id: eval_run_aa87e2b1112a455b8deabed784372198
                    object: eval.run
                    suite_id: eval_suite_aa87e2b1112a455b8deabed784372198
                    suite_version: 1
                    suite_version_id: eval_sver_aa87e2b1112a455b8deabed784372198
                    status: in_progress
                    models:
                      - auto
                    task_ids: null
                    judge_model: auto
                    embedding_model: auto
                    generation:
                      temperature: 0
                      max_output_tokens: 512
                    request_counts:
                      total: 100
                      completed: 10
                      failed: 0
                    metrics: null
                    error: null
                    artifact_file_ids: []
                    metadata:
                      purpose: mvp
                    created_at: 1704067200
                    started_at: 1704067210
                    completed_at: null
                    cancelled_at: null
                    failed_at: null
                groups:
                  - model: meetkai:qwen3.5-35b-a3b
                    task_id: null
                    rank: 1
                    run_id: eval_run_aa87e2b1112a455b8deabed784372198
                truncated: false
                next_cursor: null
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python (SDK)
          source: |-
            from meetkai_mka1 import SDK


            with SDK(
                bearer_auth="<YOUR_BEARER_TOKEN_HERE>",
            ) as sdk:

                res = sdk.llm.evals.list_suite_leaderboard_runs(suite_id="eval_suite_aa87e2b1112a455b8deabed784372198", suite_version=1, per_group=5, model="meetkai:qwen3.5-35b-a3b")

                # Handle response
                print(res)
        - lang: typescript
          label: Typescript (SDK)
          source: |-
            import { SDK } from "@meetkai/mka1";

            const sdk = new SDK({
              bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
            });

            async function run() {
              const result = await sdk.llm.evals.listSuiteLeaderboardRuns({
                suiteId: "eval_suite_aa87e2b1112a455b8deabed784372198",
                suiteVersion: 1,
                model: "meetkai:qwen3.5-35b-a3b",
              });

              console.log(result);
            }

            run();
        - lang: csharp
          label: CSharp (SDK)
          source: >-
            using MeetKai.MKA1;

            using MeetKai.MKA1.Types.Components;

            using MeetKai.MKA1.Types.Requests;


            var sdk = new SDK(bearerAuth: "<YOUR_BEARER_TOKEN_HERE>");


            ListEvalSuiteLeaderboardRunsRequest req = new
            ListEvalSuiteLeaderboardRunsRequest() {
                SuiteId = "eval_suite_aa87e2b1112a455b8deabed784372198",
                SuiteVersion = 1,
                Model = "meetkai:qwen3.5-35b-a3b",
            };


            var res = await sdk.Llm.Evals.ListSuiteLeaderboardRunsAsync(req);


            // handle response
components:
  schemas:
    EvalRunStatus:
      enum:
        - queued
        - in_progress
        - finalizing
        - completed
        - failed
        - cancelling
        - cancelled
      type: string
    EvalLeaderboardRunGroup:
      type: object
      properties:
        model:
          type: string
          description: The group's model.
        task_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The group's targeted task, or null for the per-model
            covers-everything group that unrestricted runs (no task_ids) rank in
            — those runs cover every task of their version.
        rank:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          description: >-
            1 is the group's newest completed run. Ranks order runs within a
            group but are not slot indexes: under truncation a group's surviving
            ranks may be non-contiguous.
        run_id:
          type: string
          description: The run holding this rank; the full run object is in `data`.
      required:
        - model
        - task_id
        - rank
        - run_id
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Gateway auth: send `Authorization: Bearer <mka1-api-key>`. For
        multi-user server-side integrations, you can also send `X-On-Behalf-Of:
        <external-user-id>`.

````