Skip to content
A Node JS app to get up and running with the HubSpot API using OAuth 2.0
JavaScript Dockerfile
Branch: master
Clone or download
zrrobbins Merge pull request #11 from KholodovOleksandr/fix-readme
fix, use SCOPE instead of SCOPES for docker run
Latest commit 1732110 Jun 5, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Initial commit Oct 30, 2018
Dockerfile Use SCOPE instead of SCOPES for exposed env var Mar 12, 2019 fix, use SCOPE instead of SCOPES for docker run Jun 4, 2019
package.json Initial commit Oct 30, 2018
yarn.lock Use default yarn registry May 6, 2019

Node.js OAuth 2.0 Quickstart

A quickstart app for integrators looking to use HubSpot's OAuth 2.0. Written in Node.js.

Note: This app does not store any data in a persistent way, so restarting the app will clear the retrieved access tokens.


Before running the quickstart app, make sure you have:

  1. The tools required to run using the method of your choice:
  2. A free HubSpot developer account (sign up)
  3. An app associated with your developer account (create an app)
  4. A HubSpot portal to install the app in (you can use an existing one, or create a test portal)

Note: You must be a super-admin for the portal that you want to install the app in.

What the app does

  1. Redirect to HubSpot's OAuth 2.0 server

    When you open your browser to http://localhost:3000/install, the app will redirect you to the authorization page on HubSpot's server. Here you will choose which portal you'd like to install the app in and give consent for it to act on your behalf. When this is complete, HubSpot will redirect you back to the app.

  2. Exchange an authorization code for access tokens

    Now that you're back in the app, it will retrieve an access token and refresh token from HubSpot's server, using an authorization code that was supplied by HubSpot when you granted access to the app.

  3. Retrieve a contact

    When the app has received an access token, it will redirect you to http://localhost:3000/. It will then use the access token to make a query to HubSpot's Contacts API, and display the retrieved contact's name on the page.

Running the app

Option 1: Running in a Docker container

  1. Build an image of the quickstart app
$ docker build -t hs-oauth-quickstart:latest git://
  1. Run a container with the new image
$ docker run --init -it -p 3000:3000 -e CLIENT_SECRET=$CLIENT_SECRET -e CLIENT_ID=$CLIENT_ID -e SCOPE=contacts,forms hs-oauth-quickstart:latest

Option 2: Running natively

  1. Clone the repository:
    $ git clone
  2. Create a .env file in the root of the repository with the ID and secret for your app (found on the app settings page), eg:
    You can also add a SCOPE environment variable to specify a custom set of scopes. The scopes can be separated by a comma, space, or URL-encoded space (%20)
  3. From the root of the repository, run:
    $ yarn install
    $ yarn start
  4. Open your browser to http://localhost:3000/install to kick off the OAuth 2.0 flow
You can’t perform that action at this time.