---
title: "CovenantDataRecord"
url: "https://console.9fin.com/apis/covenants-service/versions/d54352ff-53e9-48ef-9f3e-d1bf83d9fca7/schemas/CovenantDataRecord"
---

> Full API specification: https://console.9fin.com/apis/covenants-service/versions/d54352ff-53e9-48ef-9f3e-d1bf83d9fca7.md

# CovenantDataRecord

One instrument (entity-per-instrument shape).

## OpenAPI definition

```yaml
openapi: 3.1.0
info:
  title: Covenant Data API
  version: 0.7.0
servers:
  - url: https://api.9fin.com
components:
  schemas:
    Instrument:
      properties:
        type:
          anyOf:
            - type: string
            - type: "null"
          title: Type
        region:
          anyOf:
            - type: string
            - type: "null"
          title: Region
        currency:
          anyOf:
            - type: string
            - type: "null"
          title: Currency
        country_of_risk:
          anyOf:
            - type: string
            - type: "null"
          title: Country Of Risk
        country_of_issuer:
          anyOf:
            - type: string
            - type: "null"
          title: Country Of Issuer
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
        purpose:
          anyOf:
            - type: string
            - type: "null"
          title: Purpose
        is_sustainability_linked:
          anyOf:
            - type: boolean
            - type: "null"
          title: Is Sustainability Linked
      type: object
      title: Instrument
    Issuer:
      properties:
        company:
          anyOf:
            - type: string
            - type: "null"
          title: Company
        industry:
          items:
            type: string
          type: array
          title: Industry
        industry_l2:
          anyOf:
            - type: string
            - type: "null"
          title: Industry L2
        industry_l3:
          anyOf:
            - type: string
            - type: "null"
          title: Industry L3
        sponsor:
          anyOf:
            - type: string
            - type: "null"
          title: Sponsor
        sponsored:
          anyOf:
            - type: boolean
            - type: "null"
          title: Sponsored
      type: object
      title: Issuer
    Deal:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
      type: object
      required:
        - id
        - name
      title: Deal
      description: |-
        Synthesized deal object.

        ``id`` is a stable hash of the internal deal identity (never the raw
        sequential integer); ``name`` is synthesized from street name + issue
        date + instrument type since there is no human-readable deal-name field
        upstream.
    Terms:
      properties:
        amount:
          anyOf:
            - $ref: "#/components/schemas/Range"
            - type: "null"
        coupon:
          anyOf:
            - type: number
            - type: "null"
          title: Coupon
        issue_date:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Issue Date
        maturity:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Maturity
        issue_price:
          anyOf:
            - type: number
            - type: "null"
          title: Issue Price
        non_call:
          anyOf:
            - type: string
            - type: "null"
          title: Non Call
      type: object
      title: Terms
    Ratings:
      properties:
        fitch:
          anyOf:
            - type: string
            - type: "null"
          title: Fitch
        moodys:
          anyOf:
            - type: string
            - type: "null"
          title: Moodys
        s_and_p:
          anyOf:
            - type: string
            - type: "null"
          title: S And P
        fitch_cfr:
          anyOf:
            - type: string
            - type: "null"
          title: Fitch Cfr
        moodys_cfr:
          anyOf:
            - type: string
            - type: "null"
          title: Moodys Cfr
        s_and_p_cfr:
          anyOf:
            - type: string
            - type: "null"
          title: S And P Cfr
      type: object
      title: Ratings
      description: |-
        Instrument ratings at issuance, plus company-level (CFR) ratings.

        The ``*_cfr`` values are Corporate Family Ratings - a property of the
        issuer, not the tranche.
    Parties:
      properties:
        bookrunner:
          anyOf:
            - type: string
            - type: "null"
          title: Bookrunner
        company_legal_advisor:
          anyOf:
            - type: string
            - type: "null"
          title: Company Legal Advisor
        bookrunner_legal_advisor:
          anyOf:
            - type: string
            - type: "null"
          title: Bookrunner Legal Advisor
      type: object
      title: Parties
      description: >-
        Counterparties on the instrument.


        All three are real firm names and all three are nulled on restricted
        rows

        (``scramble_func=set_null`` in ``models.py``), mirroring the legacy

        screener's behaviour exactly.
    Financials:
      properties:
        ebitda:
          anyOf:
            - $ref: "#/components/schemas/Range"
            - type: "null"
        net_senior_leverage:
          anyOf:
            - type: number
            - type: "null"
          title: Net Senior Leverage
        net_total_leverage:
          anyOf:
            - type: number
            - type: "null"
          title: Net Total Leverage
      type: object
      title: Financials
    Covenant:
      properties:
        key:
          type: string
          title: Key
        category:
          type: string
          title: Category
        name:
          type: string
          title: Name
        value_type:
          type: string
          enum:
            - string
            - number
            - boolean
          title: Value Type
        value:
          anyOf:
            - type: string
            - type: number
            - type: boolean
          title: Value
        unit:
          anyOf:
            - type: string
            - type: "null"
          title: Unit
      type: object
      required:
        - key
        - category
        - name
        - value_type
        - value
      title: Covenant
      description: >-
        One covenant datapoint, self-describing.


        Carries its own ``key``/``category``/``name`` inline so no second call
        to the

        reference catalog is needed to interpret a search response. ``value`` is

        heterogeneous by datapoint (string, number, bool); the required

        ``value_type`` discriminator disambiguates it, as published in the

        OpenAPI spec.


        ``value`` is required and never null: a covenant entry whose source

        datapoint yields no extractable value is dropped by the composition
        layer

        rather than emitted as ``value: null`` alongside a ``value_type``.

        ``unit`` is omitted from the wire (``response_model_exclude_none``)
        unless

        the value is a number with a unit.
    Range:
      properties:
        min:
          anyOf:
            - type: number
            - type: "null"
          title: Min
        max:
          anyOf:
            - type: number
            - type: "null"
          title: Max
      type: object
      title: Range
      description: Anonymised numeric bucket, e.g. amount/EBITDA ranges.
    CovenantDataRecord:
      properties:
        instrument:
          $ref: "#/components/schemas/Instrument"
        issuer:
          $ref: "#/components/schemas/Issuer"
        deal:
          $ref: "#/components/schemas/Deal"
        terms:
          $ref: "#/components/schemas/Terms"
        ratings:
          $ref: "#/components/schemas/Ratings"
        parties:
          $ref: "#/components/schemas/Parties"
        financials:
          $ref: "#/components/schemas/Financials"
        covenants:
          items:
            $ref: "#/components/schemas/Covenant"
          type: array
          title: Covenants
      type: object
      required:
        - instrument
        - issuer
        - deal
        - terms
        - ratings
        - parties
        - financials
      title: CovenantDataRecord
      description: One instrument (entity-per-instrument shape).
```
