# The API

The public HTTP API every other surface reads. Overview and the full reference.



The Fluncle API is the source every other surface reads. The [CLI](/docs/cli), the [rave terminal](/docs/ssh), the [MCP server](/docs/mcp), and [`dig`](/docs/dig) are all thin clients of it. It's public, read-mostly, and needs no key for the findings.

<Cards>
  <Card title="API reference" href="/docs/api">
    Every endpoint and schema, rendered live from the OpenAPI document. Try requests in the browser.
  </Card>
</Cards>

## The base [#the-base]

The stable, versioned base is:

```
https://www.fluncle.com/api/v1
```

## A taste [#a-taste]

The findings, newest first:

```bash
curl https://www.fluncle.com/api/v1/findings?limit=3
```

The list is paginated with `limit` and a cursor; the head is always the latest finding.

Every track Fluncle holds, newest release first:

```bash
curl "https://www.fluncle.com/api/v1/tracks?page=1&certified=true"
```

A single finding by its [Log ID](/docs/log-id):

```bash
curl https://www.fluncle.com/api/v1/tracks/241.7.3A
```

## The spec [#the-spec]

The API describes itself. The OpenAPI 3.1 document lives under the same versioned base it describes:

```
https://www.fluncle.com/api/v1/openapi.json
```

The [API reference](/docs/api) reads exactly that document, so it never drifts from what the API actually does. Submitting a track through the API is a recommendation, same as everywhere: it's rate-limited, and Fluncle listens before anything joins the archive.

A [Postman](https://www.postman.com/) collection is built from the same OpenAPI document, on request, under the same versioned base:

```
https://www.fluncle.com/api/v1/postman.json
```

Import that URL into Postman for a folder per endpoint with example bodies wired up. It's generated from the spec each time, so it tracks the API the same way the reference does.
