Google · Schema

Document

A Google Docs document.

AdvertisingCloudDevelopersGooglePlatformSearchT1Agentic CommerceUniversal Commerce ProtocolAP2A2A

Properties

Name Type Description
body object Output only. The main body of the document.
documentId string Output only. The ID of the document.
documentStyle object Output only. The style of the document.
footers object Output only. The footers in the document, keyed by footer ID.
footnotes object Output only. The footnotes in the document, keyed by footnote ID.
headers object Output only. The headers in the document, keyed by header ID.
inlineObjects object Output only. The inline objects in the document, keyed by object ID.
lists object Output only. The lists in the document, keyed by list ID.
namedRanges object Output only. The named ranges in the document, keyed by name.
namedStyles object Output only. The named styles of the document.
positionedObjects object Output only. The positioned objects in the document, keyed by object ID.
revisionId string Output only. The revision ID of the document. Can be used in update requests to specify which revision of a document to apply updates to and how the request should behave if the document has been edit
suggestedDocumentStyleChanges object Output only. The suggested changes to the style of the document, keyed by suggestion ID.
suggestedNamedStylesChanges object Output only. The suggested changes to the named styles of the document, keyed by suggestion ID.
suggestionsViewMode string Output only. The suggestions view mode applied to the document. Note: When editing a document, changes must be based on a document with SUGGESTIONS_INLINE.
title string The title of the document.
View JSON Schema on GitHub

JSON Schema

google-document-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/google/main/json-schema/google-document-schema.json",
  "title": "Document",
  "description": "A Google Docs document.",
  "x-generated": "2026-10-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-documents-api-openapi.yml#/components/schemas/Document",
  "properties": {
    "body": {
      "$ref": "#/$defs/Body",
      "description": "Output only. The main body of the document."
    },
    "documentId": {
      "description": "Output only. The ID of the document.",
      "type": "string"
    },
    "documentStyle": {
      "$ref": "#/$defs/DocumentStyle",
      "description": "Output only. The style of the document."
    },
    "footers": {
      "additionalProperties": {
        "$ref": "#/$defs/Footer"
      },
      "description": "Output only. The footers in the document, keyed by footer ID.",
      "type": "object"
    },
    "footnotes": {
      "additionalProperties": {
        "$ref": "#/$defs/Footnote"
      },
      "description": "Output only. The footnotes in the document, keyed by footnote ID.",
      "type": "object"
    },
    "headers": {
      "additionalProperties": {
        "$ref": "#/$defs/Header"
      },
      "description": "Output only. The headers in the document, keyed by header ID.",
      "type": "object"
    },
    "inlineObjects": {
      "additionalProperties": {
        "$ref": "#/$defs/InlineObject"
      },
      "description": "Output only. The inline objects in the document, keyed by object ID.",
      "type": "object"
    },
    "lists": {
      "additionalProperties": {
        "$ref": "#/$defs/List"
      },
      "description": "Output only. The lists in the document, keyed by list ID.",
      "type": "object"
    },
    "namedRanges": {
      "additionalProperties": {
        "$ref": "#/$defs/NamedRanges"
      },
      "description": "Output only. The named ranges in the document, keyed by name.",
      "type": "object"
    },
    "namedStyles": {
      "$ref": "#/$defs/NamedStyles",
      "description": "Output only. The named styles of the document."
    },
    "positionedObjects": {
      "additionalProperties": {
        "$ref": "#/$defs/PositionedObject"
      },
      "description": "Output only. The positioned objects in the document, keyed by object ID.",
      "type": "object"
    },
    "revisionId": {
      "description": "Output only. The revision ID of the document. Can be used in update requests to specify which revision of a document to apply updates to and how the request should behave if the document has been edited since that revision. Only populated if the user has edit access to the document. The revision ID is not a sequential number but an opaque string. The format of the revision ID might change over time. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the document has not changed. Conversely, a changed ID (for the same document and user) usually means the document has been updated. However, a changed ID can also be due to internal factors such as ID format changes.",
      "type": "string"
    },
    "suggestedDocumentStyleChanges": {
      "additionalProperties": {
        "$ref": "#/$defs/SuggestedDocumentStyle"
      },
      "description": "Output only. The suggested changes to the style of the document, keyed by suggestion ID.",
      "type": "object"
    },
    "suggestedNamedStylesChanges": {
      "additionalProperties": {
        "$ref": "#/$defs/SuggestedNamedStyles"
      },
      "description": "Output only. The suggested changes to the named styles of the document, keyed by suggestion ID.",
      "type": "object"
    },
    "suggestionsViewMode": {
      "description": "Output only. The suggestions view mode applied to the document. Note: When editing a document, changes must be based on a document with SUGGESTIONS_INLINE.",
      "enum": [
        "DEFAULT_FOR_CURRENT_ACCESS",
        "SUGGESTIONS_INLINE",
        "PREVIEW_SUGGESTIONS_ACCEPTED",
        "PREVIEW_WITHOUT_SUGGESTIONS"
      ],
      "type": "string"
    },
    "title": {
      "description": "The title of the document.",
      "type": "string"
    }
  },
  "type": "object",
  "$defs": {
    "AutoText": {
      "description": "A ParagraphElement representing a spot in the text that's dynamically replaced with content that can change over time, like a page number.",
      "properties": {
        "suggestedDeletionIds": {
          "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "suggestedInsertionIds": {
          "description": "The suggested insertion IDs. An AutoText may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "suggestedTextStyleChanges": {
          "additionalProperties": {
            "$ref": "#/$defs/SuggestedTextStyle"
          },
          "description": "The suggested text style changes to this AutoText, keyed by suggestion ID.",
          "type": "object"
        },
        "textStyle": {
          "$ref": "#/$defs/TextStyle",
          "description": "The text style of this AutoText."
        },
        "type": {
          "description": "The type of this auto text.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "PAGE_NUMBER",
            "PAGE_COUNT"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "Background": {
      "description": "Represents the background of a document.",
      "properties": {
        "color": {
          "$ref": "#/$defs/OptionalColor",
          "description": "The background color."
        }
      },
      "type": "object"
    },
    "BackgroundSuggestionState": {
      "description": "A mask that indicates which of the fields on the base Background have been changed in this suggestion. For any field set to true, the Backgound has a new suggested value.",
      "properties": {
        "backgroundColorSuggested": {
          "description": "Indicates whether the current background color has been modified in this suggestion.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "Body": {
      "description": "The document body. The body typically contains the full document contents except for headers, footers, and footnotes.",
      "properties": {
        "content": {
          "description": "The contents of the body. The indexes for the body's content begin at zero.",
          "items": {
            "$ref": "#/$defs/StructuralElement"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Bullet": {
      "description": "Describes the bullet of a paragraph.",
      "properties": {
        "listId": {
          "description": "The ID of the list this paragraph belongs to.",
          "type": "string"
        },
        "nestingLevel": {
          "description": "The nesting level of this paragraph in the list.",
          "format": "int32",
          "type": "integer"
        },
        "textStyle": {
          "$ref": "#/$defs/TextStyle",
          "description": "The paragraph-specific text style applied to this bullet."
        }
      },
      "type": "object"
    },
    "BulletSuggestionState": {
      "description": "A mask that indicates which of the fields on the base Bullet have been changed in this suggestion. For any field set to true, there's a new suggested value.",
      "properties": {
        "listIdSuggested": {
          "description": "Indicates if there was a suggested change to the list_id.",
          "type": "boolean"
        },
        "nestingLevelSuggested": {
          "description": "Indicates if there was a suggested change to the nesting_level.",
          "type": "boolean"
        },
        "textStyleSuggestionState": {
          "$ref": "#/$defs/TextStyleSuggestionState",
          "description": "A mask that indicates which of the fields in text style have been changed in this suggestion."
        }
      },
      "type": "object"
    },
    "Color": {
      "description": "A solid color.",
      "properties": {
        "rgbColor": {
          "$ref": "#/$defs/RgbColor",
          "description": "The RGB color value."
        }
      },
      "type": "object"
    },
    "ColumnBreak": {
      "description": "A ParagraphElement representing a column break. A column break makes the subsequent text start at the top of the next column.",
      "properties": {
        "suggestedDeletionIds": {
          "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "suggestedInsertionIds": {
          "description": "The suggested insertion IDs. A ColumnBreak may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "suggestedTextStyleChanges": {
          "additionalProperties": {
            "$ref": "#/$defs/SuggestedTextStyle"
          },
          "description": "The suggested text style changes to this ColumnBreak, keyed by suggestion ID.",
          "type": "object"
        },
        "textStyle": {
          "$ref": "#/$defs/TextStyle",
          "description": "The text style of this ColumnBreak. Similar to text content, like text runs and footnote references, the text style of a column break can affect content layout as well as the styling of text inserted next to it."
        }
      },
      "type": "object"
    },
    "CropProperties": {
      "description": "The crop properties of an image. The crop rectangle is represented using fractional offsets from the original content's 4 edges. - If the offset is in the interval (0, 1), the corresponding edge of crop rectangle is positioned inside of the image's original bounding rectangle. - If the offset is negative or greater than 1, the corresponding edge of crop rectangle is positioned outside of the image's original bounding rectangle. - If all offsets and rotation angle are 0, the image is not cropped.",
      "properties": {
        "angle": {
          "description": "The clockwise rotation angle of the crop rectangle around its center, in radians. Rotation is applied after the offsets.",
          "format": "float",
          "type": "number"
        },
        "offsetBottom": {
          "description": "The offset specifies how far inwards the bottom edge of the crop rectangle is from the bottom edge of the original content as a fraction of the original content's height.",
          "format": "float",
          "type": "number"
        },
        "offsetLeft": {
          "description": "The offset specifies how far inwards the left edge of the crop rectangle is from the left edge of the original content as a fraction of the original content's width.",
          "format": "float",
          "type": "number"
        },
        "offsetRight": {
          "description": "The offset specifies how far inwards the right edge of the crop rectangle is from the right edge of the original content as a fraction of the original content's width.",
          "format": "float",
          "type": "number"
        },
        "offsetTop": {
          "description": "The offset specifies how far inwards the top edge of the crop rectangle is from the top edge of the original content as a fraction of the original content's height.",
          "format": "float",
          "type": "number"
        }
      },
      "type": "object"
    },
    "CropPropertiesSuggestionState": {
      "description": "A mask that indicates which of the fields on the base CropProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.",
      "properties": {
        "angleSuggested": {
          "description": "Indicates if there was a suggested change to angle.",
          "type": "boolean"
        },
        "offsetBottomSuggested": {
          "description": "Indicates if there was a suggested change to offset_bottom.",
          "type": "boolean"
        },
        "offsetLeftSuggested": {
          "description": "Indicates if there was a suggested change to offset_left.",
          "type": "boolean"
        },
        "offsetRightSuggested": {
          "description": "Indicates if there was a suggested change to offset_right.",
          "type": "boolean"
        },
        "offsetTopSuggested": {
          "description": "Indicates if there was a suggested change to offset_top.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "Dimension": {
      "description": "A magnitude in a single direction in the specified units.",
      "properties": {
        "magnitude": {
          "description": "The magnitude.",
          "format": "double",
          "type": "number"
        },
        "unit": {
          "description": "The units for magnitude.",
          "enum": [
            "UNIT_UNSPECIFIED",
            "PT"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "DocumentStyle": {
      "description": "The style of the document.",
      "properties": {
        "background": {
          "$ref": "#/$defs/Background",
          "description": "The background of the document. Documents cannot have a transparent background color."
        },
        "defaultFooterId": {
          "description": "The ID of the default footer. If not set, there's no default footer. This property is read-only.",
          "type": "string"
        },
        "defaultHeaderId": {
          "description": "The ID of the default header. If not set, there's no default header. This property is read-only.",
          "type": "string"
        },
        "evenPageFooterId": {
          "description": "The ID of the footer used only for even pages. The value of use_even_page_header_footer determines whether to use the default_footer_id or this value for the footer on even pages. If not set, there's no even page footer. This property is read-only.",
          "type": "string"
        },
        "evenPageHeaderId": {
          "description": "The ID of the header used only for even pages. The value of use_even_page_header_footer determines whether to use the default_header_id or this value for the header on even pages. If not set, there's no even page header. This property is read-only.",
          "type": "string"
        },
        "firstPageFooterId": {
          "description": "The ID of the footer used only for the first page. If not set then a unique footer for the first page does not exist. The value of use_first_page_header_footer determines whether to use the default_footer_id or this value for the footer on the first page. If not set, there's no first page footer. This property is read-only.",
          "type": "string"
        },
        "firstPageHeaderId": {
          "description": "The ID of the header used only for the first page. If not set then a unique header for the first page does not exist. The value of use_first_page_header_footer determines whether to use the default_header_id or this value for the header on the first page. If not set, there's no first page header. This property is read-only.",
          "type": "string"
        },
        "marginBottom": {
          "$ref": "#/$defs/Dimension",
          "description": "The bottom page margin. Updating the bottom page margin on the document style clears the bottom page margin on all section styles."
        },
        "marginFooter": {
          "$ref": "#/$defs/Dimension",
          "description": "The amount of space between the bottom of the page and the contents of the footer."
        },
        "marginHeader": {
          "$ref": "#/$defs/Dimension",
          "description": "The amount of space between the top of the page and the contents of the header."
        },
        "marginLeft": {
          "$ref": "#/$defs/Dimension",
          "description": "The left page margin. Updating the left page margin on the document style clears the left page margin on all section styles. It may also cause columns to resize in all sections."
        },
        "marginRight": {
          "$ref": "#/$defs/Dimension",
          "description": "The right page margin. Updating the right page margin on the document style clears the right page margin on all section styles. It may also cause columns to resize in all sections."
        },
        "marginTop": {
          "$ref": "#/$defs/Dimension",
          "description": "The top page margin. Updating the top page margin on the document style clears the top page margin on all section styles."
        },
        "pageNumberStart": {
          "description": "The page number from which to start counting the number of pages.",
          "format": "int32",
          "type": "integer"
        },
        "pageSize": {
          "$ref": "#/$defs/Size",
          "description": "The size of a page in the document."
        },
        "useCustomHeaderFooterMargins": {
          "description": "Indicates whether DocumentStyle margin_header, SectionStyle margin_header and DocumentStyle margin_footer, SectionStyle margin_footer are respected. When false, the default values in the Docs editor for header and footer margin are used. This property is read-only.",
          "type": "boolean"
        },
        "useEvenPageHeaderFooter": {
          "description": "Indicates whether to use the even page header / footer IDs for the even pages.",
          "type": "boolean"
        },
        "useFirstPageHeaderFooter": {
          "description": "Indicates whether to use the first page header / footer IDs for the first page.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "DocumentStyleSuggestionState": {
      "description": "A mask that indicates which of the fields on the base DocumentStyle have been changed in this suggestion. For any field set to true, there's a new suggested value.",
      "properties": {
        "backgroundSuggestionState": {
          "$ref": "#/$defs/BackgroundSuggestionState",
          "description": "A mask that indicates which of the fields in background have been changed in this suggestion."
        },
        "defaultFooterIdSuggested": {
          "description": "Indicates if there was a suggested change to default_footer_id.",
          "type": "boolean"
        },
        "defaultHeaderIdSuggested": {
          "description": "Indicates if there was a suggested change to default_header_id.",
          "type": "boolean"
        },
        "evenPageFooterIdSuggested": {
          "description": "Indicates if there was a suggested change to even_page_footer_id.",
          "type": "boolean"
        },
        "evenPageHeaderIdSuggested": {
          "description": "Indicates if there was a suggested change to even_page_header_id.",
          "type": "boolean"
        },
        "firstPageFooterIdSuggested": {
          "description": "Indicates if there was a suggested change to first_page_footer_id.",
          "type": "boolean"
        },
        "firstPageHeaderIdSuggested": {
          "description": "Indicates if there was a suggested change to first_page_header_id.",
          "type": "boolean"
        },
        "marginBottomSuggested": {
          "description": "Indicates if there was a suggested change to margin_bottom.",
          "type": "boolean"
        },
        "marginFooterSuggested": {
          "description": "Indicates if there was a suggested change to margin_footer.",
          "type": "boolean"
        },
        "marginHeaderSuggested": {
          "description": "Indicates if there was a suggested change to margin_header.",
          "type": "boolean"
        },
        "marginLeftSuggested": {
          "description": "Indicates if there was a suggested change to margin_left.",
          "type": "boolean"
        },
        "marginRightSuggested": {
          "description": "Indicates if there was a suggested change to margin_right.",
          "type": "boolean"
        },
        "marginTopSuggested": {
          "description": "Indicates if there was a suggested change to margin_top.",
          "type": "boolean"
        },
        "pageNumberStartSuggested": {
          "description": "Indicates if there was a suggested change to page_number_start.",
          "type": "boolean"
        },
        "pageSizeSuggestionState": {
          "$ref": "#/$defs/SizeSuggestionState",
          "description": "A mask that indicates which of the fields in size have been changed in this suggestion."
        },
        "useCustomHeaderFooterMarginsSuggested": {
          "description": "Indicates if there was a suggested change to use_custom_header_footer_margins.",
          "type": "boolean"
        },
        "useEvenPageHeaderFooterSuggested": {
          "description": "Indicates if there was a suggested change to use_even_page_header_footer.",
          "type": "boolean"
        },
        "useFirstPageHeaderFooterSuggested": {
          "description": "Indicates if there was a suggested change to use_first_page_header_footer.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "EmbeddedDrawingProperties": {
      "description": "The properties of an embedded drawing and used to differentiate the object type. An embedded drawing is one that's created and edited within a document. Note that extensive details are not supported.",
      "properties": {},
      "type": "object"
    },
    "EmbeddedDrawingPropertiesSuggestionState": {
      "description": "A mask that indicates which of the fields on the base EmbeddedDrawingProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.",
      "properties": {},
      "type": "object"
    },
    "EmbeddedObject": {
      "description": "An embedded object in the document.",
      "properties": {
        "description": {
          "description": "The description of the embedded object. The `title` and `description` are both combined to display alt text.",
          "type": "string"
        },
        "embeddedDrawingProperties": {
          "$ref": "#/$defs/EmbeddedDrawingProperties",
          "description": "The properties of an embedded drawing."
        },
        "embeddedObjectBorder": {
          "$ref": "#/$defs/EmbeddedObjectBorder",
          "description": "The border of the embedded object."
        },
        "imageProperties": {
          "$ref": "#/$defs/ImageProperties",
          "description": "The properties of an image."
        },
        "linkedContentReference": {
          "$ref": "#/$defs/LinkedContentReference",
          "description": "A reference to the external linked source content. For example, it contains a reference to the source Google Sheets chart when the embedded object is a linked chart. If unset, then the embedded object is not linked."
        },
        "marginBottom": {
          "$ref": "#/$defs/Dimension",
          "description": "The bottom margin of the embedded object."
        },
        "marginLeft": {
          "$ref": "#/$defs/Dimension",
          "description": "The left margin of the embedded object."
        },
        "marginRight": {
          "$ref": "#/$defs/Dimension",
          "description": "The right margin of the embedded object."
        },
        "marginTop": {
          "$ref": "#/$defs/Dimension",
          "description": "The top margin of the embedded object."
        },
        "size": {
          "$ref": "#/$defs/Size",
          "description": "The visible size of the image after cropping."
        },
        "title": {
          "description": "The title of the embedded object. The `title` and `description` are both combined to display alt text.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "EmbeddedObjectBorder": {
      "description": "A border around an EmbeddedObject.",
      "properties": {
        "color": {
          "$ref": "#/$defs/OptionalColor",
          "description": "The color of the border."
        },
        "dashStyle": {
          "description": "The dash style of the border.",
          "enum": [
            "DASH_STYLE_UNSPECIFIED",
            "SOLID",
            "DOT",
            "DASH"
          ],
          "type": "string"
        },
        "propertyState": {
          "description": "The property state of the border property.",
          "enum": [
            "RENDERED",
            "NOT_RENDERED"
          ],
          "type": "string"
        },
        "width": {
          "$ref": "#/$defs/Dimension",
          "description": "The width of the border."
        }
      },
      "type": "object"
    },
    "EmbeddedObjectBorderSuggestionState": {
      "description": "A mask that indicates which of the fields on the base EmbeddedObjectBorder have been changed in this suggestion. For any field set to true, there's a new suggested value.",
      "properties": {
        "colorSuggested": {
          "description": "Indicates if there was a suggested change to color.",
          "type": "boolean"
        },
        "dashStyleSuggested": {
          "description": "Indicates if there was a suggested change to dash_style.",
          "type": "boolean"
        },
        "propertyStateSuggested": {
          "description": "Indicates if there was a suggested change to property_state.",
          "type": "boolean"
        },
        "widthSuggested": {
          "description": "Indicates if there was a suggested change to width.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "EmbeddedObjectSuggestionState": {
      "description": "A mask that indicates which of the fields on the base EmbeddedObject have been changed in this suggestion. For any field set to true, there's a new suggested value.",
      "properties": {
        "descriptionSuggested": {
          "description": "Indicates if there was a suggested change to description.",
          "type": "boolean"
        },
        "embeddedDrawingPropertiesSuggestionState": {
          "$ref": "#/$defs/EmbeddedDrawingPropertiesSuggestionState",
          "description": "A mask that indicates which of the fields in embedded_drawing_properties have been changed in this suggestion."
        },
        "embeddedObjectBorderSuggestionState": {
          "$ref": "#/$defs/EmbeddedObjectBorderSuggestionState",
          "description": "A mask that indicates which of the fields in embedded_object_border have been changed in this suggestion."
        },
        "imagePropertiesSuggestionState": {
          "$ref": "#/$defs/ImagePropertiesSuggestionState",
          "description": "A mask that indicates which of the fields in image_properties have been changed in this suggestion."
        },
        "linkedContentReferenceSuggestionState": {
          "$ref": "#/$defs/LinkedContentReferenceSuggestionState",
          "description": "A mask that indicates which of the fields in linked_content_reference have been changed in this suggestion."
        },
        "marginBottomSuggested": {
          "description": "Indicates if there was a suggested change to margin_bottom.",
          "type": "boolean"
        },
        "marginLeftSuggested": {
          "description": "Indicates if there was a suggested change to margin_left.",
          "type": "boolean"
        },
        "marginRightSuggested": {
          "description": "Indicates if there was a suggested change to margin_right.",
          "type": "boolean"
        },
        "marginTopSuggested": {
          "description": "Indicates if there was a suggested change to margin_top.",
          "type": "boolean"
        },
        "sizeSuggestionState": {
          "$ref": "#/$defs/SizeSuggestionState",
          "description": "A mask that indicates which of the fields in size have been changed in this suggestion."
        },
        "titleSuggested": {
          "description": "Indicates if there was a suggested change to title.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "Equation": {
      "description": "A ParagraphElement representing an equation.",
      "properties": {
        "suggestedDeletionIds": {
          "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "suggestedInsertionIds": {
          "description": "The suggested insertion IDs. An Equation may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Footer": {
      "description": "A document footer.",
      "properties": {
        "content": {
          "description": "The contents of the footer. The indexes for a footer's content begin at zero.",
          "items": {
            "$ref": "#/$defs/StructuralElement"
          },
          "type": "array"
        },
        "footerId": {
          "description": "The ID of the footer.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Footnote": {
      "description": "A document footnote.",
      "properties": {
        "content": {
          "description": "The contents of the footnote. The indexes for a footnote's content begin at zero.",
          "items": {
            "$ref": "#/$defs/StructuralElement"
          },
          "type": "array"
        },
        "footnoteId": {
          "description": "The ID of the footnote.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "FootnoteReference": {
      "description": "A ParagraphElement representing a footnote reference. A footnote reference is the inline content rendered with a number and is used to identify the footnote.",
      "properties": {
        "footnoteId": {
          "description": "The ID of the footnote that contains the content of this footnote reference.",
          "type": "string"
        },
        "footnoteNumber": {
          "description": "The rendered number of this footnote.",
          "type": "string"
        },
        "suggestedDeletionIds": {
          "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "suggestedInsertionIds": {
          "description": "The suggested insertion IDs. A FootnoteReference may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "suggestedTextStyleChanges": {
          "additionalProperties": {
            "$ref": "#/$defs/SuggestedTextStyle"
          },
          "description": "The suggested text style changes to this FootnoteReference, keyed by suggestion ID.",
          "type": "object"
        },
        "textStyle": {
          "$ref": "#/$defs/TextStyle",
          "description": "The text style of this FootnoteReference."
        }
      },
      "type": "object"
    },
    "Header": {
      "description": "A document header.",
      "properties": {
        "content": {
          "description": "The contents of the header. The indexes for a header's content begin at zero.",
          "items": {
            "$ref": "#/$defs/StructuralElement"
          },
          "type": "array"
        },
        "headerId": {
          "description": "The ID of the header.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "HorizontalRule": {
      "description": "A ParagraphElement representing a horizontal line.",
      "properties": {
        "suggestedDeletionIds": {
          "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.",
        

# --- truncated at 32 KB (126 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/google/refs/heads/main/json-schema/google-document-schema.json

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/google-document"
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.