> ## 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.

# v2 screens

> <Warning>Preview, not deployed. The v2 gateway is built but not deployed yet; this call works once the owner deploys `silo-api`.</Warning>

Which funds look odd? Forensic screens: signals, not verdicts.

Example: `/v2/screens`

Kinds:

- `list`: The screens, one line each, with the family each reads and its SQL defaults (from api.catalog().screens).
- `captive_vehicles`: FIIs whose NAV peaked above min_aum while the quotaholder count never reached max_investors.
- `delinquency_drivers`: FIDC delinquency, first vs last observation in BRL and in points of NAV, the move classified (driver). No window before 2025-01.
- `dormant_funds`: FI classes that filed every month of the window with zero subscriptions and zero redemptions (empty_shell, parked_capital).
- `dormant_trend`: dormant_funds counted at every month-end: funds filing, empty shells, parked capital and its NAV.
- `evergreen_aging`: FIDCs whose receivables overdue more than 1080 days stay a large, nearly constant share of delinquency.
- `late_filers`: FIIs and FIDCs whose monthly informe reached FNET at least min_days_late days after the cited deadline, in at least min_late months.
- `overdue_securit`: CRI, CRA and other series past their filed maturity whose newest filing still reports a non-terminal status.
- `restatements`: Funds whose FNET re-filings (versao > 1) in the window reach min_restatements and min_rate_pct of their documents.
- `silent_filers`: Funds CVM still lists as active whose last periodic informe is min_silent_months to max_silent_months behind their family.
- `zombie_growth`: FIDCs with delinquency above min_delinq_pct of NAV while NAV stays above min_aum, in one aging month.

Signal, not a verdict: a screen lists a pattern worth a look. Legal funds match every screen (exclusive vehicles, wind-downs, distressed mandates, routine corrections). Every response repeats this in meta.signal.

Each threshold is hidden and defaults to the SQL function's own default; meta.request echoes the value applied. A threshold the chosen screen does not take is bad_request.

`GET /v2/screens?help` describes the main parameters, `?help=all` adds the hidden ones.



## OpenAPI

````yaml /api-docs/v2/openapi.json get /screens
openapi: 3.1.0
info:
  title: SILO API v2 (preview, not deployed)
  version: v2
  description: >-
    The v2 gateway over SILO's schema `api`: 14 resources, five shared
    parameters, one envelope and one error object. Generated from
    supabase/functions/silo-api/registry.ts by scripts/gen_openapi_v2.py; do not
    edit by hand. Preview, not deployed. The v2 gateway is built but not
    deployed yet; this call works once the owner deploys `silo-api`.
servers:
  - url: https://zcjbtpxuhdekpwcxmepn.supabase.co/functions/v1/silo-api/v2
    description: The silo-api Edge Function (preview, not deployed).
security:
  - apikey: []
  - apikey: []
    bearerAuth: []
paths:
  /screens:
    get:
      summary: v2 screens
      description: >-
        <Warning>Preview, not deployed. The v2 gateway is built but not deployed
        yet; this call works once the owner deploys `silo-api`.</Warning>


        Which funds look odd? Forensic screens: signals, not verdicts.


        Example: `/v2/screens`


        Kinds:


        - `list`: The screens, one line each, with the family each reads and its
        SQL defaults (from api.catalog().screens).

        - `captive_vehicles`: FIIs whose NAV peaked above min_aum while the
        quotaholder count never reached max_investors.

        - `delinquency_drivers`: FIDC delinquency, first vs last observation in
        BRL and in points of NAV, the move classified (driver). No window before
        2025-01.

        - `dormant_funds`: FI classes that filed every month of the window with
        zero subscriptions and zero redemptions (empty_shell, parked_capital).

        - `dormant_trend`: dormant_funds counted at every month-end: funds
        filing, empty shells, parked capital and its NAV.

        - `evergreen_aging`: FIDCs whose receivables overdue more than 1080 days
        stay a large, nearly constant share of delinquency.

        - `late_filers`: FIIs and FIDCs whose monthly informe reached FNET at
        least min_days_late days after the cited deadline, in at least min_late
        months.

        - `overdue_securit`: CRI, CRA and other series past their filed maturity
        whose newest filing still reports a non-terminal status.

        - `restatements`: Funds whose FNET re-filings (versao > 1) in the window
        reach min_restatements and min_rate_pct of their documents.

        - `silent_filers`: Funds CVM still lists as active whose last periodic
        informe is min_silent_months to max_silent_months behind their family.

        - `zombie_growth`: FIDCs with delinquency above min_delinq_pct of NAV
        while NAV stays above min_aum, in one aging month.


        Signal, not a verdict: a screen lists a pattern worth a look. Legal
        funds match every screen (exclusive vehicles, wind-downs, distressed
        mandates, routine corrections). Every response repeats this in
        meta.signal.


        Each threshold is hidden and defaults to the SQL function's own default;
        meta.request echoes the value applied. A threshold the chosen screen
        does not take is bad_request.


        `GET /v2/screens?help` describes the main parameters, `?help=all` adds
        the hidden ones.
      operationId: v2_screens
      parameters:
        - name: kind
          in: query
          required: false
          description: >-
            list (the default, no kind given): the screens, one line each, with
            their defaults. Any other value runs that screen
            (api.screen_<kind>). Default: list.
          schema:
            type: string
            enum:
              - list
              - captive_vehicles
              - delinquency_drivers
              - dormant_funds
              - dormant_trend
              - evergreen_aging
              - late_filers
              - overdue_securit
              - restatements
              - silent_filers
              - zombie_growth
            default: list
        - name: limit
          in: query
          required: false
          description: >-
            The page size. More rows than one page come through next_page_url,
            never cut silently; a call stops at the tier's rows-per-call cap
            with meta.tier_cap_reached. Default: the tier's page maximum (10
            anonymous, 100 signed in); a larger value is coerced to it.
          schema:
            type: integer
            minimum: 1
        - name: cursor
          in: query
          required: false
          description: >-
            The opaque cursor from a previous next_page_url. It carries every
            other parameter: send it alone (another parameter with a different
            value is bad_request). Default: none: the first page.
          schema:
            type: string
        - name: date
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). zombie_growth: the aging
            month-end (p_period). delinquency_drivers, restatements,
            late_filers: the window end (p_end). Default: the screen's own:
            zombie_growth the latest aging month; delinquency_drivers the latest
            complete FIDC month; restatements today; late_filers the newest
            month whose deadline has passed.
          schema:
            type: string
            format: date
        - name: months
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). delinquency_drivers
            (2..24), restatements, late_filers (1..36): the window length in
            months. Default: the screen's SQL default (12).
          schema:
            type: integer
            minimum: 0
        - name: lookback_months
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). captive_vehicles,
            evergreen_aging, dormant_funds, dormant_trend: the trailing window
            in months. Default: the screen's SQL default: captive_vehicles 3,
            evergreen_aging 12, dormant_funds 3, dormant_trend 3.
          schema:
            type: integer
            minimum: 0
        - name: history_months
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). dormant_trend: month-ends
            emitted, 1..60. Default: the SQL default (36).
          schema:
            type: integer
            minimum: 0
        - name: min_months
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). delinquency_drivers:
            observations a fund needs, 2..months. Default: the SQL default (6).
          schema:
            type: integer
            minimum: 0
        - name: min_aum
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). zombie_growth,
            captive_vehicles: the NAV floor, BRL. Default: the screen's SQL
            default: zombie_growth 1000000, captive_vehicles 50000000 (BRL).
          schema:
            type: number
            minimum: 0
        - name: min_nav
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). dormant_funds: keep rows
            whose last NAV is at least this, BRL (an output filter). Default:
            none: no floor.
          schema:
            type: number
            minimum: 0
        - name: min_delinq_pct
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). zombie_growth: delinquency
            floor, percent of NAV, 0..100. Default: the SQL default (5).
          schema:
            type: number
            minimum: 0
        - name: max_investors
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). captive_vehicles: flagged
            when the window minimum quotaholder count is below this, 1..1000.
            Default: the SQL default (10).
          schema:
            type: integer
            minimum: 0
        - name: min_longtail_pct
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). evergreen_aging: share of
            delinquency overdue more than 1080 days, 0..100. Default: the SQL
            default (70).
          schema:
            type: number
            minimum: 0
        - name: max_variation_pp
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). evergreen_aging: largest
            move of that share across the window, percentage points. Default:
            the SQL default (10).
          schema:
            type: number
            minimum: 0
        - name: min_volume
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). overdue_securit: paid-in
            volume floor, BRL. Default: the SQL default (100000).
          schema:
            type: number
            minimum: 0
        - name: min_delta_brl
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). delinquency_drivers: the
            up/down threshold on delinquency, BRL. Default: the SQL default
            (1000000).
          schema:
            type: number
            minimum: 0
        - name: min_delta_pp
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). delinquency_drivers: the
            up/down threshold on the rate, percentage points. Default: the SQL
            default (1.0).
          schema:
            type: number
            minimum: 0
        - name: min_restatements
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). restatements: re-filings
            (versao > 1) in the window, 1..1000. Default: the SQL default (3).
          schema:
            type: integer
            minimum: 0
        - name: min_rate_pct
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). restatements: re-filings as
            percent of the fund's documents in the window, 0..100. Default: the
            SQL default (20).
          schema:
            type: number
            minimum: 0
        - name: min_days_late
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). late_filers: days past the
            cited deadline that count as late, 1..90. Default: the SQL default
            (5).
          schema:
            type: integer
            minimum: 0
        - name: min_late
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). late_filers: late months a
            fund needs in the window. Default: the SQL default (2).
          schema:
            type: integer
            minimum: 0
        - name: min_silent_months
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). silent_filers: complete
            months with no filing, 1..120. Default: the SQL default (3).
          schema:
            type: integer
            minimum: 0
        - name: max_silent_months
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). silent_filers: and at most
            this many, up to 240. Default: the SQL default (24).
          schema:
            type: integer
            minimum: 0
        - name: dormancy
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). dormant_funds: keep one
            dormancy (an output filter). empty_shell: no quotaholder.
            parked_capital: quotaholders, no flow. Default: all.
          schema:
            type: string
            enum:
              - all
              - empty_shell
              - parked_capital
            default: all
        - name: driver
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). delinquency_drivers: keep
            one class of move (an output filter). Default: all.
          schema:
            type: string
            enum:
              - all
              - consistent_worsening
              - value_up_rate_masked
              - denominator_only
              - improvement
              - stable
            default: all
        - name: modality
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). restatements: count only
            one FNET modalidade. RE: voluntary. RC: required by CVM. Default:
            all.
          schema:
            type: string
            enum:
              - all
              - RE
              - RC
            default: all
        - name: family
          in: query
          required: false
          description: >-
            Hidden parameter (`?help=all` lists it). late_filers (fii, fidc) and
            silent_filers (fi, fidc, fii, fiagro): keep one family (an output
            filter). Default: all.
          schema:
            type: string
            enum:
              - all
              - fi
              - fidc
              - fii
              - fiagro
            default: all
      responses:
        '200':
          description: The v2 envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        default:
          description: >-
            The v2 error object. A SILO refusal (over_limit) keeps its message,
            hint and details verbatim.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Envelope:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          type: array
          items: {}
          description: Always a list. Rows as the endpoint returned them; null stays null.
        meta:
          type: object
          required:
            - resource
            - kind
            - request
            - id_known
          properties:
            resource:
              type: string
            kind:
              type:
                - string
                - 'null'
            request:
              type: object
              description: Every parameter the resource takes, with the default applied.
            id_known:
              type:
                - boolean
                - 'null'
              description: Whether SILO holds the id; null when the call names none.
            endpoint:
              type: string
              description: The api.* endpoint that answered.
          additionalProperties: true
        next_page_url:
          type: string
          description: Present only when more rows remain. It carries one opaque cursor.
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - target
            - innererror
          properties:
            code:
              type: string
              enum:
                - bad_request
                - unknown_parameter
                - unknown_id
                - unauthorized
                - forbidden_for_tier
                - over_limit
                - rate_limited
                - timeout
                - unavailable
                - internal
            message:
              type: string
            target:
              type:
                - string
                - 'null'
            innererror:
              type: object
              properties:
                sqlstate:
                  type:
                    - string
                    - 'null'
                hint:
                  type:
                    - string
                    - 'null'
                details:
                  type:
                    - string
                    - 'null'
  securitySchemes:
    apikey:
      type: apiKey
      in: header
      name: apikey
      description: >-
        The public publishable key. It identifies the project, not you, and is
        the anonymous tier.
      x-default: sb_publishable__yfFQsykAglrvc9GS6_PYw_B24ex437
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Optional. A user JWT from Supabase Auth, for the signed-in tier. Never a
        secret key.

````

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