Stay organized with collectionsSave and categorize content based on your preferences.
This Changelog highlights notable changes to theAPI Design Guide.
2025-06
Redirected Design page Naming Convention to Google AIP.
2024-10
Redirected Design pages to Google AIPs, except for Directory Structure
and Naming Conventions.
2021-12
Changed terminology Networked API to Network API for consistency with
https://google.aip.dev/9.
2021-09
Document both Google API error format v1 and v2.
2021-04
Introduced visibility-based versioning.
Introduced API title to glossary.
2021-03
Added annotation for output only fields.
Update enum value guidance to always include an explicit_UNSPECIFIEDvalue.
Add guidance on how to generate and parse resource names.
Addprogress_percentto standard fields.
2021-02
Added guidance on proto3optionalprimitive fields.
2021-01
Updated the Errors page to cover the latest improvement related togoogle.rpc.ErrorInfoandgoogle.api.ErrorReason.
Added guidance on how to useoauth2l,curl, and System Parameters
to troubleshoot errors with Google APIs.
Added502error code explanation to the Errors page. It is a network
error instead of an API error.
2020-12
Package names should use singlar component names for global consistency.
Package names must not use underscores.
2020-09
Cleaned up some field description requirements; changed some uses of "must"
outside RFC 2119 to be RFC 2119 "should" directives.
Removed thebool deletedstandard field, in favor ofgoogle.protobuf.Timestamp delete_time(which was already listed).
2020-07
Updated documentation.md to match https://google.aip.dev/192#formatting.
Markdown tables and raw HTML must not be used in proto comments.
AddedErrorInfofor error handling.
Added Large Payloads for design patterns.
2020-04
Renamed Cloud APIs to Google Cloud APIs in glossary.
Introduced API and service as synonyms of API service.
2020-02
Updated versioning to add two versioning strategies (channel-based and
release-based), remove guidance on point versions, and change how we refer
to semantic versioning.
2020-01
Add data retention to design patterns.
2019-11
Add terminology Cloud APIs to glossary.
Recommend clients to retry only for UNAVAILABLE errors.
2019-06
Add "Bool vs Enum vs String" to design patterns.
2019-03
Add system parameters to standard fields.
2019-02
Add domain-scoped names to design patterns.
2018-03
Add streaming half-close semantics to design patterns.
2018-02
Addread_timeto Standard Fields.
2018-01
Add schema reference for API Service Definition.
2017-12
Clarify API major version must be the last component of proto package name.
2017-11
Clarify why theCreatemethod take an input resource.
Clarify collection IDs that don't have plural form, such as evidence and
weather.
Add singleton resource to design patterns.
Clarify C# naming conventions for acronyms and versions.
2017-09
Addmime_typeto standard fields.
Addexpire_timeto standard fields.
Addstart_timeandend_timeto standard fields.
2017-02
Add "API endpoint" to glossary.
Addupdate_maskto standard fields.
Add a link toFieldMaskto standard methods.
Mention that OpenAPI spec does not support unsigned integers.
Clarify that method names should use verbs in the imperative mood.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThis changelog documents updates to the API Design Guide, including changes to terminology, error handling, and field requirements.\u003c/p\u003e\n"],["\u003cp\u003eRecent changes include redirecting certain design pages to Google AIPs and updating terminology to align with Google API standards.\u003c/p\u003e\n"],["\u003cp\u003eThe guide has undergone modifications to field descriptions, versioning strategies, and the inclusion of standard fields like \u003ccode\u003eread_time\u003c/code\u003e, \u003ccode\u003emime_type\u003c/code\u003e, \u003ccode\u003eexpire_time\u003c/code\u003e, \u003ccode\u003estart_time\u003c/code\u003e, and \u003ccode\u003eend_time\u003c/code\u003e over time.\u003c/p\u003e\n"],["\u003cp\u003eError handling has been improved with updates to \u003ccode\u003egoogle.rpc.ErrorInfo\u003c/code\u003e and \u003ccode\u003egoogle.api.ErrorReason\u003c/code\u003e, along with guidance on troubleshooting errors and the addition of \u003ccode\u003eErrorInfo\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eDesign patterns have been added and enhanced, with examples such as streaming half-close semantics, singleton resources, data retention, and guidance on bool vs enum vs string.\u003c/p\u003e\n"]]],[],null,["# Changelog\n\nThis Changelog highlights notable changes to the\n[API Design Guide](/apis/design).\n\n2025-06\n-------\n\n- Redirected Design page Naming Convention to Google AIP.\n\n2024-10\n-------\n\n- Redirected Design pages to Google AIPs, except for Directory Structure and Naming Conventions.\n\n2021-12\n-------\n\n- Changed terminology Networked API to Network API for consistency with https://google.aip.dev/9.\n\n2021-09\n-------\n\n- Document both Google API error format v1 and v2.\n\n2021-04\n-------\n\n- Introduced visibility-based versioning.\n\n- Introduced API title to glossary.\n\n2021-03\n-------\n\n- Added annotation for output only fields.\n\n- Update enum value guidance to always include an explicit `_UNSPECIFIED`\n value.\n\n- Add guidance on how to generate and parse resource names.\n\n- Add `progress_percent` to standard fields.\n\n2021-02\n-------\n\n- Added guidance on proto3 `optional` primitive fields.\n\n2021-01\n-------\n\n- Updated the Errors page to cover the latest improvement related to\n `google.rpc.ErrorInfo` and `google.api.ErrorReason`.\n\n- Added guidance on how to use `oauth2l`, `curl`, and System Parameters\n to troubleshoot errors with Google APIs.\n\n- Added `502` error code explanation to the Errors page. It is a network\n error instead of an API error.\n\n2020-12\n-------\n\n- Package names should use singlar component names for global consistency. Package names must not use underscores.\n\n2020-09\n-------\n\n- Cleaned up some field description requirements; changed some uses of \"must\"\n outside RFC 2119 to be RFC 2119 \"should\" directives.\n\n- Removed the `bool deleted` standard field, in favor of\n `google.protobuf.Timestamp delete_time` (which was already listed).\n\n2020-07\n-------\n\n- Updated documentation.md to match https://google.aip.dev/192#formatting.\n Markdown tables and raw HTML must not be used in proto comments.\n\n- Added `ErrorInfo` for error handling.\n\n- Added Large Payloads for design patterns.\n\n2020-04\n-------\n\n- Renamed Cloud APIs to Google Cloud APIs in glossary.\n- Introduced API and service as synonyms of API service.\n\n2020-02\n-------\n\n- Updated versioning to add two versioning strategies (channel-based and release-based), remove guidance on point versions, and change how we refer to semantic versioning.\n\n2020-01\n-------\n\n- Add data retention to design patterns.\n\n2019-11\n-------\n\n- Add terminology Cloud APIs to glossary.\n- Recommend clients to retry only for UNAVAILABLE errors.\n\n2019-06\n-------\n\n- Add \"Bool vs Enum vs String\" to design patterns.\n\n2019-03\n-------\n\n- Add system parameters to standard fields.\n\n2019-02\n-------\n\n- Add domain-scoped names to design patterns.\n\n2018-03\n-------\n\n- Add streaming half-close semantics to design patterns.\n\n2018-02\n-------\n\n- Add `read_time` to Standard Fields.\n\n2018-01\n-------\n\n- Add schema reference for API Service Definition.\n\n2017-12\n-------\n\n- Clarify API major version must be the last component of proto package name.\n\n2017-11\n-------\n\n- Clarify why the `Create` method take an input resource.\n- Clarify collection IDs that don't have plural form, such as evidence and weather.\n- Add singleton resource to design patterns.\n- Clarify C# naming conventions for acronyms and versions.\n\n2017-09\n-------\n\n- Add `mime_type` to standard fields.\n- Add `expire_time` to standard fields.\n- Add `start_time` and `end_time` to standard fields.\n\n2017-02\n-------\n\n- Add \"API endpoint\" to glossary.\n- Add `update_mask` to standard fields.\n- Add a link to `FieldMask` to standard methods.\n- Mention that OpenAPI spec does not support unsigned integers.\n- Clarify that method names should use verbs in the imperative mood."]]