---
title: "Public Desk Book"
method: GET
path: "/v1/signalflo/desk/{tenant_slug}/book"
tags: ["signalflo"]
---

# Public Desk Book

`GET /v1/signalflo/desk/{tenant_slug}/book`

## Request

- Base URL: `https://api.storyflo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.storyflo.com/v1/signalflo/desk/{tenant_slug}/book`
- Auth: none declared

A desk's published book, newest first.

404s for an unknown desk rather than returning an empty book, so a
consumer can tell "this desk has published nothing yet" apart from "this
desk does not exist" — the two need different copy on the page.

Uses ``session_scope()`` rather than ``Depends(get_db)``: this handler
makes three round-trips, and a request-scoped session held across all of
them is the pool-exhaustion pattern the static audit exists to catch.
The prod pool is 5 + 3 overflow, so a public endpoint holding a
connection longer than it needs is a real outage risk, not a style
point.

## Path parameters

- `tenant_slug` string, required

## Query parameters

- `status` string, nullable
- `limit` integer

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/storyflo/apis/storyflo-inference-router.md) · [All operations](https://skmtc.dev/storyflo/apis/storyflo-inference-router/llms.txt) · [OpenAPI document](https://skmtc.dev/storyflo/apis/storyflo-inference-router/revisions/c3a1a735ac7a?raw)
