Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.creditbenchmark.com/llms.txt

Use this file to discover all available pages before exploring further.

Use these as canonical payload shapes for common Analytics API requests. The most common request is a point-in-time getdata call for a known list of CBIds.
For a list of known entities, use scope.portfolio.CBId. Set lookback_period to 0 for point-in-time data, and request only the columns you need.
{
  "lookback_period": 0,
  "columns": [
    "CBId",
    "CBEntityName",
    "EffectiveDateId",
    "CCR",
    "CCR100PDMid"
  ],
  "scope": {
    "portfolio": {
      "CBId": [
        "CB0000022706",
        "CB0000022177"
      ]
    }
  }
}
Use scope.filters when you want the API to build the input universe before the query runs. This example returns United States entities with a rating of bbb- or worse.
{
  "lookback_period": 0,
  "columns": [
    "CBId",
    "CBEntityName",
    "EffectiveDateId",
    "CCR",
    "CCR100PDMid"
  ],
  "scope": {
    "filters": [
      {
        "key": "CBCountryOfRisk",
        "operator": "==",
        "values": "United States"
      },
      {
        "key": "CCR21Notch",
        "operator": ">=",
        "values": 8
      }
    ]
  }
}
Use a broad scope.filters condition when you want all entities with a consensus rating.
{
  "lookback_period": 0,
  "columns": [
    "CBId",
    "CBEntityName",
    "EffectiveDateId",
    "CCR",
    "CCR100PDMid"
  ],
  "scope": {
    "filters": [
      {
        "key": "CCR",
        "operator": "is not null",
        "values": ""
      }
    ]
  }
}
Use result_filter to filter or sort rows after the data is selected. This is separate from scope.filters, which defines the input universe before the query runs.
{
  "result_filter": {
    "filters": [
      {
        "key": "CCR100PDMid",
        "operator": ">",
        "values": 0.002
      }
    ],
    "sort": [
      {
        "field": "CCR100PDMid",
        "direction": "asc"
      }
    ]
  }
}
filters_join is optional. If you omit it, multiple filters are joined with AND.Only add filters_join when you need explicit boolean logic such as NOT, OR, or a mixed expression. When present, it is positional and must have one more item than filters.For a simple AND, omit filters_join.
{
  "scope": {
    "filters": [
      {
        "key": "CBCountryOfRisk",
        "operator": "==",
        "values": "United States"
      },
      {
        "key": "CCR21Notch",
        "operator": ">=",
        "values": 8
      }
    ]
  }
}
For explicit OR, place | between the filters.
{
  "scope": {
    "filters": [
      {
        "key": "CBCountryOfRisk",
        "operator": "==",
        "values": "United States"
      },
      {
        "key": "CBSector",
        "operator": "!=",
        "values": "Insurance"
      }
    ],
    "filters_join": ["", "|", ""]
  }
}
Use scope.filters to define the input universe before the analytic runs. Use result_filter.filters only to filter computed output rows after the analytic has already run.
Last modified on May 12, 2026