> ## Documentation Index
> Fetch the complete documentation index at: https://octo-98895abd.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# SILO

> Public read API for Brazilian public financial data — CVM fund disclosures, BACEN series, and B3 cash quotes — served from Supabase Postgres.

### What this is

**SILO** is a read API over Brazilian public financial data, ingested daily into Supabase Postgres so a claim can be checked against what was actually filed.

* **Funds:** CVM disclosures for FI, FIDC, FII, FIP, FIAGRO and securitisation vehicles.
* **Listed companies:** ITR/DFP statements, events, the published ticker map.
* **Markets:** the B3 COTAHIST tape, securities lending, investor-type flows, BACEN macro series.

Schema `api` over PostgREST, one shared publishable key. Anonymous access is free and small; signing in raises the ceilings ([Conventions & limits](/api-docs/conventions#authentication), or `catalog().limits`). An endpoint that cannot answer refuses with a code and never returns a plausible substitute.

Built for software too: `catalog()` returns every endpoint, argument, limit and refusal code as JSON, `llms.txt` indexes this site, and [`skill.md`](https://github.com/PedroDnT/SILO-BZ/blob/main/skill.md) is a drop-in agent skill. Dashboard: [silo-bz-deloslabs.vercel.app](https://silo-bz-deloslabs.vercel.app/). Code: [PedroDnT/SILO-BZ](https://github.com/PedroDnT/SILO-BZ).

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/api-docs/quickstart">
    Get the publishable key and make your first call in under a minute.
  </Card>

  <Card title="For agents" icon="robot" href="/api-docs/agents">
    How an agent reads this site. You cannot generate an API key.
  </Card>
</CardGroup>

### Base URL

```
https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/
```

Views are `GET /<view>`; functions are `POST /rpc/<function>`. Send the publishable key on `apikey` only, not as `Authorization: Bearer`.

```bash theme={null}
curl -s -X POST "https://zcjbtpxuhdekpwcxmepn.supabase.co/rest/v1/rpc/panel" \
  -H "apikey: $SILO_ANON_KEY" \
  -H "Content-Type: application/json" \
  -d '{"p_ids":["PETR4","VALE3"],"p_metrics":["close_return"],"p_freq":"month"}'
```

`panel` is the core endpoint: one row is `(id, date, metric, value)`, so one call can mix equity closes and fund fundamentals.

### What is exposed

| Resource | Kind | Read it for |
| - | - | - |
| [`quotes`](/api-docs/quotes) | view + 2 functions | Unadjusted B3 cash prices, by ticker and session |
| [`instruments`](/api-docs/instruments) | 5 views | Cash tape split by B3 type (equities, BDRs, units, fund quotas, other) |
| [`options`](/api-docs/options) / [`termo`](/api-docs/termo) | functions | Derivative chain and forward history |
| [`funds`](/api-docs/funds) | view + 3 functions | Fund registry, profile, and monthly NAV/flows by CNPJ |
| [`holdings`](/api-docs/holdings) | function | What a fund owns, and which funds own a ticker |
| [`financials`](/api-docs/financials) | 2 functions | Listed-company income statements, balance sheets and cash flows |
| [`fidc`](/api-docs/fidc) | 3 functions | FIDC concentration: originators, top-25 debtors, sector and SCR ladders |
| [`anbima`](/api-docs/anbima) | function | ANBIMA class benchmarks, as published |
| [`lending`](/api-docs/lending) | 4 views | B3 securities lending: short interest, % of float, the trade tape |
| [`flows`](/api-docs/flows) | view | Daily buy/sell/net flow by investor type |
| [`panel`](/api-docs/panel) | function | Long `(id, date, metric, value)` observations across both |
| [`lookup`](/api-docs/lookup) | function | Resolve a ticker, ISIN, CNPJ, or name to an id |
| [`coverage`](/api-docs/coverage) | function | Latest date per dataset, before you claim freshness |
| [`data inventory`](/api-docs/data-inventory) | map | What we ingest, what we don't, what we hold but don't serve |

Landing tables (`cvm_*`, `b3_cotahist`, `cvm_ingest_log`) are not exposed. Schema `api` is the boundary: English column names, ticker/CNPJ keys, an explicit `adjusted = false` flag.

### Rules the data follows

<Warning>
  * **Nothing is fabricated.** No row for a ticker means no row, never a plausible last close.
  * **Missing stays missing.** No forward-fill, interpolation or carry-last-observation.
  * **`close_return` across a calendar gap is null.** Closes are unadjusted: a 2:1 split reports roughly -50%.
  * **`freq=day` is quotes only.** Mix equity with fund fundamentals on `freq=month`.
  * **1,000 rows per response.** RPC functions **refuse** above it (`22023`); GET views are **cut silently** and only `Content-Range` says so. Never analyse a cut series. See [Row caps](/api-docs/conventions#row-caps).
</Warning>

### Notes

* Ingestion runs on a GitHub Actions cron (`run_daily`) plus on-demand backfills (`run_backfill`). There is no ingest HTTP API.
* More: [README](https://github.com/PedroDnT/SILO-BZ/blob/main/README.md), [docs/](https://github.com/PedroDnT/SILO-BZ/tree/main/docs).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.