Node Setup

Install with an AI Agent Copy a prompt for Claude Code, Cursor, or any AI coding assistant.
Install Scout APM in this Node.js application: 1. npm install @scout_apm/scout-apm 2. Create a scout.js file (scout.ts for TypeScript): const { init } = require("@scout_apm/scout-apm"); init({ name: process.env.SCOUT_NAME || "my-app", key: process.env.SCOUT_KEY, monitor: true }); 3. Add require("./scout") as the very first line of the app entry point — before any other requires 4. Express: add app.use(expressMiddleware({ requestTimeoutMs: 0 })) after creating the app, app.use(errorMiddleware()) after routes 5. NestJS: add app.use(nestMiddleware({ requestTimeoutMs: 0 })) and app.useGlobalFilters(nestErrorFilter()) in bootstrap() See https://scoutapm.com/docs/node/setup for the full setup guide.

Scout supports Express 4.x+.

AInstall the @scout_apm/scout-apm package:

npm install @scout_apm/scout-apm

BCreate a scout.js file and require it before anything else in your entry point:

Important: scout.js must be the very first require in your app so Scout's hooks are installed before any other packages load. Scout automatically detects all installed libraries — no manual package list needed.
// scout.js
const { init } = require("@scout_apm/scout-apm");

init({
  name: process.env.SCOUT_NAME || "my-express-app",
  key: process.env.SCOUT_KEY,
  monitor: true,
});
// app.js
require("./scout"); // must be first

const express = require("express");
const { expressMiddleware, errorMiddleware } = require("@scout_apm/scout-apm");

const app = express();

app.use(expressMiddleware({ requestTimeoutMs: 0 }));

// ... your routes ...

app.use(errorMiddleware());
app.listen(3000);

CConfigure Scout via environment variables:

export SCOUT_MONITOR=true
export SCOUT_KEY="[AVAILABLE IN THE SCOUT UI]"
export SCOUT_NAME="A FRIENDLY NAME FOR YOUR APP"
Heroku Customers: If you've installed Scout via the Heroku Addon, the provisioning process automatically sets SCOUT_MONITOR and SCOUT_KEY via config vars. Only SCOUT_NAME is additionally required.

DDeploy.

It takes approximately five minutes for your data to first appear within the Scout UI.

Scout supports NestJS 10.x+.

AInstall the @scout_apm/scout-apm package:

npm install @scout_apm/scout-apm

BCreate a scout.ts file and require it before NestJS loads:

Important: TypeScript import statements are hoisted. require("./scout") must come before any NestJS or database imports in main.ts. Only side-effect-free imports like reflect-metadata are safe above it.
// scout.ts
const { init } = require("@scout_apm/scout-apm");

init({
  name: process.env.SCOUT_NAME || "my-nestjs-app",
  key: process.env.SCOUT_KEY,
  monitor: true,
});
// main.ts
import "reflect-metadata"; // safe — no instrumented packages
require("./scout"); // must come before NestJS loads

const { NestFactory } = require("@nestjs/core");
const { AppModule } = require("./app.module");
const { nestMiddleware, nestErrorFilter } = require("@scout_apm/scout-apm");

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.use(nestMiddleware({ requestTimeoutMs: 0 }));
  app.useGlobalFilters(nestErrorFilter());
  await app.listen(3000);
}

bootstrap();

CConfigure Scout via environment variables:

export SCOUT_MONITOR=true
export SCOUT_KEY="[AVAILABLE IN THE SCOUT UI]"
export SCOUT_NAME="A FRIENDLY NAME FOR YOUR APP"
Heroku Customers: If you've installed Scout via the Heroku Addon, the provisioning process automatically sets SCOUT_MONITOR and SCOUT_KEY via config vars. Only SCOUT_NAME is additionally required.

DDeploy.

It takes approximately five minutes for your data to first appear within the Scout UI.