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

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

# Covenant

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.

## OpenAPI definition

```yaml
openapi: 3.1.0
info:
  title: Covenant Data API
  version: 0.7.0
servers:
  - url: https://api.9fin.com
components:
  schemas:
    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.
```
