Method: projects.locations.agents.sessions.serverStreamingDetectIntent

Processes a natural language query and returns structured, actionable data as a result through server-side streaming. Server-side streaming allows Dialogflow to send partial responses earlier in a single request.

HTTP request

POST https://{endpoint}/v3/{session=projects/*/locations/*/agents/*/sessions/*}:serverStreamingDetectIntent

Where {endpoint} is one of the supported service endpoints.

The URLs use gRPC Transcoding syntax.

Path parameters



Required. The name of the session this query is sent to. Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>/sessions/<Session ID> or projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>/environments/<Environment ID>/sessions/<Session ID>. If Environment ID is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate Session ID. It can be a random number or some type of session identifiers (preferably hashed). The length of the Session ID must not exceed 36 characters.

For more information, see the sessions guide.

Note: Always use agent versions for production traffic. See Versions and environments.

Authorization requires the following IAM permission on the specified resource session:

  • dialogflow.sessions.detectIntent

Request body

The request body contains data with the following structure:

JSON representation
  "queryParams": {
    object (QueryParameters)
  "queryInput": {
    object (QueryInput)
  "outputAudioConfig": {
    object (OutputAudioConfig)

object (QueryParameters)

The parameters of this query.


object (QueryInput)

Required. The input specification.


object (OutputAudioConfig)

Instructs the speech synthesizer how to generate the output audio.

Response body

If successful, the response body contains a stream of DetectIntentResponse instances.

Authorization scopes

Requires one of the following OAuth scopes:


For more information, see the Authentication Overview.