---
title: "List Processes"
method: GET
path: "/api/processes"
---

# List Processes

`GET /api/processes`

Cacheable process list. Emits a content `ETag` and honours
`If-None-Match` for 304s, saving the ~9 KB body on every unchanged
poll (the SPA polls this every ~1.8 s).

The validator is an ETag, not `Last-Modified`: a max(updated_at)
high-water mark moves backwards when a process is deleted, which
produced stale 304s (a phantom process lingering in the client's
cached list). See the inline comment below.

Backwards compatible: clients that send no conditional header — or
send the old `If-Modified-Since` (now ignored) — receive the full
JSON body with a 200, so they always render the current set.

## Headers

- `If-None-Match` string, nullable
- `authorization` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/omicos/apis/omicos-server.md) · [All operations](https://skmtc.dev/omicos/apis/omicos-server/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/omicos/omicos-server/revisions/a00b94573ffe/schema)
