changedInput schema / properties / per_page / description
Previous value: -"Results per page (1-100). Default 25."New value: +"Results per page (1-100). Default 25. A budget-cut page returns fewer (`omitted`)."
changedInput schema / properties / select / description
Previous value: -"OpenAlex work field names to return. Always returned: id, display_name. Defaults to the curated works select if omitted."New value: +"OpenAlex work field names to return. Always returned: id, display_name. Defaults to the curated works select if omitted. Large projections may be cut to fit the response budget (`omitted`, `windows`)."
changedOutput schema / properties / meta / properties / next_cursor / description
Previous value: -"Cursor for next page. null if no more results."New value: +"Cursor for next page. null if no more results. Continues after the full upstream page, `omitted` works included."
changedOutput schema / properties / meta / properties / per_page / description
Previous value: -"Page size OpenAlex echoed for this request — the requested per_page, not the number of records returned. A short or exhausted page carries fewer records than this."New value: +"Page size OpenAlex echoed for this request — the requested per_page, not the number of records returned. A short or exhausted page carries fewer records than this, as does a page the response budget cut (`omitted`)."
changedOutput schema / properties / notice / description
Previous value: -"Guidance when no edges are returned. A first call suggests verifying the seed_id, broadening filters, or trying a different direction; a `cursor` continuation says the walk is already past its last edge instead. Absent when results are present."New value: +"Guidance notice. Set when no edges are returned — a first call suggests verifying the seed_id, broadening filters, or trying a different direction; a `cursor` continuation says the walk is already past its last edge instead — when the response budget cut works, windowed an array, or ran over, and when a work carries exactly 100 authorships (possibly capped). Absent otherwise."
addedOutput schema / properties / omitted
Added value: +{
+ "additionalProperties": false,
+ "description": "Present when the response budget cut whole records from the page end; pagination continues after the full upstream page.",
+ "properties": {
+ "ids": {
+ "description": "Bare IDs of the records left out, in page order (a keyword keeps its URL).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "next": {
+ "additionalProperties": false,
+ "description": "One call returning those records as a set, in OpenAlex's order, not page order. Budgeted too, so it may carry its own `omitted`.",
+ "properties": {
+ "arguments": {
+ "additionalProperties": {},
+ "description": "Arguments to pass as-is.",
+ "properties": {},
+ "type": "object"
+ },
+ "tool": {
+ "const": "openalex_search_entities",
+ "description": "Tool to call.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "tool",
+ "arguments"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "ids",
+ "next"
+ ],
+ "type": "object"
+}
addedOutput schema / properties / over_budget
Added value: +{
+ "description": "True when even the least this call can return — the first record's non-array fields (its arrays windowed to empty), or one `slice` element — exceeds the budget.",
+ "type": "boolean"
+}
changedOutput schema / properties / results / description
Previous value: -"Works on the citation graph in this direction. Text values are plain text — HTML entities decoded, HTML/JATS/MathML markup removed."New value: +"Works on the citation graph in this direction. Text values are plain text — HTML entities decoded, HTML/JATS/MathML markup removed — except identifier and URL fields such as `id`, `doi`, `ids`, and `*_url`, returned exactly as OpenAlex stores them. Works cut by the response budget are in `omitted`; partial or possibly capped arrays are in `windows`."
addedOutput schema / properties / windows
Added value: +{
+ "description": "Arrays returned in part — windowed to fit the budget, paged by `slice`, or 100 possibly capped authorships — each with its continuation. A `slice` call always carries its window, even for a whole array; otherwise absent when every array is whole.",
+ "items": {
+ "additionalProperties": false,
+ "description": "An array returned in part.",
+ "properties": {
+ "field": {
+ "description": "Array field.",
+ "type": "string"
+ },
+ "id": {
+ "description": "Bare ID of the record.",
+ "type": "string"
+ },
+ "next": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "arguments": {
+ "additionalProperties": {},
+ "description": "Arguments to pass as-is.",
+ "properties": {},
+ "type": "object"
+ },
+ "tool": {
+ "const": "openalex_search_entities",
+ "description": "Tool to call.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "tool",
+ "arguments"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "`id` + `slice` call for the next elements; null at the array end."
+ },
+ "offset": {
+ "description": "Index of the first element shown.",
+ "type": "number"
+ },
+ "possibly_capped": {
+ "description": "True for exactly 100 authorships on a list record (OpenAlex's cap): the list may be longer.",
+ "type": "boolean"
+ },
+ "shown": {
+ "description": "Elements shown.",
+ "type": "number"
+ },
+ "total": {
+ "description": "Array length as returned to this call.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "id",
+ "field",
+ "offset",
+ "shown",
+ "total",
+ "possibly_capped",
+ "next"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}