Need help with dialogflow-javascript-client?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

417 Stars 175 Forks Apache License 2.0 89 Commits 59 Opened issues


JavaScript Web SDK for Dialogflow

Services available


Need anything else?

Contributors list


| Deprecated | |-------| | This Dialogflow client library and Dialogflow API V1 have been deprecated and will be shut down on October 23th, 2019. Please migrate to Dialogflow API V2. |

You can use this library as common pre-built .js (choose there).

Or you can install it with nodejs and that import as es6 (or .ts) module. See below.

npm install [email protected]



const client = new ApiAi.ApiAiClient({accessToken: 'YOUR_ACCESS_TOKEN'});
const promise = client.textRequest(longTextRequest);

promise .then(handleResponse) .catch(handleError);

function handleResponse(serverResponse) { console.log(serverResponse); } function handleError(serverError) { console.log(serverError); }


const promise = client.eventRequest("EVENT_NAME", options);

TypeScript and ES6

This SDK written with Typescript and all it's sources are available in this package. So basically if you are using something like webpack or browserify with ES6 imports and so on, you can just install this SDK with

$ npm install api-ai-javascript --save-dev
command and then import original sources with something like:
import {ApiAiClient} from "api-ai-javascript";

const client = new ApiAiClient({accessToken: 'YOUR_ACCESS_TOKEN'})

.textRequest('Hello!') .then((response) => {/* do something /}) .catch((error) => {/ do something here too */})

Note: If you are going to build es5 version of your bundle with ApiAiClient inside, please add some typings for promises (e.g. @types/es6-promise)

You also can import and use all defined interfaces and ApiAiConstants:

import {IRequestOptions, IServerResponse, ApiAiConstants} from "api-ai-javascript/ApiAiClient"
const lang = ApiAiConstants.AVAILABLE_LANGUAGES.EN;

You can find full list of interfaces here


  • Checkout from this repository, do not forget to switch to "v2" branch
  • run
    $ npm install
  • run
    $ webpack -w
    or just
    $ npm start
    (as an option for non globally installed dev-server -
    $ ./node_modules/.bin/webpack-dev-server
  • develop! (webpack will automatically compile SDK to ./target/ApiAi.js file on each change, just include it into some test HTML file (./demo/index.html will probably do the job) and test it).


$ npm run-script build
command will build everything


$ npm test



  • tts and asr support removed (discontinued on API.AI side) ## 2.0.0-beta.19
  • minor typings changes ## 2.0.0-beta.18
  • some minor typings changes ## 2.0.0-beta.17
  • dependencies updated
  • webrtc typings removed (now part of typescript default lib) ## 2.0.0-beta.16
  • some linting (ionic2 compatibility issues) ## 2.0.0-beta.15
  • minor fixes, minor readme updates
  • exported constants ## 2.0.0-beta.14
  • minor fixes
  • GainNode removed (for now) as non-working in current setup ## 2.0.0-beta.13
  • IStreamClient is aligned with StreamClient needs, thanks to @muuki88 (#26)
  • Callbacks in IStremClientOptions are now typed properly
  • Added IStreamClient.getGain(): GainNode (#25) to allow set up gain of listener
  • Fixed UTF8 requests, thanks to @elaval (#24) ## 2.0.0-beta.12
  • Possibility to import ApiAiClient separately from ApiAiStreamClient
  • Typescript project demo setup added ## 2.0.0-beta.8 ### Breaking changes:
  • Main class renamed from Client to ApiAiClient
  • StreamClient renamed (in exports at least) to ApiAiStreamClient
  • StreamClient class is no longer available inside main ApiAiClient class and now should be passed directly in ApiAiClient constructor:
    const client = new ApiAiClient("ACCESS_TOKEN", {streamClientClass: ApiAiStreamClient})
    .That was made to allow building your applications without streamclient at all (streamclient now takes about 70% of whole library). And also there will be other implementation of streamClient in the future ### Non-breaking changes:
  • Demo updated

How to make contributions?

Please read and follow the steps in the




Your use of this sample is subject to, and by using or downloading the sample files you agree to comply with, the Google APIs Terms of Service.

This is not an official Google product.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.