---
title: "Get project factory uptime"
method: GET
path: "/experimental/projects/{projectId}/factory/metrics/uptime"
tags: ["Projects"]
---

# Get project factory uptime

`GET /experimental/projects/{projectId}/factory/metrics/uptime`

## Request

- Base URL: `https://api.tessl.io`
- URL: `https://api.tessl.io/experimental/projects/{projectId}/factory/metrics/uptime`
- Auth: none declared

Counts the runs this project's Loops started that finished (completed, failed or cancelled), and how many of them failed on the platform, in the requested window (`filter[timestamp][gte]` to the exclusive `filter[timestamp][lt]`, at most 90 days, the last 7 days when neither is given) and in the window of the same length just before it, by run creation time. Agent, setup, credit, limit and policy failures are not platform failures. Uptime is finished runs without a platform failure divided by finished runs. `series` has one point per UTC day that the current window touches, zeros included, so the points add up to `current`.

## Path parameters

- `projectId` string, uuid, required

## Query parameters

- `filter[timestamp][gte]` string, date-time
- `filter[timestamp][lt]` string, date-time

## Headers

- `Authorization` string

## Response `200`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
  - `data` object, required
    - `id` string, uuid, required
    - `type` 'project-factory-uptime', required
    - `attributes` object, required
      - `current` object, required
        - `start` string, date-time, required
        - `end` string, date-time, required
        - `finishedRuns` integer, required
        - `platformFailedRuns` integer, required
      - `previous` object, required
        - `start` string, date-time, required
        - `end` string, date-time, required
        - `finishedRuns` integer, required
        - `platformFailedRuns` integer, required
      - `series` object[], required
        - `day` string, required
        - `finished` integer, required
        - `platformFailed` integer, required

## Other responses

- `401`: Unauthorized
- `403`: Default Response
- `404`: Not Found
- `500`: Internal Server Error

## Changes

- **2026-10-29** `06d2142ed144`: 1 info
  - api operation id `getProjectFactoryMetricUptime` was added
- **2026-10-27** `e25ca4b503fc`: 3 info
  - added the new optional `query` request parameter `filter[timestamp][gte]`
  - added the new optional `query` request parameter `filter[timestamp][lt]`
  - added the required property `data/attributes/series` to the response with the `200` status
- **2026-10-27** `5e39ea5d8009`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/tessl/apis/tessl-api/changes/experimental/projects/:projectId/factory/metrics/uptime/get.md)

---

[API](https://skmtc.dev/tessl/apis/tessl-api.md) - [All operations](https://skmtc.dev/tessl/apis/tessl-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tessl/apis/tessl-api/revisions/4fa2a17154e4?raw)
