> ## Documentation Index
> Fetch the complete documentation index at: https://docs.syrto.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Ricerca

> Prezzo per azienda RESTITUITA, al livello del filtro più avanzato usato: base 3, plus 6, pro 10 crediti (+10 ciascuna con echoFilters). Una pagina vuota non costa nulla. Imposta `maxTier` per limitare il livello. Di sola lettura e idempotente: si usa POST solo perché la richiesta ha un corpo. Il metodo HTTP QUERY è il verbo preferito per questa operazione e verrà accettato sullo stesso percorso quando il supporto dei client sarà diffuso.



## OpenAPI

````yaml api-reference/openapi.standard.it.json POST /companies/search
openapi: 3.1.0
info:
  title: Syrto API - endpoint standard
  version: 1.7.0
  description: >-
    Dati finanziari, societari e di mercato sulle aziende italiane.


    Ogni chiamata risponde `200 { data, meta }`; `meta.usage.quantity` è quanto
    ha consumato la

    chiamata, in crediti, e `meta.warnings` elenca eventuali avvertenze non
    bloccanti (vuoto quando non

    ce ne sono). Ogni campo è sempre presente e i valori sconosciuti sono null.
    Le percentuali sono

    frazioni (0,15 = 15%).


    **Autenticazione.** Ogni chiamata richiede una chiave API, inviata come
    `Authorization: Bearer sk_...`

    su HTTPS - mai in un URL. Le chiavi sono legate alla tua organizzazione: gli
    admin le creano e le

    revocano nella dashboard Syrto (https://dashboard.syrto.ai/api-keys). Una
    chiave mancante o non

    riconosciuta è un 401 (`missing_api_key`, `invalid_api_key`); un 503
    `auth_unavailable` significa

    che in questo momento non è stato possibile verificare la chiave, quindi
    riprova con backoff invece di

    ruotarla.


    **Base di addebito.** negativities, rna e structure addebitano una volta per
    persona giuridica: il

    record individuale e quello consolidato della stessa azienda contano una
    volta. Ogni altro endpoint

    addebita per record (o per chiamata), quindi individuale e consolidato
    contano separatamente. Un

    codice fiscale si risolve sempre in un solo record (`statementBasis`,
    individuale per impostazione

    predefinita): un'azienda viene addebitata due volte solo se vengono passati
    entrambi i suoi

    companyId. Una chiamata di mercato ha un prezzo per chiamata, qualunque sia
    la dimensione

    dell'insieme: omettere `filters` e `seedId`, o inviare `filters: {}`,
    significa tutta l'Italia, allo

    stesso prezzo. Le voci notFound non vengono mai addebitate, e nemmeno alcun
    errore.
servers:
  - url: https://api.syrto.ai
security: []
tags:
  - name: Company data
    description: Identità, indicatori di rischio, aiuti di Stato e sedi di aziende note.
  - name: Governance
    description: Proprietà, dirigenti, titolari effettivi e gruppo.
  - name: Financials
    description: Voci di bilancio, bilanci riclassificati, indici e grafico spider.
  - name: Composite
    description: Aziende comparabili.
  - name: Search
    description: Le aziende di un insieme filtrato, riga per riga.
  - name: Market
    description: Aggregati su un insieme filtrato.
  - name: Catalog
    description: Dati di riferimento gratuiti.
paths:
  /companies/search:
    post:
      tags:
        - Search
      summary: >-
        Le aziende di un insieme filtrato, una riga ciascuna, fino a 200 per
        pagina.
      description: >-
        Prezzo per azienda RESTITUITA, al livello del filtro più avanzato usato:
        base 3, plus 6, pro 10 crediti (+10 ciascuna con echoFilters). Una
        pagina vuota non costa nulla. Imposta `maxTier` per limitare il livello.
        Di sola lettura e idempotente: si usa POST solo perché la richiesta ha
        un corpo. Il metodo HTTP QUERY è il verbo preferito per questa
        operazione e verrà accettato sullo stesso percorso quando il supporto
        dei client sarà diffuso.
      operationId: company-search
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanySearchRequest'
      responses:
        '200':
          description: >-
            Le aziende di un insieme filtrato, una riga ciascuna, fino a 200 per
            pagina.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CompanySearchResult'
                  meta:
                    $ref: '#/components/schemas/ResponseMeta'
                required:
                  - data
                  - meta
        '401':
          description: missing_api_key | invalid_api_key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: credits_exhausted | limit_reached
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: client_not_configured | not_entitled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: unknown_endpoint | not_found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: payload_too_large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '415':
          description: unsupported_media_type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: invalid_params
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: rate_limited
          headers:
            Retry-After:
              description: >-
                Secondi da attendere prima di riprovare. Né un 429 né un 504
                vengono addebitati. Un 504 la cui query aveva raggiunto il
                servizio dati lo lascia in esecuzione, e la sua risposta viene
                messa in cache, quindi la stessa chiamata dopo questo intervallo
                è di solito veloce.
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: internal_error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: upstream_error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: auth_unavailable | entitlement_unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '504':
          description: upstream_timeout
          headers:
            Retry-After:
              description: >-
                Secondi da attendere prima di riprovare. Né un 429 né un 504
                vengono addebitati. Un 504 la cui query aveva raggiunto il
                servizio dati lo lascia in esecuzione, e la sua risposta viene
                messa in cache, quindi la stessa chiamata dopo questo intervallo
                è di solito veloce.
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    CompanySearchRequest:
      type: object
      properties:
        filters:
          $ref: '#/components/schemas/Filters'
        year:
          type: integer
          minimum: 2015
          maximum: 2100
          description: >-
            Obbligatorio con filtri finanziari o radar, o con un ordinamento per
            metrica.
        limit:
          type: integer
          minimum: 1
          maximum: 200
          description: >-
            Aziende per pagina, 1-200 (predefinito 200). Addebitate per azienda
            restituita.
        after:
          type: string
          maxLength: 512
          description: Cursore opaco da `endCursor`.
        sortBy:
          type: object
          properties:
            field:
              type: string
              enum:
                - matchScore
                - metric
            metricSlug:
              $ref: '#/components/schemas/MetricSlug'
            direction:
              type: string
              enum:
                - asc
                - desc
          required:
            - field
          additionalProperties: false
          description: >-
            Omesso: denominazione, A-Z. `matchScore` richiede `semanticSearch`;
            `metric` richiede `metricSlug` (uno degli indici elencati da GET
            /metrics) e `year`, e ordina sul valore di quell'anno. `direction` è
            `desc` per impostazione predefinita (prima la corrispondenza
            migliore o il valore più alto). Mai per punteggio.
        echoFilters:
          type: boolean
          description: >-
            Restituisce i valori di ogni azienda per i campi filtrati (+10
            crediti per azienda).
        maxTier:
          type: string
          enum:
            - base
            - plus
            - pro
          description: >-
            Limite di spesa: un filtro oltre questo livello fa fallire la
            chiamata con 422, prima di qualsiasi addebito.
        language:
          type: string
          enum:
            - it
            - en
          description: >-
            Lingua di nomi, etichette e descrizioni delle metriche (mai dei nomi
            dei campi o degli slug). Omessa: la lingua predefinita dell'account.
      required:
        - filters
      additionalProperties: false
    CompanySearchResult:
      type: object
      properties:
        totalCount:
          type:
            - integer
            - 'null'
          minimum: 0
          description: >-
            Aziende nell'intero insieme. Null in una pagina vuota raggiunta con
            `after`: una pagina non addebitata non conta l'insieme.
        returnedCount:
          type: integer
          minimum: 0
        tierApplied:
          $ref: '#/components/schemas/SearchTier'
        hasNextPage:
          type: boolean
        endCursor:
          type:
            - string
            - 'null'
        items:
          type: array
          items:
            $ref: '#/components/schemas/CompanySearchItem'
      required:
        - totalCount
        - returnedCount
        - tierApplied
        - hasNextPage
        - endCursor
        - items
    ResponseMeta:
      type: object
      properties:
        requestId:
          type: string
        endpoint:
          type: string
        usage:
          $ref: '#/components/schemas/Usage'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/Warning'
          description: Vuoto quando non ce ne sono.
      required:
        - requestId
        - endpoint
        - usage
        - warnings
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - missing_api_key
                - invalid_api_key
                - credits_exhausted
                - limit_reached
                - client_not_configured
                - not_entitled
                - unknown_endpoint
                - not_found
                - payload_too_large
                - unsupported_media_type
                - invalid_params
                - rate_limited
                - internal_error
                - upstream_error
                - auth_unavailable
                - entitlement_unavailable
                - upstream_timeout
            message:
              type: string
            requestId:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  path:
                    type: string
                  message:
                    type: string
                required:
                  - path
                  - message
          required:
            - code
            - message
            - requestId
      required:
        - error
    Filters:
      type: object
      properties:
        companyIds:
          type: array
          items:
            type: string
            maxLength: 100
          minItems: 1
          maxItems: 200
          description: 'Limita a questi companyId (es. un portafoglio). Livello: base.'
        statementBasis:
          type: string
          enum:
            - individual
            - consolidated
          description: >-
            Quali bilanci includere: individuale (predefinito) o consolidato.
            Con companyIds decidono gli id.
        anagraphic:
          $ref: '#/components/schemas/AnagraphicFilter'
        financial:
          $ref: '#/components/schemas/FinancialFilter'
        stateAids:
          $ref: '#/components/schemas/StateAidsFilter'
        people:
          $ref: '#/components/schemas/PeopleFilter'
        radar:
          $ref: '#/components/schemas/RadarFilter'
      additionalProperties: false
      description: >-
        Definisce un insieme di aziende: /companies/search lo restituisce riga
        per riga, /market lo aggrega. Ogni sezione è facoltativa; tutto è in
        AND.
    MetricSlug:
      type: string
      enum:
        - revenues_from_sales_and_services
        - value_of_production
        - profit
        - added_value
        - ebitda
        - ebit
        - added_value_employee
        - ebitda_margin
        - ebit_margin
        - roe
        - roa
        - sales_assets
        - revenue_cagr_3_years
        - ebitda_cagr_3_years
        - personnel_cost_to_revenue
        - raw_materials_contribution
        - services_and_leases_contribution
        - net_working_capital
        - ufcf
        - cash_ratio
        - quick_ratio
        - secondary_liquidity
        - days_sales_outstanding
        - days_sales_outstanding_commercial_receivables
        - days_payable_outstanding
        - dpo_commercial_debt
        - days_sales_inventory
        - cash_conversion_cycle
        - cash_conversion_cycle_commercial
        - net_financial_position
        - current_net_financial_position
        - net_financial_position_ebitda
        - debt_ebitda_ratio
        - indeb_ratio
        - financial_leverage
        - over_indebtedness_ratio
        - interest_coverage_ratio_ebitda_based
        - debt_service_cover_ratio_ebitda_version
        - debt_service_cover_ratio_cash_flow_based
        - cost_borrowed_money
        - financial_sustainability
        - financial_charges_on_nfp
        - capex
        - invested_capital
        - equity_ratio
        - self_coverage
        - financial_debt_net_worth
        - non_curr_liabilities_fixed_asset_ratio
        - capex_sales_ratio
        - debt_on_revenue
        - short_term_debt_on_revenue
        - current_debt_to_total_debt_ratio
        - curr_asset_total_asset_ratio
        - cash_curr_asset_ratio
        - tfr_contribution
      description: >-
        Uno dei 55 indici; GET /metrics (gratuito) li elenca con nomi, unità e
        formule. Gli slug fanno parte del contratto; i nomi sono localizzati.
    SearchTier:
      type: string
      enum:
        - base
        - plus
        - pro
      description: >-
        Determinato dal filtro più avanzato usato, mai dai campi restituiti:
        base = profilo, geografia, dimensione, ricavi; plus = filtri semantici,
        di metrica, radar e di aiuti di Stato; pro = persone, età dei titolari,
        tipo di controllo, canali.
    CompanySearchItem:
      allOf:
        - $ref: '#/components/schemas/CompanyHeader'
        - type: object
          properties:
            year:
              type:
                - integer
                - 'null'
            financialStatementDate:
              type:
                - string
                - 'null'
              format: date
              description: >-
                Data del bilancio da cui provengono i valori: la data di
                chiusura dell'esercizio (31 dicembre per la maggior parte delle
                aziende, 30 giugno per un club con chiusura a giugno). Citala
                quando segnali una discrepanza.
            activityOverview:
              type:
                - string
                - 'null'
            naceClass:
              type:
                - string
                - 'null'
            nuts1:
              type:
                - string
                - 'null'
            nuts2:
              type:
                - string
                - 'null'
            nuts3:
              type:
                - string
                - 'null'
            lau:
              type:
                - string
                - 'null'
            sizeClassification:
              anyOf:
                - $ref: '#/components/schemas/SizeBand'
                - type: 'null'
            employeeCount:
              type:
                - integer
                - 'null'
            matchScore:
              type:
                - number
                - 'null'
              description: Impostato solo con semanticSearch.
            filteredValues:
              type:
                - object
                - 'null'
              additionalProperties: {}
              description: >-
                Con echoFilters: il valore dell'azienda per ogni campo filtrato.
                Mai punteggi.
          required:
            - year
            - financialStatementDate
            - activityOverview
            - naceClass
            - nuts1
            - nuts2
            - nuts3
            - lau
            - sizeClassification
            - employeeCount
            - matchScore
            - filteredValues
    Usage:
      type: object
      properties:
        quantity:
          type: number
        unit:
          type: string
      required:
        - quantity
        - unit
    Warning:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
      required:
        - code
        - message
    AnagraphicFilter:
      type: object
      properties:
        name:
          type: object
          properties:
            contains:
              type: string
              maxLength: 200
            startsWith:
              type: string
              maxLength: 200
          additionalProperties: false
          minProperties: 1
          maxProperties: 1
          description: >-
            Filtro sulla denominazione, senza distinzione tra maiuscole e
            minuscole: `contains` cerca parole intere, `startsWith` un prefisso.
            Filtra, non ordina. Livello: base.
        nace:
          type: array
          items:
            type: string
            maxLength: 11
          minItems: 1
          maxItems: 20
          description: >-
            Codici NACE, tutti allo stesso livello: sezione `C`, divisione `27`,
            gruppo `27.9`, classe `27.90`, sottocategoria `27.90.01`. Livello:
            base.
        nuts:
          type: array
          items:
            type: string
            minLength: 3
            maxLength: 5
          minItems: 1
          maxItems: 20
          description: >-
            Codici NUTS, tutti allo stesso livello (3 caratteri = area macro, 4
            = regione, 5 = provincia). Corrisponde alla sede legale, non alle
            sedi operative. Livello: base.
        lau:
          type: array
          items:
            type: string
            maxLength: 12
          minItems: 1
          maxItems: 50
          description: 'Codici ISTAT del comune della sede legale. Livello: base.'
        countryCode:
          type: string
          pattern: ^[A-Z]{2}$
          description: 'ISO 3166-1 alpha-2. Livello: base.'
        age:
          type: object
          properties:
            min:
              type: integer
            max:
              type: integer
          additionalProperties: false
          description: >-
            Età dell'azienda, in anni. Livello: base. Limiti inclusivi: min, max
            o entrambi, con min <= max.
          minProperties: 1
        semanticSearch:
          type: string
          minLength: 1
          maxLength: 500
          description: >-
            Ricerca sulla descrizione dell'ATTIVITÀ (prodotti, servizi, mercati
            serviti) - non su nome, forma giuridica o dati finanziari. Livello:
            plus.
        matchCutoff:
          type: number
          minimum: 0.5
          maximum: 1
          description: >-
            Similarità semantica minima, predefinita 0,8. Più alta = meno
            corrispondenze, più vicine. Livello: plus.
        shareholderAge:
          type: object
          properties:
            min:
              type: integer
            max:
              type: integer
          additionalProperties: false
          description: >-
            Età MEDIA dei soci, in anni. Livello: pro. Limiti inclusivi: min,
            max o entrambi, con min <= max.
          minProperties: 1
        beneficialOwnerAge:
          type: object
          properties:
            min:
              type: integer
            max:
              type: integer
          additionalProperties: false
          description: >-
            Età MEDIA dei titolari effettivi, in anni - non del socio di
            maggioranza. Livello: pro. Limiti inclusivi: min, max o entrambi,
            con min <= max.
          minProperties: 1
        executiveOfficerAge:
          type: object
          properties:
            min:
              type: integer
            max:
              type: integer
          additionalProperties: false
          description: >-
            Età media dei dirigenti, in anni. Livello: pro. Limiti inclusivi:
            min, max o entrambi, con min <= max.
          minProperties: 1
        representationAndAuthorityOfficerAge:
          type: object
          properties:
            min:
              type: integer
            max:
              type: integer
          additionalProperties: false
          description: >-
            Età media di chi ha poteri di rappresentanza, in anni. Livello: pro.
            Limiti inclusivi: min, max o entrambi, con min <= max.
          minProperties: 1
        targetMarket:
          type: array
          items:
            $ref: '#/components/schemas/TargetMarket'
          minItems: 1
          maxItems: 9
          description: >-
            Serve QUALSIASI di questi canali (valori esatti: B2B non è B2B2C).
            Livello: pro.
        controllingEntityCategory:
          type: array
          items:
            $ref: '#/components/schemas/ControllingEntityCategory'
          minItems: 1
          maxItems: 6
          description: >-
            Controllata da QUALSIASI di queste categorie di entità. Livello:
            pro.
      additionalProperties: false
      description: Profilo dell'azienda. Non richiede `year`.
    FinancialFilter:
      type: object
      properties:
        size:
          type: array
          items:
            $ref: '#/components/schemas/SizeBand'
          minItems: 1
          maxItems: 4
          description: 'Classe dimensionale UE. Livello: base.'
        employees:
          type: object
          properties:
            min:
              type: integer
            max:
              type: integer
          additionalProperties: false
          description: >-
            Numero di dipendenti. Livello: base. Limiti inclusivi: min, max o
            entrambi, con min <= max.
          minProperties: 1
        revenue:
          type: object
          properties:
            min:
              type: number
            max:
              type: number
          additionalProperties: false
          description: >-
            Ricavi da vendite e prestazioni, EUR. Livello: base. Limiti
            inclusivi: min, max o entrambi, con min <= max.
          minProperties: 1
        metricFilters:
          type: array
          items:
            $ref: '#/components/schemas/MetricFilter'
          minItems: 1
          maxItems: 10
          description: 'Fino a dieci condizioni su metriche, in AND. Livello: plus.'
      additionalProperties: false
      description: Richiede `year` nella richiesta.
    StateAidsFilter:
      type: object
      properties:
        totalAmount:
          type: object
          properties:
            min:
              type: number
            max:
              type: number
          additionalProperties: false
          description: >-
            Aiuti di Stato ricevuti, di sempre, ogni regime, EUR. Limiti
            inclusivi: min, max o entrambi, con min <= max.
          minProperties: 1
        amountLast36Months:
          type: object
          properties:
            min:
              type: number
            max:
              type: number
          additionalProperties: false
          description: >-
            Aiuti di Stato ricevuti negli ultimi 36 mesi, EUR. Limiti inclusivi:
            min, max o entrambi, con min <= max.
          minProperties: 1
        countLast36Months:
          type: object
          properties:
            min:
              type: integer
            max:
              type: integer
          additionalProperties: false
          description: >-
            Aiuti di Stato concessi negli ultimi 36 mesi. Limiti inclusivi: min,
            max o entrambi, con min <= max.
          minProperties: 1
        aboveSectorMedianLast36Months:
          type: boolean
        deMinimisRemaining:
          type: object
          properties:
            min:
              type: number
            max:
              type: number
          additionalProperties: false
          description: >-
            Margine residuo prima del massimale de minimis, EUR. `{min: 1}` =
            può ancora riceverne. Limiti inclusivi: min, max o entrambi, con min
            <= max.
          minProperties: 1
        lastGrantDate:
          type: object
          properties:
            after:
              type: string
              format: date
            before:
              type: string
              format: date
          additionalProperties: false
          description: >-
            Data dell'ultima concessione. Date ISO inclusive: after, before o
            entrambe.
          minProperties: 1
      additionalProperties: false
      description: >-
        Livello: plus. Non richiede `year` (il riepilogo degli aiuti è
        cumulativo, non per anno).
      minProperties: 1
    PeopleFilter:
      type: object
      properties:
        officers:
          type: array
          items:
            type: object
            properties:
              personId:
                type: string
                maxLength: 100
              roleCategory:
                $ref: '#/components/schemas/RoleCategory'
            required:
              - personId
            additionalProperties: false
          minItems: 1
          maxItems: 20
        shareholderIds:
          type: array
          items:
            type: string
            maxLength: 100
          minItems: 1
          maxItems: 20
        beneficialOwnerIds:
          type: array
          items:
            type: string
            maxLength: 100
          minItems: 1
          maxItems: 20
      additionalProperties: false
      description: >-
        Livello: pro. All'interno di una lista vale QUALSIASI corrispondenza;
        tra liste devono valere TUTTE. Gli id delle persone provengono da
        /companies/structure.
      minProperties: 1
    RadarFilter:
      type: object
      properties:
        size:
          type: object
          properties:
            min:
              type: number
            max:
              type: number
          additionalProperties: false
          description: >-
            Asse dimensione del radar, 0-100. Limiti inclusivi: min, max o
            entrambi, con min <= max.
          minProperties: 1
        efficiency:
          type: object
          properties:
            min:
              type: number
            max:
              type: number
          additionalProperties: false
          description: >-
            Asse efficienza del radar, 0-100. Limiti inclusivi: min, max o
            entrambi, con min <= max.
          minProperties: 1
        polygon:
          type: object
          properties:
            vertices:
              type: array
              items:
                type: object
                properties:
                  size:
                    type: number
                    minimum: 0
                    maximum: 100
                  efficiency:
                    type: number
                    minimum: 0
                    maximum: 100
                required:
                  - size
                  - efficiency
                additionalProperties: false
              minItems: 3
              maxItems: 64
          required:
            - vertices
          additionalProperties: false
          description: Qualsiasi regione del piano; l'ordine dei vertici non conta.
      additionalProperties: false
      description: >-
        Livello: plus. Richiede `year`. Confrontabile tra settori. Almeno uno
        dei tre.
      minProperties: 1
    CompanyHeader:
      type: object
      properties:
        companyId:
          type: string
          description: >-
            Id Syrto di questo record di bilancio. Individuale e consolidato
            differiscono.
        legalName:
          type:
            - string
            - 'null'
        taxId:
          type:
            - string
            - 'null'
          description: Codice fiscale / partita IVA.
        consolidated:
          type: boolean
          description: >-
            Indica se questi valori provengono dal bilancio consolidato (di
            gruppo).
      required:
        - companyId
        - legalName
        - taxId
        - consolidated
    SizeBand:
      type: string
      enum:
        - XS
        - S
        - M
        - L
      description: >-
        Classe dimensionale UE del record di bilancio (non del gruppo, salvo se
        consolidato).
    TargetMarket:
      type: string
      enum:
        - B2B
        - B2C
        - B2G
        - B2B2C
        - B2B2G
        - C2C
        - C2B
        - G2C
        - G2B
    ControllingEntityCategory:
      type: string
      enum:
        - FAMILY
        - FAMILY_OWNED_GROUP
        - FINANCIALLY_OWNED_GROUP
        - INDUSTRIAL_GROUP
        - FINANCIAL
        - OTHER
    MetricFilter:
      type: object
      properties:
        slug:
          $ref: '#/components/schemas/MetricSlug'
        min:
          type: number
          description: Sul valore grezzo, scala nativa.
        max:
          type: number
        scoreMin:
          type: integer
          minimum: 1
          maximum: 5
          description: >-
            Punteggio da 1 a 5 rispetto al mercato dell'azienda (5 è sempre il
            migliore). Solo un criterio di selezione - i punteggi non vengono
            mai restituiti. Le aziende senza punteggio sono escluse da qualsiasi
            limite sul punteggio.
        scoreMax:
          type: integer
          minimum: 1
          maximum: 5
      required:
        - slug
      additionalProperties: false
      description: >-
        Lo slug più almeno un limite; i limiti sul valore e sul punteggio di una
        stessa voce sono in AND.
      minProperties: 2
    RoleCategory:
      type: string
      enum:
        - GOVERNING_BODIES
        - ADMINISTRATION_AND_EXECUTIVES
        - AUDITING
        - REPRESENTATION_AND_AUTHORITY
        - EXTRAORDINARY_PROCEDURES
        - FUNCTIONAL_ROLES
        - PARTICIPATION_OWNERSHIP
        - CHIEF_EXECUTIVE_OFFICER
        - OTHER
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Chiave API di organizzazione WorkOS (sk_...), inviata come
        `Authorization: Bearer <key>`. Gli admin creano e revocano le chiavi
        nella dashboard Syrto: https://dashboard.syrto.ai/api-keys

````

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