Trajectory Tcli API

The tcli API from Trajectory — 5 operation(s) for tcli.

Operations 5

GET /api/v1/tcli/clusters List Tcli Clusters #
GET /api/v1/tcli/clusters/{cluster_profile}/overview Get Tcli Cluster Overview #
GET /api/v1/tcli/clusters/{cluster_profile} Get Tcli Cluster #
GET /api/v1/tcli/costs Get Tcli Costs #
POST /api/v1/tcli/clusters/{cluster_profile}/reservations Create Tcli Reservation #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/trajectory:trajectory-tcli-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

trajectory-tcli-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Trajectory Tcli API
  version: 0.1.0
  x-trajectory-api-version: '2026-10-14'
  description: This contract is API version 2026-10-14. The optional Trajectory-API-Version header pins it, and tmp-contract is accepted as an alias. Requests without the header get this version. Version 2026-10-07 and the pre-launch legacy response formats are retired.
tags:
- name: tcli
paths:
  /api/v1/tcli/clusters:
    get:
      tags:
      - tcli
      summary: List Tcli Clusters
      operationId: listTcliClusters
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TcliClusterListResponse'
      x-trajectory-visibility: browser
  /api/v1/tcli/clusters/{cluster_profile}/overview:
    get:
      tags:
      - tcli
      summary: Get Tcli Cluster Overview
      operationId: getTcliClusterOverview
      parameters:
      - name: cluster_profile
        in: path
        required: true
        schema:
          type: string
          title: Cluster Profile
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TcliClusterOverview'
      x-trajectory-visibility: browser
  /api/v1/tcli/clusters/{cluster_profile}:
    get:
      tags:
      - tcli
      summary: Get Tcli Cluster
      operationId: getTcliCluster
      parameters:
      - name: cluster_profile
        in: path
        required: true
        schema:
          type: string
          title: Cluster Profile
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TcliClusterStatus'
      x-trajectory-visibility: browser
  /api/v1/tcli/costs:
    get:
      tags:
      - tcli
      summary: Get Tcli Costs
      operationId: getTcliCosts
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TcliCostDashboard'
      x-trajectory-visibility: browser
  /api/v1/tcli/clusters/{cluster_profile}/reservations:
    post:
      tags:
      - tcli
      summary: Create Tcli Reservation
      operationId: createTcliReservation
      parameters:
      - name: cluster_profile
        in: path
        required: true
        schema:
          type: string
          title: Cluster Profile
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TcliReservationRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TcliReservationResponse'
      x-trajectory-visibility: browser
components:
  schemas:
    TcliClusterSummary:
      properties:
        total:
          type: integer
          title: Total
        ready:
          type: integer
          title: Ready
        unhealthy:
          type: integer
          title: Unhealthy
        busy:
          type: integer
          title: Busy
        reserved:
          type: integer
          title: Reserved
        queued:
          type: integer
          title: Queued
        gpu_total:
          type: integer
          title: Gpu Total
        gpu_used:
          type: integer
          title: Gpu Used
        gpu_free:
          type: integer
          title: Gpu Free
        gpu_nodes_total:
          type: integer
          title: Gpu Nodes Total
        gpu_nodes_idle:
          type: integer
          title: Gpu Nodes Idle
        gpu_nodes_partial:
          type: integer
          title: Gpu Nodes Partial
        gpu_nodes_full:
          type: integer
          title: Gpu Nodes Full
      type: object
      required:
      - total
      - ready
      - unhealthy
      - busy
      - reserved
      - queued
      - gpu_total
      - gpu_used
      - gpu_free
      - gpu_nodes_total
      - gpu_nodes_idle
      - gpu_nodes_partial
      - gpu_nodes_full
      title: TcliClusterSummary
    TcliPodSummary:
      properties:
        name:
          type: string
          title: Name
        node:
          anyOf:
          - type: string
          - type: 'null'
          title: Node
        phase:
          anyOf:
          - type: string
          - type: 'null'
          title: Phase
        cpu_requested_millis:
          type: integer
          title: Cpu Requested Millis
        memory_requested_bytes:
          type: integer
          title: Memory Requested Bytes
      type: object
      required:
      - name
      - node
      - phase
      - cpu_requested_millis
      - memory_requested_bytes
      title: TcliPodSummary
    TcliBackendCompletionTotalsPoint:
      properties:
        time:
          type: string
          title: Time
        tcli_completed:
          type: integer
          title: Tcli Completed
        tinker_completed:
          type: integer
          title: Tinker Completed
      type: object
      required:
      - time
      - tcli_completed
      - tinker_completed
      title: TcliBackendCompletionTotalsPoint
    TcliJobWaitEvent:
      properties:
        xid:
          type: string
          title: Xid
        job_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Job Name
        finished_at:
          type: string
          title: Finished At
        wait_minutes:
          type: number
          title: Wait Minutes
      type: object
      required:
      - xid
      - job_name
      - finished_at
      - wait_minutes
      title: TcliJobWaitEvent
    TcliClusterListResponse:
      properties:
        clusters:
          items:
            $ref: '#/components/schemas/TcliClusterOverview'
          type: array
          title: Clusters
        collected_at:
          type: string
          title: Collected At
      type: object
      required:
      - clusters
      - collected_at
      title: TcliClusterListResponse
    TcliReservationResult:
      properties:
        model_service_id:
          type: string
          title: Model Service Id
        node:
          type: string
          title: Node
        namespace:
          type: string
          title: Namespace
        service_status:
          type: string
          enum:
          - ready
          - unhealthy
          - busy
          title: Service Status
        service_pool:
          type: string
          enum:
          - shared
          - reserved
          title: Service Pool
        deployed_by:
          type: string
          title: Deployed By
      type: object
      required:
      - model_service_id
      - node
      - namespace
      - service_status
      - service_pool
      - deployed_by
      title: TcliReservationResult
    TcliCostDashboard:
      properties:
        points:
          items:
            $ref: '#/components/schemas/TcliCostPoint'
          type: array
          title: Points
        tinker_total_usd:
          type: number
          title: Tinker Total Usd
        tcli_capacity_total_usd:
          type: number
          title: Tcli Capacity Total Usd
        tcli_usage_total_usd:
          type: number
          title: Tcli Usage Total Usd
      type: object
      required:
      - points
      - tinker_total_usd
      - tcli_capacity_total_usd
      - tcli_usage_total_usd
      title: TcliCostDashboard
    TcliJobSummary:
      properties:
        model_service_id:
          type: string
          title: Model Service Id
        model_name:
          type: string
          title: Model Name
        k8s_model_label:
          type: string
          title: K8S Model Label
        namespace:
          type: string
          title: Namespace
        cluster_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Cluster Name
        base_url:
          type: string
          title: Base Url
        base_url_healthy:
          type: boolean
          title: Base Url Healthy
        service_status:
          type: string
          enum:
          - ready
          - unhealthy
          - busy
          title: Service Status
        service_pool:
          type: string
          enum:
          - shared
          - reserved
          title: Service Pool
        deployment_priority:
          anyOf:
          - type: string
          - type: 'null'
          title: Deployment Priority
        tcli_training_engine:
          type: string
          enum:
          - skyrl
          - miles
          - unknown
          title: Tcli Training Engine
        service_xid:
          anyOf:
          - type: string
          - type: 'null'
          title: Service Xid
        no_active_xid_since:
          anyOf:
          - type: integer
          - type: 'null'
          title: No Active Xid Since
        ttl:
          anyOf:
          - type: integer
          - type: 'null'
          title: Ttl
        num_consecutive_successful_hello_samples:
          anyOf:
          - type: integer
          - type: 'null'
          title: Num Consecutive Successful Hello Samples
        lora_slots:
          type: integer
          title: Lora Slots
        lora_in_use:
          type: integer
          title: Lora In Use
        lora_holders:
          items:
            type: string
          type: array
          title: Lora Holders
        user:
          anyOf:
          - type: string
          - type: 'null'
          title: User
        deployed_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Deployed By
        deployed_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Deployed At
        eta_minutes_remaining:
          anyOf:
          - type: number
          - type: 'null'
          title: Eta Minutes Remaining
        eta_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Eta At
        total_steps:
          anyOf:
          - type: number
          - type: 'null'
          title: Total Steps
        current_steps:
          anyOf:
          - type: number
          - type: 'null'
          title: Current Steps
        last_step_time:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Step Time
        metric_values:
          additionalProperties:
            anyOf:
            - type: number
            - type: 'null'
          type: object
          title: Metric Values
        pods:
          items:
            $ref: '#/components/schemas/TcliPodSummary'
          type: array
          title: Pods
        nodes:
          items:
            type: string
          type: array
          title: Nodes
        xm_job:
          anyOf:
          - $ref: '#/components/schemas/TcliXmJobRef'
          - type: 'null'
      type: object
      required:
      - model_service_id
      - model_name
      - k8s_model_label
      - namespace
      - cluster_name
      - base_url
      - base_url_healthy
      - service_status
      - service_pool
      - deployment_priority
      - tcli_training_engine
      - service_xid
      - no_active_xid_since
      - ttl
      - num_consecutive_successful_hello_samples
      - lora_slots
      - lora_in_use
      - lora_holders
      - user
      - deployed_by
      - deployed_at
      - eta_minutes_remaining
      - eta_at
      - total_steps
      - current_steps
      - last_step_time
      - metric_values
      - pods
      - nodes
      - xm_job
      title: TcliJobSummary
    TcliClusterOverview:
      properties:
        cluster_name:
          type: string
          title: Cluster Name
        cluster_provider_name:
          type: string
          title: Cluster Provider Name
        node_type:
          type: string
          title: Node Type
        scheduler_namespace:
          type: string
          title: Scheduler Namespace
        summary:
          anyOf:
          - $ref: '#/components/schemas/TcliClusterSummary'
          - type: 'null'
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
      type: object
      required:
      - cluster_name
      - cluster_provider_name
      - node_type
      - scheduler_namespace
      - summary
      - error
      title: TcliClusterOverview
    TcliMetricPoint:
      properties:
        bucket_start:
          type: string
          title: Bucket Start
        all_available_nodes:
          type: number
          title: All Available Nodes
        all_free_nodes:
          type: number
          title: All Free Nodes
        all_busy_nodes:
          type: number
          title: All Busy Nodes
        all_unavailable_nodes:
          type: number
          title: All Unavailable Nodes
        production_queue_length:
          type: number
          title: Production Queue Length
        completion_mean_minutes:
          type: number
          title: Completion Mean Minutes
        completion_stddev_minutes:
          type: number
          title: Completion Stddev Minutes
        completed_jobs:
          type: integer
          title: Completed Jobs
        wait_mean_minutes:
          type: number
          title: Wait Mean Minutes
        wait_stddev_minutes:
          type: number
          title: Wait Stddev Minutes
        waited_jobs:
          type: integer
          title: Waited Jobs
      type: object
      required:
      - bucket_start
      - all_available_nodes
      - all_free_nodes
      - all_busy_nodes
      - all_unavailable_nodes
      - production_queue_length
      - completion_mean_minutes
      - completion_stddev_minutes
      - completed_jobs
      - wait_mean_minutes
      - wait_stddev_minutes
      - waited_jobs
      title: TcliMetricPoint
    TcliWaiterSummary:
      properties:
        xid:
          type: string
          title: Xid
        model:
          type: string
          title: Model
        job_kind:
          type: string
          title: Job Kind
        job_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Job Name
        user:
          anyOf:
          - type: string
          - type: 'null'
          title: User
        eta_minutes_remaining:
          anyOf:
          - type: number
          - type: 'null'
          title: Eta Minutes Remaining
        eta_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Eta At
        total_steps:
          anyOf:
          - type: number
          - type: 'null'
          title: Total Steps
        current_steps:
          anyOf:
          - type: number
          - type: 'null'
          title: Current Steps
        last_step_time:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Step Time
        allocated_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Allocated At
        queued_seconds:
          anyOf:
          - type: number
          - type: 'null'
          title: Queued Seconds
        status:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
        queued_at:
          type: string
          title: Queued At
        heartbeat:
          type: string
          title: Heartbeat
        waiting_seconds:
          type: integer
          title: Waiting Seconds
      type: object
      required:
      - xid
      - model
      - job_kind
      - job_name
      - user
      - eta_minutes_remaining
      - eta_at
      - total_steps
      - current_steps
      - last_step_time
      - allocated_at
      - queued_seconds
      - status
      - queued_at
      - heartbeat
      - waiting_seconds
      title: TcliWaiterSummary
    TcliReservationResponse:
      properties:
        success:
          type: boolean
          title: Success
        message:
          type: string
          title: Message
        reservation:
          $ref: '#/components/schemas/TcliReservationResult'
      type: object
      required:
      - success
      - message
      - reservation
      title: TcliReservationResponse
    TcliCompletedJob:
      properties:
        xid:
          type: string
          title: Xid
        job_name:
          type: string
          title: Job Name
        user:
          anyOf:
          - type: string
          - type: 'null'
          title: User
        experiment:
          anyOf:
          - type: string
          - type: 'null'
          title: Experiment
        mode:
          type: string
          enum:
          - tcli
          - tinker
          - unknown
          title: Mode
        started_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Started At
        finished_at:
          type: string
          title: Finished At
        runtime_minutes:
          type: number
          title: Runtime Minutes
        node_names:
          items:
            type: string
          type: array
          title: Node Names
        status:
          type: string
          title: Status
      type: object
      required:
      - xid
      - job_name
      - user
      - experiment
      - mode
      - started_at
      - finished_at
      - runtime_minutes
      - node_names
      - status
      title: TcliCompletedJob
    TcliXmJobRef:
      properties:
        job_name:
          type: string
          title: Job Name
        experiment:
          anyOf:
          - type: string
          - type: 'null'
          title: Experiment
        status:
          type: string
          enum:
          - running
          - pending
          - succeeded
          - failed
          - unknown
          title: Status
        age_seconds:
          anyOf:
          - type: integer
          - type: 'null'
          title: Age Seconds
        created_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Created At
        started_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Started At
        completed_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Completed At
        node_names:
          items:
            type: string
          type: array
          title: Node Names
      type: object
      required:
      - job_name
      - experiment
      - status
      - age_seconds
      - created_at
      - started_at
      - completed_at
      - node_names
      title: TcliXmJobRef
    TcliOccupant:
      properties:
        name:
          type: string
          title: Name
        namespace:
          type: string
          title: Namespace
        kind:
          type: string
          enum:
          - tcli_endpoint
          - xm_runner
          - other
          title: Kind
        gpu_requested:
          type: integer
          title: Gpu Requested
        phase:
          anyOf:
          - type: string
          - type: 'null'
          title: Phase
        model_service_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Model Service Id
        model_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Model Name
        job_or_service_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Job Or Service Name
        cluster_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Cluster Name
        service_status:
          anyOf:
          - type: string
            enum:
            - ready
            - unhealthy
            - busy
          - type: 'null'
          title: Service Status
        service_pool:
          anyOf:
          - type: string
            enum:
            - shared
            - reserved
          - type: 'null'
          title: Service Pool
        xid:
          anyOf:
          - type: string
          - type: 'null'
          title: Xid
        xm_job_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Xm Job Name
        experiment:
          anyOf:
          - type: string
          - type: 'null'
          title: Experiment
      type: object
      required:
      - name
      - namespace
      - kind
      - gpu_requested
      - phase
      - model_service_id
      - model_name
      - job_or_service_name
      - cluster_name
      - service_status
      - service_pool
      - xid
      - xm_job_name
      - experiment
      title: TcliOccupant
    TcliCostPoint:
      properties:
        date:
          type: string
          title: Date
        tinker_usd:
          type: number
          title: Tinker Usd
        tcli_capacity_usd:
          type: number
          title: Tcli Capacity Usd
        tcli_usage_usd:
          type: number
          title: Tcli Usage Usd
        tcli_usage_by_cluster:
          additionalProperties:
            type: number
          type: object
          title: Tcli Usage By Cluster
        tcli_utilization_pct:
          type: number
          title: Tcli Utilization Pct
        tcli_utilization_by_cluster:
          additionalProperties:
            type: number
          type: object
          title: Tcli Utilization By Cluster
      type: object
      required:
      - date
      - tinker_usd
      - tcli_capacity_usd
      - tcli_usage_usd
      - tcli_usage_by_cluster
      - tcli_utilization_pct
      - tcli_utilization_by_cluster
      title: TcliCostPoint
    TcliJobCompletionEvent:
      properties:
        xid:
          type: string
          title: Xid
        job_name:
          type: string
          title: Job Name
        finished_at:
          type: string
          title: Finished At
        runtime_minutes:
          type: number
          title: Runtime Minutes
      type: object
      required:
      - xid
      - job_name
      - finished_at
      - runtime_minutes
      title: TcliJobCompletionEvent
    TcliReservationRequest:
      properties:
        node:
          type: string
          minLength: 1
          title: Node
      type: object
      required:
      - node
      title: TcliReservationRequest
    TcliNodeSummary:
      properties:
        name:
          type: string
          title: Name
        ready:
          type: boolean
          title: Ready
        unschedulable:
          type: boolean
          title: Unschedulable
        gpu_allocatable:
          type: integer
          title: Gpu Allocatable
        gpu_requested:
          type: integer
          title: Gpu Requested
        gpu_free:
          type: integer
          title: Gpu Free
        occupants:
          items:
            $ref: '#/components/schemas/TcliOccupant'
          type: array
          title: Occupants
        node_state:
          type: string
          enum:
          - free
          - claimed
          - occupied
          title: Node State
        cluster_names:
          items:
            type: string
          type: array
          title: Cluster Names
        taints:
          items:
            type: string
          type: array
          title: Taints
        taint_user:
          anyOf:
          - type: string
          - type: 'null'
          title: Taint User
        has_tcli_endpoint:
          type: boolean
          title: Has Tcli Endpoint
        is_idle:
          type: boolean
          title: Is Idle
      type: object
      required:
      - name
      - ready
      - unschedulable
      - gpu_allocatable
      - gpu_requested
      - gpu_free
      - occupants
      - node_state
      - cluster_names
      - taints
      - taint_user
      - has_tcli_endpoint
      - is_idle
      title: TcliNodeSummary
    TcliClusterStatus:
      properties:
        cluster_name:
          type: string
          title: Cluster Name
        cluster_provider_name:
          type: string
          title: Cluster Provider Name
        node_type:
          type: string
          title: Node Type
        scheduler_namespace:
          type: string
          title: Scheduler Namespace
        scheduler_cluster:
          type: string
          title: Scheduler Cluster
        waiters_configmap:
          type: string
          title: Waiters Configmap
        collected_at:
          type: string
          title: Collected At
        summary:
          $ref: '#/components/schemas/TcliClusterSummary'
        jobs:
          items:
            $ref: '#/components/schemas/TcliJobSummary'
          type: array
          title: Jobs
        nodes:
          items:
            $ref: '#/components/schemas/TcliNodeSummary'
          type: array
          title: Nodes
        waiters:
          items:
            $ref: '#/components/schemas/TcliWaiterSummary'
          type: array
          title: Waiters
        metrics:
          items:
            $ref: '#/components/schemas/TcliMetricPoint'
          type: array
          title: Metrics
        completed_jobs:
          items:
            $ref: '#/components/schemas/TcliCompletedJob'
          type: array
          title: Completed Jobs
        completion_events:
          items:
            $ref: '#/components/schemas/TcliJobCompletionEvent'
          type: array
          title: Completion Events
        wait_events:
          items:
            $ref: '#/components/schemas/TcliJobWaitEvent'
          type: array
          title: Wait Events
        backend_completion_totals:
          items:
            $ref: '#/components/schemas/TcliBackendCompletionTotalsPoint'
          type: array
          title: Backend Completion Totals
      type: object
      required:
      - cluster_name
      - cluster_provider_name
      - node_type
      - scheduler_namespace
      - scheduler_cluster
      - waiters_configmap
      - collected_at
      - summary
      - jobs
      - nodes
      - waiters
      - metrics
      - completed_jobs
      - completion_events
      - wait_events
      - backend_completion_totals
      title: TcliClusterStatus
  securitySchemes:
    TrajectoryAccessToken:
      type: http
      description: Short-lived token scoped to one rollout trajectory
      scheme: bearer
    InferenceAuthorization:
      type: http
      scheme: bearer