Some products and features are in the process of being renamed. Generative playbook and flow features are also being migrated to a single consolidated console. See the details.
Stay organized with collections
Save and categorize content based on your preferences.
This guide provides an overview of using the Dialogflow API
and its reference documentation.
REST, gRPC, and client libraries
You can access the API via
REST, gRPC, or one of the provided client libraries (built on gRPC).
Client libraries
Google provides
client libraries
for many popular languages to access this API.
If your desired programming language is supported by the client libraries,
you should use this option.
Pros
Cons
Maintained by Google.
Built-in
authentication.
Built-in retries.
Idiomatic for each language.
Efficient
protocol buffer
HTTP request body.
Simple JSON interface.
Well supported by many Google and third-party tools and libraries.
You must build your own client.
You must
implement authentication.
You must implement retries.
Less efficient JSON HTTP request body.
REST streaming is not supported by this API.
You must generate your own client from Google-supplied protocol buffers.
You must
implement authentication.
You must implement retries.
Type, method, and field names
Depending on whether you are using
client libraries, REST, or gRPC,
the type, method, and field names for the API vary somewhat:
REST is arranged by resource hierarchies and their methods.
Client libraries and gRPC are
arranged by services and their methods.
REST field names use camel case,
though the API service will accept either camel case or snake case.
gRPC field names use snake case.
Client library field names use either title case, camel case or snake case,
depending on which name is idiomatic for the language.
Protocol buffers
Whether you are using
client libraries, REST, or gRPC,
the underlying service is defined using
protocol buffers.
In particular, the service uses
proto3.
In addition, when calling the REST API, the
default value
behavior for protocol buffers may result in missing fields in a JSON response.
These fields are simply set to the default value,
so they are not included in the response.
API versions
The following API versions are available:
V3: Stable, generally available.
V3Beta1: Used to share the latest, upcoming beta features.
[[["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-08-28 UTC."],[[["\u003cp\u003eThe Dialogflow API can be accessed via REST, gRPC, or client libraries provided by Google, offering flexibility in how developers interact with the API.\u003c/p\u003e\n"],["\u003cp\u003eGoogle provides client libraries for many popular languages, which offer the advantages of being maintained by Google, having built-in authentication and retries, and using an efficient protocol buffer HTTP request body.\u003c/p\u003e\n"],["\u003cp\u003eREST offers a simple JSON interface that is well-supported by many tools and libraries, but requires developers to handle their own client implementation, authentication, and retries.\u003c/p\u003e\n"],["\u003cp\u003egRPC supports many programming languages and uses efficient protocol buffers, but users must generate their own clients and handle authentication and retries.\u003c/p\u003e\n"],["\u003cp\u003eThe API is available in two versions, v3 (stable and generally available) and v3beta1 (for beta features), and depending on the chosen method (REST, gRPC or client libraries) the field and method names will vary, as well as how the method and types are arranged.\u003c/p\u003e\n"]]],[],null,["# API usage overview\n\nThis guide provides an overview of using the Dialogflow API\nand its reference documentation.\n\nREST, gRPC, and client libraries\n--------------------------------\n\n\nYou can access the API via\n\nREST, gRPC, or one of the provided client libraries (built on gRPC).\n\n### Client libraries\n\n\nGoogle provides\n[client libraries](/dialogflow/cx/docs/reference/library/overview)\nfor many popular languages to access this API.\nIf your desired programming language is supported by the client libraries,\nyou should use this option.\n\n### REST\n\n\nThis API supports\n[REST](https://en.wikipedia.org/wiki/Representational_state_transfer).\nSee the\n[REST reference](/dialogflow/cx/docs/reference/rest) for this API.\nAlso see\n[How to call Google APIs: REST edition](https://googleapis.github.io/HowToREST).\n\n### gRPC\n\n\nThis API supports\n[gRPC](https://grpc.io/).\nSee the\n[RPC reference](/dialogflow/cx/docs/reference/rpc) for this API,\nwhich provides a generic description of the types, methods,\nand fields generated for a gRPC library.\nAlso see\n[How to call Google APIs: RPC edition](https://googleapis.github.io/HowToRPC.html).\n\nType, method, and field names\n-----------------------------\n\n\nDepending on whether you are using\n\nclient libraries, REST, or gRPC,\n\nthe type, method, and field names for the API vary somewhat:\n\n- REST is arranged by resource hierarchies and their methods.\n- Client libraries and gRPC are arranged by services and their methods.\n- REST field names use camel case, though the API service will accept either camel case or snake case.\n- gRPC field names use snake case.\n- Client library field names use either title case, camel case or snake case, depending on which name is idiomatic for the language.\n\nProtocol buffers\n----------------\n\n\nWhether you are using\n\nclient libraries, REST, or gRPC,\n\nthe underlying service is defined using\n[protocol buffers](https://developers.google.com/protocol-buffers).\nIn particular, the service uses\n[proto3](https://developers.google.com/protocol-buffers/docs/proto3).\n\n\nWhen calling the API,\nsome request or response fields can require a basic understanding of\n[protocol buffer well-known types](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf).\n\n\nIn addition, when calling the REST API, the\n[default value](https://developers.google.com/protocol-buffers/docs/proto3#default)\nbehavior for protocol buffers may result in missing fields in a JSON response.\nThese fields are simply set to the default value,\nso they are not included in the response.\n\nAPI versions\n------------\n\n\nThe following API versions are available:\n\n- **V3**: Stable, generally available.\n- **V3Beta1**: Used to share the latest, upcoming beta features."]]