# Read a report

Source: https://immiscible.fly.dev/docs/api/get-v1-reports-kind

`GET /v1/reports/:kind`

`finance`, `engineering`, `compliance`, `org` or `assessment`. The compliance and assessment reports take `since` and `until`.

## Authentication

Workspace key, admin scope. A gateway key issued with the `admin` scope, sent as `Authorization: Bearer`. An inference-scoped key gets `403` here.

## Path parameters

- `kind` (string, required): Report kind: `finance`, `engineering`, `compliance`, `org` or `assessment`

## Request

curl:

```bash
curl "https://immiscible.fly.dev/v1/reports/finance?since=2026-09-01&until=2026-10-01" \
  -H "authorization: Bearer $IMMISCIBLE_ADMIN_KEY"
```

Node:

```ts
const res = await fetch('https://immiscible.fly.dev/v1/reports/finance?since=2026-09-01&until=2026-10-01', {
  headers: {
    authorization: `Bearer ${process.env.IMMISCIBLE_ADMIN_KEY}`,
  },
});
const data = await res.json();
console.log(res.status, data);
```

Python:

```python
import os
import requests

res = requests.get(
    "https://immiscible.fly.dev/v1/reports/finance",
    params={
        "since": "2026-09-01",
        "until": "2026-10-01",
    },
    headers={
        "authorization": f"Bearer {os.environ['IMMISCIBLE_ADMIN_KEY']}",
    },
)
print(res.status_code, res.json())
```

## Response

```json
{
  "headline": {
    "spend": 6382052885,
    "spendUsd": 6382.052885,
    "realisedWaste": 737047887,
    "realisedWasteUsd": 737.047887,
    "wasteShare": 0.1154875867970812,
    "routingOpportunity": 0,
    "routingOpportunityUsd": 0,
    "totalRecoverable": 737047887
  },
  "costPerOutcome": [
    {
      "taskClassId": "code.feature",
      "name": "Feature implementation",
      "unit": "merged PR",
      "costPerOutcome": 4670551,
      "costPerOutcomeUsd": 4.670551,
      "outcomes": 339,
      "spend": 1583316809,
      "yieldRate": 0.8751203763953684
    }
  ],
  "wasteByMechanism": [
    {
      "mechanism": "rejection",
      "tokens": 113341696,
      "cost": 736531990,
      "kind": "realised",
      "share": 0.1154067512087061,
      "usd": 736.53199
    }
  ],
  "budgetPositions": [
    {
      "scope": "team",
      "scopeId": "team_548f6f10",
      "name": "Research",
      "owner": "priya@amethyst.example",
      "relativeYield": 1.0070445502670404,
      "multiplier": 1,
      "baseAllocation": 661240000,
      "effectiveAllocation": 661240000
    }
  ],
  "teams": [
    {
      "teamId": "team_d7c3f3f6",
      "name": "Engineering",
      "note": null,
      "headcount": 6,
      "tasks": 794,
      "openTasks": 0,
      "consumedTokens": 550180837,
      "yieldTokens": 478592439
    }
  ],
  "models": [
    {
      "modelId": "anthropic/claude-opus-4.8",
      "displayName": "Claude Opus 4.8",
      "tier": "frontier",
      "provider": "anthropic",
      "servingDomicile": "US",
      "cloudActExposed": true,
      "accessPath": "direct",
      "readers": 1
    }
  ]
}
```
