FOLIO · Schema

DashboardWidgetDefinition

A single dashboard widget definition, describing a self-service search/list widget that a dashboard-capable FOLIO app can render against one of its own resources. The `definition` block configures the columns available for the results table, quick-search matching, structured filtering, and sorting.

CompanyLibrariesLibrary Services PlatformOpen SourceMicroservicesEducation

Properties

Name Type Description
type object The widget implementation this definition targets.
version string Version of this specific widget definition.
name string Display name of the widget, e.g. `ERM Licenses`.
definition object
View JSON Schema on GitHub

JSON Schema

folio-dashboard-widget-definition-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/folio/main/json-schema/folio-dashboard-widget-definition-schema.json",
  "title": "DashboardWidgetDefinition",
  "description": "A single dashboard widget definition, describing a self-service search/list widget that a dashboard-capable FOLIO app can render against one of its own resources. The `definition` block configures the columns available for the results table, quick-search matching, structured filtering, and sorting.",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/folio-mod-agreements-openapi.yml#/components/schemas/DashboardWidgetDefinition",
  "type": "object",
  "required": [
    "type",
    "version",
    "name",
    "definition"
  ],
  "properties": {
    "type": {
      "type": "object",
      "description": "The widget implementation this definition targets.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Widget type name, e.g. `SimpleSearch`."
        },
        "version": {
          "type": "string",
          "description": "Version of the widget type's own configuration format."
        }
      }
    },
    "version": {
      "type": "string",
      "description": "Version of this specific widget definition."
    },
    "name": {
      "type": "string",
      "description": "Display name of the widget, e.g. `ERM Licenses`."
    },
    "definition": {
      "type": "object",
      "properties": {
        "baseUrl": {
          "type": "string",
          "description": "API path the widget queries for `resource` records."
        },
        "resource": {
          "type": "string",
          "description": "Name of the resource type the widget lists/searches."
        },
        "results": {
          "type": "object",
          "description": "Columns available in the widget's results table.",
          "properties": {
            "columns": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/DashboardWidgetResultColumn"
              }
            }
          }
        },
        "matches": {
          "type": "object",
          "description": "Fields the widget's free-text quick search matches against.",
          "properties": {
            "columns": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/DashboardWidgetMatchColumn"
              }
            },
            "termConfigurable": {
              "type": "boolean",
              "description": "Whether the user can choose which of these fields to search."
            }
          }
        },
        "filters": {
          "type": "object",
          "description": "Fields available for building structured filters.",
          "properties": {
            "columns": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/DashboardWidgetFilterColumn"
              }
            }
          }
        },
        "sort": {
          "type": "object",
          "description": "Fields the results table can be sorted by.",
          "properties": {
            "columns": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/DashboardWidgetSortColumn"
              }
            }
          }
        },
        "configurableProperties": {
          "type": "object",
          "description": "Per-instance widget settings a user can override when adding this widget to a dashboard, keyed by property name.",
          "additionalProperties": {
            "type": "object",
            "properties": {
              "configurable": {
                "type": "boolean",
                "description": "Whether the user may override this property."
              },
              "defValue": {
                "description": "Default value. Type depends on the property."
              }
            }
          }
        }
      }
    }
  },
  "$defs": {
    "DashboardWidgetFilterColumn": {
      "type": "object",
      "description": "A field available for building a structured filter.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Internal field identifier."
        },
        "label": {
          "type": "string",
          "description": "Display label for the field."
        },
        "filterPath": {
          "type": "string",
          "description": "Dot-path/query field the filter is applied to."
        },
        "valueType": {
          "type": "string",
          "description": "Value type the filter compares, e.g. `String`, `UUID`, `Date`, `Enum`, `Array`."
        },
        "resource": {
          "type": "string",
          "description": "For `valueType: UUID` reference filters, the related resource type to look up candidate values from."
        },
        "comparators": {
          "type": "array",
          "description": "Comparison operators the UI may offer for this filter.",
          "items": {
            "type": "string"
          }
        },
        "enumValues": {
          "type": "array",
          "description": "For `valueType: Enum` filters, the allowed values.",
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string"
              },
              "label": {
                "type": "string"
              }
            }
          }
        }
      },
      "additionalProperties": true
    },
    "DashboardWidgetMatchColumn": {
      "type": "object",
      "description": "A field the widget's free-text quick search matches against.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Internal field identifier."
        },
        "label": {
          "type": "string",
          "description": "Display label for the field."
        },
        "accessPath": {
          "type": "string",
          "description": "Dot-path into the resource record to match the search term against."
        },
        "default": {
          "type": "boolean",
          "description": "Whether this field is matched by default."
        }
      },
      "additionalProperties": true
    },
    "DashboardWidgetResultColumn": {
      "type": "object",
      "description": "A single column in a dashboard widget's results table.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Internal column identifier."
        },
        "label": {
          "type": "string",
          "description": "Display label for the column."
        },
        "accessPath": {
          "type": "string",
          "description": "Dot-path into the resource record used to derive the cell value."
        },
        "valueType": {
          "type": "string",
          "description": "How the UI should render the cell value.",
          "enum": [
            "String",
            "Link",
            "Date",
            "Boolean",
            "Array"
          ]
        },
        "arrayDisplayPath": {
          "type": "string",
          "description": "For `valueType: Array` columns, the dot-path within each array item to display."
        }
      },
      "additionalProperties": true
    },
    "DashboardWidgetSortColumn": {
      "type": "object",
      "description": "A field the widget's results table can be sorted by.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Internal field identifier."
        },
        "label": {
          "type": "string",
          "description": "Display label for the field."
        },
        "sortPath": {
          "type": "string",
          "description": "Dot-path/query field used when sorting."
        },
        "sortTypes": {
          "type": "array",
          "description": "Supported sort directions.",
          "items": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ]
          }
        }
      },
      "additionalProperties": true
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/folio-dashboard-widget-definition"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.