FOLIO · Schema
reportCost
Cost report schema
CompanyLibrariesLibrary Services PlatformOpen SourceMicroservicesEducation
Properties
| Name | Type | Description |
|---|---|---|
| accessCountPeriods | array | List of reporting periods, either a list of months or a list of years, for example ["2020-03", "2020-04", "2020-05"] |
| amountEncumberedTotal | number | This number is sum of all encumbered amounts in the total access period |
| amountPaidTotal | number | This number is sum of all paid amounts in the total access period |
| costByPeriod | array | Total cost for each period |
| items | array | List of items, with access data per item |
| titleCountByPeriod | array | Title count per period, total for all items |
| totalItemRequestsByPeriod | array | Total access count per period |
| totalItemCostsPerRequestsByPeriod | array | Cost per period, total for all items |
| uniqueItemRequestsByPeriod | array | Unique access count per period |
| uniqueItemCostsPerRequestsByPeriod | array | Unique access count per period, total for all items |
| execution | object | Information about execution, such as various timings |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/folio/main/json-schema/folio-report-cost-schema.json",
"title": "reportCost",
"description": "Cost report schema",
"x-generated": "2026-10-09",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/folio-mod-eusage-reports-eusage-reports-1-0-openapi.yml#/components/schemas/reportCost",
"type": "object",
"properties": {
"accessCountPeriods": {
"description": "List of reporting periods, either a list of months or a list of years, for example [\"2020-03\", \"2020-04\", \"2020-05\"]",
"type": "array",
"items": {
"type": "string"
}
},
"amountEncumberedTotal": {
"description": "This number is sum of all encumbered amounts in the total access period",
"type": "number"
},
"amountPaidTotal": {
"description": "This number is sum of all paid amounts in the total access period",
"type": "number"
},
"costByPeriod": {
"type": "array",
"description": "Total cost for each period",
"items": {
"type": [
"number",
"null"
]
}
},
"items": {
"description": "List of items, with access data per item",
"type": "array",
"items": {
"$ref": "#/$defs/reportCostRow"
}
},
"titleCountByPeriod": {
"type": "array",
"description": "Title count per period, total for all items",
"items": {
"type": [
"integer",
"null"
]
}
},
"totalItemRequestsByPeriod": {
"type": "array",
"description": "Total access count per period",
"items": {
"type": [
"integer",
"null"
]
}
},
"totalItemCostsPerRequestsByPeriod": {
"type": "array",
"description": "Cost per period, total for all items",
"items": {
"type": [
"number",
"null"
]
}
},
"uniqueItemRequestsByPeriod": {
"type": "array",
"description": "Unique access count per period",
"items": {
"type": [
"integer",
"null"
]
}
},
"uniqueItemCostsPerRequestsByPeriod": {
"type": "array",
"description": "Unique access count per period, total for all items",
"items": {
"type": [
"number",
"null"
]
}
},
"execution": {
"description": "Information about execution, such as various timings",
"type": "object"
}
},
"additionalProperties": false,
"$defs": {
"reportCostRow": {
"description": "Single row of cost report data",
"type": "object",
"properties": {
"kbId": {
"type": "string",
"description": "KB identifier"
},
"title": {
"type": "string",
"description": "Title if the item"
},
"derivedTitle": {
"type": "boolean",
"description": "Indicate whether the resource is derived from an agreement line"
},
"printISSN": {
"type": "string",
"description": "ISSN for print instance"
},
"onlineISSN": {
"type": "string",
"description": "ISSN for online instance"
},
"ISBN": {
"type": "string",
"description": "ISBN for instance"
},
"orderType": {
"type": "string",
"enum": [
"One-Time",
"Ongoing"
],
"description": "Order type from agreement - defaults to Ongoing"
},
"poLineIDs": {
"type": "array",
"description": "PO line IDs",
"items": {
"type": "string",
"description": "PO line ID"
}
},
"invoiceNumbers": {
"type": "array",
"description": "Invoice numbers",
"items": {
"type": "string",
"description": "Invoice number"
}
},
"fiscalDateStart": {
"type": "string",
"description": "Fiscal date start, YYYY-MM-DD"
},
"fiscalDateEnd": {
"type": "string",
"description": "Fiscal date end, YYYY-MM-DD"
},
"subscriptionDateStart": {
"type": "string",
"description": "Subscription date start, YYYY-MM-DD"
},
"subscriptionDateEnd": {
"type": "string",
"description": "Subscription date end, YYYY-MM-DD"
},
"publicationYear": {
"type": "string",
"description": "Publication year .. or range (eg 2000 for 1Y, or 2000-2001 for 2Y)"
},
"amountEncumbered": {
"type": "number",
"description": "Encumbered amount for PO lines"
},
"amountPaid": {
"description": "Paid amount for invoices",
"type": "number"
},
"totalItemRequests": {
"description": "total item requests",
"type": "integer"
},
"uniqueItemRequests": {
"description": "unique item requests",
"type": "integer"
},
"costPerTotalRequest": {
"type": "number",
"description": "Cost per total request for invoices"
},
"costPerUniqueRequest": {
"type": "number",
"description": "Cost per unique request for invoices"
}
},
"additionalProperties": false
}
}
}
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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/folio-report-cost"
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.