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

# Grafico spider

> Ogni asse è un valore da 1 a 5 relativo al mercato dell'azienda; leggilo rispetto al marketValue dell'asse. Prezzo: 50 crediti con un anno incluso; ogni anno ulteriore restituito costa 10.



## OpenAPI

````yaml api-reference/openapi.standard.it.json GET /companies/{id}/spider
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/{id}/spider:
    get:
      tags:
        - Financials
      summary: >-
        Grafico spider: quattro profili tematici, venti assi, con le metriche
        dietro ogni asse.
      description: >-
        Ogni asse è un valore da 1 a 5 relativo al mercato dell'azienda; leggilo
        rispetto al marketValue dell'asse. Prezzo: 50 crediti con un anno
        incluso; ogni anno ulteriore restituito costa 10.
      operationId: company-spider
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 100
            description: >-
              Un companyId (id Syrto di un record di bilancio, inizia con
              `Zm86`) o un codice fiscale (partita IVA di 11 cifre o codice
              fiscale di 16 caratteri). Un codice fiscale si risolve nel record
              selezionato da `statementBasis`.
            example: '02579690039'
          required: true
          description: >-
            Un companyId (id Syrto di un record di bilancio, inizia con `Zm86`)
            o un codice fiscale (partita IVA di 11 cifre o codice fiscale di 16
            caratteri). Un codice fiscale si risolve nel record selezionato da
            `statementBasis`.
          name: id
          in: path
        - schema:
            type: array
            items:
              type: string
              enum:
                - management_style
                - economic_performance
                - resources_investments
                - cash_flow_spider_graph
            minItems: 1
            maxItems: 4
            description: Slug dei template separati da virgola; omesso = tutti e quattro.
          required: false
          description: Slug dei template separati da virgola; omesso = tutti e quattro.
          style: form
          explode: false
          name: templates
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 10
            description: Anni di storico, dal più recente (predefinito 1).
          required: false
          description: Anni di storico, dal più recente (predefinito 1).
          name: years
          in: query
        - schema:
            type: string
            enum:
              - individual
              - consolidated
            description: >-
              A quale bilancio si risolve un codice fiscale: `individual`
              (predefinito) è quello che l'azienda ha depositato per sé,
              `consolidated` quello del gruppo. I due possono differire di
              ordini di grandezza. Ignorato per un companyId, che indica già un
              record.
          required: false
          description: >-
            A quale bilancio si risolve un codice fiscale: `individual`
            (predefinito) è quello che l'azienda ha depositato per sé,
            `consolidated` quello del gruppo. I due possono differire di ordini
            di grandezza. Ignorato per un companyId, che indica già un record.
          name: statementBasis
          in: query
        - schema:
            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: false
          description: >-
            Lingua di nomi, etichette e descrizioni delle metriche (mai dei nomi
            dei campi o degli slug). Omessa: la lingua predefinita dell'account.
          name: language
          in: query
      responses:
        '200':
          description: >-
            Grafico spider: quattro profili tematici, venti assi, con le
            metriche dietro ogni asse.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CompanySpider'
                  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'
        '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:
    CompanySpider:
      type: object
      properties:
        company:
          $ref: '#/components/schemas/CompanyYears'
        methodology:
          $ref: '#/components/schemas/SpiderMethodology'
        years:
          type: array
          items:
            $ref: '#/components/schemas/SpiderYear'
      required:
        - company
        - methodology
        - years
      description: >-
        Ogni asse è RELATIVO al mercato dell'azienda, mai un voto assoluto:
        leggilo rispetto al suo marketValue.
    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
    CompanyYears:
      allOf:
        - $ref: '#/components/schemas/CompanyHeader'
        - type: object
          properties:
            yearsReturned:
              type: array
              items:
                type: integer
              description: Dal più recente.
          required:
            - yearsReturned
    SpiderMethodology:
      type: object
      properties:
        version:
          type: string
          example: spider-1.1
        scaleMin:
          type: number
          enum:
            - 1
        scaleMax:
          type: number
          enum:
            - 5
        referenceMarket:
          type: string
        interpretation:
          type: string
        aggregation:
          type: string
        citation:
          type: string
          description: Pronto da citare in un report, versione del metodo inclusa.
        url:
          type: string
          format: uri
      required:
        - version
        - scaleMin
        - scaleMax
        - referenceMarket
        - interpretation
        - aggregation
        - citation
        - url
      description: Versionato; cambia solo quando cambia il metodo.
    SpiderYear:
      type: object
      properties:
        period:
          $ref: '#/components/schemas/FinancialPeriod'
        marketReference:
          $ref: '#/components/schemas/MarketReference'
        summary:
          $ref: '#/components/schemas/SpiderSummary'
        templates:
          type: array
          items:
            $ref: '#/components/schemas/SpiderTemplate'
      required:
        - period
        - marketReference
        - summary
        - templates
    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
    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
    FinancialPeriod:
      type: object
      properties:
        year:
          type: integer
        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.
        sizeBand:
          anyOf:
            - $ref: '#/components/schemas/SizeBand'
            - type: 'null'
        employeeCount:
          type:
            - integer
            - 'null'
      required:
        - year
        - financialStatementDate
        - sizeBand
        - employeeCount
    MarketReference:
      type: object
      properties:
        naceClass:
          type:
            - string
            - 'null'
          description: La stessa classe NACE a 4 cifre dell'azienda.
          example: '44.23'
        size:
          anyOf:
            - $ref: '#/components/schemas/SizeBand'
            - type: 'null'
          description: La stessa classe dimensionale dell'azienda, in quell'anno.
        geographicArea:
          type:
            - object
            - 'null'
          properties:
            level:
              type: string
              enum:
                - nuts1
                - country
              description: >-
                `nuts1` (l'area macro) per le dimensioni XS, S e M; `country`
                per la dimensione L.
            code:
              type: string
              example: ITH
          required:
            - level
            - code
          description: >-
            La stessa area macro dell'azienda, o il suo paese per la dimensione
            L.
      required:
        - naceClass
        - size
        - geographicArea
      description: >-
        Il mercato su cui è calcolato un marketValue: le aziende con la stessa
        classe NACE a 4 cifre e la stessa classe dimensionale nello stesso anno,
        all'interno dell'area macro NUTS 1 dell'azienda - o di tutto il paese
        quando l'azienda è di dimensione L. I campi sono null quando all'azienda
        manca l'attributo (e anche i suoi valori di mercato sono allora null).
    SpiderSummary:
      type: object
      properties:
        overall:
          type:
            - number
            - 'null'
          minimum: 1
          maximum: 5
          description: Media dei valori dei template; ogni template pesa allo stesso modo.
        byTemplate:
          type: array
          items:
            $ref: '#/components/schemas/SpiderTemplateSummary'
      required:
        - overall
        - byTemplate
    SpiderTemplate:
      type: object
      properties:
        slug:
          $ref: '#/components/schemas/SpiderTemplateSlug'
        name:
          type: string
        value:
          type:
            - number
            - 'null'
          minimum: 1
          maximum: 5
          description: Media degli assi del template.
        axes:
          type: array
          items:
            $ref: '#/components/schemas/SpiderAxis'
      required:
        - slug
        - name
        - value
        - axes
    SizeBand:
      type: string
      enum:
        - XS
        - S
        - M
        - L
      description: >-
        Classe dimensionale UE del record di bilancio (non del gruppo, salvo se
        consolidato).
    SpiderTemplateSummary:
      type: object
      properties:
        slug:
          $ref: '#/components/schemas/SpiderTemplateSlug'
        name:
          type: string
        value:
          type:
            - number
            - 'null'
          minimum: 1
          maximum: 5
      required:
        - slug
        - name
        - value
    SpiderTemplateSlug:
      type: string
      enum:
        - management_style
        - economic_performance
        - resources_investments
        - cash_flow_spider_graph
    SpiderAxis:
      type: object
      properties:
        slug:
          type: string
        name:
          type: string
        value:
          type:
            - number
            - 'null'
          minimum: 1
          maximum: 5
          description: Media dei punteggi dei componenti (non un intero).
        marketValue:
          type:
            - number
            - 'null'
          description: >-
            Lo stesso asse per il mercato dell'azienda (il `marketReference`
            dell'anno): il riferimento rispetto a cui leggere `value`.
        components:
          type: array
          items:
            $ref: '#/components/schemas/SpiderComponent'
      required:
        - slug
        - name
        - value
        - marketValue
        - components
    SpiderComponent:
      type: object
      properties:
        slug:
          type: string
          description: Slug della metrica; alcune non rientrano nei 55 dell'analisi.
        name:
          type: string
        unit:
          anyOf:
            - $ref: '#/components/schemas/MetricUnit'
            - type: 'null'
        formulaLatex:
          type:
            - string
            - 'null'
          description: >-
            Come si calcola la metrica, come formula LaTeX (da renderizzare).
            Null per gli elementi letti direttamente dal bilancio.
        value:
          type:
            - number
            - 'null'
        score:
          type:
            - integer
            - 'null'
          minimum: 1
          maximum: 5
          description: >-
            Da 1 a 5 rispetto al mercato dell'azienda, già normalizzato per
            direzione (5 è sempre il migliore). Null quando non c'è punteggio;
            in tal caso non conta per l'asse.
      required:
        - slug
        - name
        - unit
        - formulaLatex
        - value
        - score
    MetricUnit:
      type: string
      enum:
        - eur
        - pct
        - ratio
        - days
        - eur_per_head
        - count
      description: >-
        `pct` è una frazione, mai moltiplicata: 0,15 equivale al 15%, e può
        superare 1 o essere negativa. `eur_per_head` è euro per dipendente.
  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.