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

# US agency bonds

> Field reference for the US agency bond Reference Data response

This is the complete field dictionary for the data returned by the [US agency bond Reference Data](/api-endpoints/us-agency-bond-reference) endpoint.

Each call returns an object of the shape `{ "data": [ ... ], "total": <integer> }`, where every entry in `data` describes a single bond using the fields below.

<ResponseField name="isin" type="string">
  International Securities Identification Number (ISIN), unique 12-character code for the security.
</ResponseField>

<ResponseField name="call_type" type="string">
  Type of call provision on the bond:

  * `european`: Callable only on a single specified date.
  * `american`: Callable on any date after the lockout period.
  * `bermudan`: Callable on a set of predetermined dates.
</ResponseField>

<ResponseField name="cfi_code" type="string">
  Classification of Financial Instruments (CFI) code:

  The CFI code is a six-letter code that classifies a financial instrument by its type and key features (e.g., fixed/floating rate, registered/bearer, secured/unsecured).
</ResponseField>

<ResponseField name="composite_issue_rating" type="string">
  Composite rating of the issue.

  **Allowed values:** `A`, `A+`, `A-`, `AA`, `AA+`, `AA-`, `AAA`, `B`, `B+`, `B-`, `BB`, `BB+`, `BB-`, `BBB`, `BBB+`, `BBB-`, `C`, `CC`, `CCC`, `CCC+`, `CCC-`, `D`
</ResponseField>

<ResponseField name="composite_issuer_rating" type="string">
  Composite rating of the issuer.

  **Allowed values:** `A`, `A+`, `A-`, `AA`, `AA+`, `AA-`, `AAA`, `B`, `B+`, `B-`, `BB`, `BB+`, `BB-`, `BBB`, `BBB+`, `BBB-`, `C`, `CC`, `CCC`, `CCC+`, `CCC-`, `D`
</ResponseField>

<ResponseField name="country" type="string">
  Country of issuing entity:

  * `United States of America`: Country of issue is United States of America.
</ResponseField>

<ResponseField name="country_code" type="string">
  ISO 3166-1 alpha-2 country code (2-letter code) of the country of issue.
</ResponseField>

<ResponseField name="coupon" type="number">
  Interest rate or coupon of the bond.
</ResponseField>

<ResponseField name="coupon_frequency" type="integer">
  Number of coupon payments per year.
</ResponseField>

<ResponseField name="coupon_payment_day" type="integer">
  Day of the month when coupon payments are made.
</ResponseField>

<ResponseField name="coupon_payment_months" type="array of integer">
  Months when coupon payments are made (1-12).

  **Examples:**

  * `[2, 8]`: Coupon payments are made on February and August.
</ResponseField>

<ResponseField name="currency" type="string">
  Currency in which the bond is denominated (3-letter ISO 4217 code).
</ResponseField>

<ResponseField name="figi" type="string">
  Financial Instrument Global Identifier (FIGI), a unique 12-character alphanumeric code for financial instruments.
</ResponseField>

<ResponseField name="figi_name" type="string">
  Name associated with the FIGI (Financial Instrument Global Identifier).
</ResponseField>

<ResponseField name="first_call_date" type="date">
  Date of the first call option in ISO-8601 format (YYYY-MM-DD).
</ResponseField>

<ResponseField name="first_interest_payment_date" type="date">
  Date of the first interest payment in ISO-8601 format (YYYY-MM-DD).
</ResponseField>

<ResponseField name="integral_multiple" type="number">
  Integral multiple for bond denominations.
</ResponseField>

<ResponseField name="interest_accrual_convention" type="string">
  Day count convention for interest accrual:

  * `act/act (ICMA)`: Uses actual number of days in period and year.
  * `30/360`: Assumes 30 days per month, 360 days per year.
  * `act/360`: Uses actual days in period, 360 days per year.
  * `act/365`: Uses actual days in period, 365 days per year.
  * `act/act`: Uses actual number of days in period and year.
  * `act/act (ISDA)`: ISDA convention for actual/actual.
  * `act/act (AFB)`: AFB convention for actual/actual.
</ResponseField>

<ResponseField name="interest_accrual_date" type="date">
  Date in ISO-8601 format (YYYY-MM-DD) from which interest accrues.
</ResponseField>

<ResponseField name="interest_payment_schedule" type="array of object">
  The interest payment schedule specifies the schedule of interest payments, which may be periodic or deferred until maturity (for CABs, notes or deferred interest bonds). It is represented as an array of objects with the following schema:

  <Expandable title="properties">
    <ResponseField name="interest_type" type="string">
      **Allowed values:** `accreting`, `regular`
    </ResponseField>

    <ResponseField name="payment_date" type="object">
      <Expandable title="properties">
        <ResponseField name="day" type="integer" />

        <ResponseField name="month" type="integer" />

        <ResponseField name="year" type="integer" />
      </Expandable>
    </ResponseField>

    <ResponseField name="periodic_schedule" type="object">
      <Expandable title="properties">
        <ResponseField name="period_amount" type="integer" />

        <ResponseField name="period_type" type="string">
          **Allowed values:** `month`, `week`
        </ResponseField>

        <ResponseField name="until" type="date" />
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="interest_rate" type="number or object">
  Interest rate or coupon of the bond, expressed as a percentage of the bond's face value.

  <Expandable title="properties">
    <ResponseField name="benchmark" type="string" />

    <ResponseField name="pct_of_benchmark" type="number" />

    <ResponseField name="spread_in_bps" type="number" />
  </Expandable>
</ResponseField>

<ResponseField name="interest_rate_schedule" type="array of object">
  The interest rate structure specifies the applicable interest rate for a given period and defines how it is set and adjusted over the bond’s term, including periodic adjustments for variable rate bonds. It is represented as an array of objects with the following schema:

  <Expandable title="properties">
    <ResponseField name="determination_period" type="object">
      <Expandable title="properties">
        <ResponseField name="period_length" type="integer" />

        <ResponseField name="period_type" type="string">
          **Allowed values:** `day`, `month`, `week`
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="from_date" type="date">
      Can be null if it applies from issue
    </ResponseField>

    <ResponseField name="interest_rate" type="number or object">
      <Expandable title="properties">
        <ResponseField name="benchmark" type="string">
          **Allowed values:** `auction`, `cpi`, `federal-funds-rate`, `libor`, `mmd`, `remarketing-agent`, `sifma`, `sofr`, `treasury`
        </ResponseField>

        <ResponseField name="pct_of_benchmark" type="number" />

        <ResponseField name="spread_in_bps" type="number" />
      </Expandable>
    </ResponseField>

    <ResponseField name="interest_type" type="string">
      **Allowed values:** `compounding`, `fixed`, `variable`, `zero`
    </ResponseField>

    <ResponseField name="rate_mode_name" type="string">
      The name of the rate mode.

      **Allowed values:** `15-day`, `adjustable`, `auction`, `bank-purchase`, `bi-weekly`, `cpi`, `daily`, `fixed`, `flexible`, `floating`, `frn`, `index`, `libor`, `long-term`, `medium-term`, `monthly`, `multiannual`, `pass-through`, `permanent`, `quarterly`, `r-floats`, `remarketing-agent`, `reset`, `short-term`, `sifma`, `sofr`, `term`, `term-floater`, `two-day`, `unit_price`, `weekly`, `window`
    </ResponseField>

    <ResponseField name="until_date" type="date">
      Can be null if it applies until maturity. Range is exclusive, i.e. means until but not including.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="interest_type" type="string">
  Type of interest:

  * `fixed rate`: The bond pays a fixed interest rate throughout its life.
  * `zero rate / discount rate`: A bond that does not pay or accrue interest.
  * `variable rate`: The bond's interest rate can change over time, typically based on a reference rate or formula (e.g., SOFR, CPI).
  * `step rate`: The bond's interest rate increases ("steps up") at predetermined intervals.
</ResponseField>

<ResponseField name="is_144a" type="boolean">
  Whether the bond is Rule 144A compliant,can be sold to qualified US institutional buyers.
</ResponseField>

<ResponseField name="is_callable" type="boolean">
  Whether the bond is callable before maturity.
</ResponseField>

<ResponseField name="is_covered" type="boolean">
  Whether the bond is secured by collateral.
</ResponseField>

<ResponseField name="is_green" type="boolean">
  Whether the bond is a green bond.
</ResponseField>

<ResponseField name="is_inflation_linked" type="boolean">
  Whether the bond is inflation-linked, its payments are linked to an inflation index.
</ResponseField>

<ResponseField name="is_outstanding" type="boolean">
  Whether the bond is currently outstanding, has not matured, been called, or otherwise redeemed.
</ResponseField>

<ResponseField name="is_puttable" type="boolean">
  Whether the bond is puttable before maturity.
</ResponseField>

<ResponseField name="is_regs" type="boolean">
  Whether the bond is Regulation S (RegS) compliant, can be sold to non-US investors.
</ResponseField>

<ResponseField name="issue_date" type="date">
  Date the bond was issued in ISO-8601 format (YYYY-MM-DD).
</ResponseField>

<ResponseField name="issue_price" type="number">
  Price at which the bond was issued (percentage of par), the price is expressed as a percentage of the bond's face value.
</ResponseField>

<ResponseField name="issued_amount" type="number">
  Total amount issued (face value) in the bond's currency.
</ResponseField>

<ResponseField name="issuer_name" type="string">
  Name of the issuing agency.

  **Allowed values:** `FEDERAL HOME LOAN MORTGAGE CORPORATION`, `FEDERAL NATIONAL MORTGAGE ASSOCIATION`
</ResponseField>

<ResponseField name="lei" type="string">
  Legal Entity Identifier (LEI) of the issuer:

  A 20-character, alpha-numeric code based on the ISO 17442 standard used to uniquely identify legal entities in financial transactions. Most LEIs follow this structure, but there are exceptions that use local national standards.
</ResponseField>

<ResponseField name="maturity_date" type="date">
  Date when the bond principal is due to be repaid in ISO-8601 format (YYYY-MM-DD).
</ResponseField>

<ResponseField name="maturity_type" type="string">
  Maturity type:

  * `fixed`: Principal repaid at maturity.
  * `amortized`: Principal repaid gradually before maturity.
  * `perpetual`: No maturity date; principal is never repaid.
  * `extendible`: Maturity date can be extended by issuer or holder.
</ResponseField>

<ResponseField name="minimum_denomination" type="number">
  Minimum denomination in which the bond can be purchased.
</ResponseField>

<ResponseField name="next_call_date" type="date">
  Date of the next call option in ISO-8601 format (YYYY-MM-DD).
</ResponseField>

<ResponseField name="next_call_price" type="number">
  Price at the nearest call date from today, if exists.
</ResponseField>

<ResponseField name="next_coupon_date" type="date">
  Date of the next coupon payment in ISO-8601 format (YYYY-MM-DD).
</ResponseField>

<ResponseField name="odd_first_coupon" type="string">
  Indicates whether the first coupon payment is odd:

  * `regular`: First coupon payment follows the standard interval.
  * `short`: First coupon period is shorter than the typical payment interval.
  * `long`: First coupon period is longer than the typical payment interval.
</ResponseField>

<ResponseField name="odd_last_coupon" type="string">
  Indicates whether the last coupon payment is odd:

  * `regular`: Last coupon payment follows the standard interval.
  * `short`: Last coupon period is shorter than the typical payment interval.
  * `long`: Last coupon period is longer than the typical payment interval.
</ResponseField>

<ResponseField name="optional_redemption_schedule" type="array of object">
  The optional redemption schedule defines the periods for which a bond is callable with a fixed, accreted value (for CABs) and make-whole price. It is represented as an array of objects with the following schema:

  ```json theme={"theme":{"light":"catppuccin-latte","dark":"github-dark-high-contrast"}}
  [
    {
      "until": "<Date>",
      "call_date": "<Date>",
      "call_price": {
        "type": "principal | accreted-value | make-whole",
        "spread_in_bps": "<Number>", // spread above par for principal or accreted-value; spread above benchmark for make-whole
        "benchmark": "mmd | treasury" // benchmark only applies when it's make-whole
      },
      "is_periodic": "true | false",
      "period_type": "day | month",
      "period_amount": "<number>",  // period_amount=1 and period_type="day" means continuously callable
      "includes_accrued_interest": "true | false"
    },
    ...
  ]
  ```
</ResponseField>

<ResponseField name="previous_coupon_date" type="date">
  Date of the previous coupon payment in ISO-8601 format (YYYY-MM-DD).
</ResponseField>

<ResponseField name="rank" type="string">
  Seniority or rank of the bond:

  * `senior unsecured`: Highest priority among unsecured debt.
  * `senior`: Standard senior debt.
  * `secured`: Backed by collateral.
  * `government / state`: Government or state-issued debt.
  * `subordinated`: Lower priority, paid after senior debt.
  * `supranational`: Issued by supranational entities.
  * `senior subordinated`: Senior within subordinated class.
  * `junior secured`: Junior secured debt.
  * `junior subordinated`: Junior within subordinated class.
  * `junior`: Junior debt.
</ResponseField>

<ResponseField name="registration_type" type="string">
  Registration type:

  * `bearer`: Ownership is determined by physical possession.
  * `registered`: Ownership is recorded and tracked by issuer or agent.
  * `misc.`: Miscellaneous registration types.
  * `bearer / registered`: Hybrid registration type.
</ResponseField>

<ResponseField name="standard_day_of_settlement" type="integer">
  Standard number of days between trade date and settlement date.
</ResponseField>

<ResponseField name="ticker" type="string">
  Bond ticker symbol.
</ResponseField>

<ResponseField name="underwriters" type="array of string">
  Financial institutions that facilitate the issuance and sale of bonds by purchasing them from the issuer and reselling them to investors.
</ResponseField>
