# Integrations - ApiTraffic

> First-party Node.js SDKs for Express, Fastify, Koa, Hapi, NestJS, Meteor, LoopBack, AdonisJS, Sails and Strapi, a proxy URL for any other language, an OpenTelemetry APM bridge, Git integrations, Slack, PagerDuty, Jira, webhooks and a public REST API.

Source: https://dev.apitraffic.io/integrations

Integrations

# One package. Three lines. Done.

First-party SDKs for the Node.js frameworks your services already run on - Node 20+, TypeScript declarations included - plus a proxy URL for any other language, an OpenTelemetry bridge for APM, and alerts that reach Slack, PagerDuty and Jira.

[Start your free trial](https://dev.app.apitraffic.io/signup?src=integrations-hero)[No Node? Use the proxy](/integrations#proxy)

[**Express**@apitraffic/express](/docs/integrations/express)[**Fastify**@apitraffic/fastify](/docs/integrations/fastify)[**Koa**@apitraffic/koa](/docs/integrations/koa)[**Hapi**@apitraffic/hapi](/docs/integrations/hapi)[**NestJS**@apitraffic/nestjs](/docs/integrations/nestjs)[**Meteor**@apitraffic/meteor](/docs/integrations/meteor)[**LoopBack**@apitraffic/loopback](/docs/integrations/loopback)[**AdonisJS**@apitraffic/adonisjs](/docs/integrations/adonisjs)[**Sails**@apitraffic/sails](/docs/integrations/sails)[**Strapi**@apitraffic/strapi](/docs/integrations/strapi)

The whole integration

## Copy, paste, deploy

Request capture, APM and the firewall all come from the same SDK. There is no separate agent to run and no collector to babysit.

$ npm i @apitraffic/node

```
const express = require('express');
const apitraffic = require('@apitraffic/node');

const app = express();

app.use(express.json());          // parse first - verdicts read parsed bodies
app.use(apitraffic.express({
  token: process.env.API_TRAFFIC_TOKEN,
  bucket: process.env.API_TRAFFIC_BUCKET,
}));

app.get('/users/:id', (req, res) => {
  res.json({ id: req.params.id });
});

app.listen(3000);
```

Order is the whole integration. After `express.json()`, before your routes.

Node 20+. Types included, no @types package. [Read the middleware source →](https://github.com/apitraffic/apitraffic-node)

[Everything about Express →](/express)

- Asynchronous batched delivery - nothing blocks your handler
- Outbound HTTP captured too, including fetch and undici

- Fails open: if ApiTraffic is unreachable, your API carries on
- Credential headers and secret-looking keys masked before anything is sent

- tag(), trace() and span() from the same import

Proxy URL & captures

## Not on Node? Change one hostname.

For any stack without an SDK, generate a proxy URL for your bucket: the same URL as your API call with only the hostname changed. Calls sent to it pass through ApiTraffic and land in your request log - searchable, grouped by endpoint and watched for incidents - from any language, with no code to install.

- **Generate it in the app:** paste a URL into the URL Helper and copy the result
- **Capture URLs** record a request and answer it themselves - perfect for reading webhook payloads

- **Captures stay separate** from your app’s traffic, under Workspace → Captures

```
# Your API call today
https://api.example.com/v1/orders?status=open

# The same call through ApiTraffic: only the hostname changes
https://api-example-com-<bucket><environment>.apitraffic.io/v1/orders?status=open
```

The URL Helper: your call's URL, with only the hostname changed.

Webhooks sent to a capture URL, each with its headers and payload.

The proxy sees the calls routed through it. Outbound calls, APM spans, tags and the in-app firewall need an SDK. [How the proxy works](/docs/integrations/overview)

Downstream

## Where your traffic data goes next

ApiTraffic fits into the tools your team already runs.

### Slack, PagerDuty & Jira

Incidents go to the channel, rotation or board that owns them, with routing and escalation

### Email & webhooks

Alerts by email, or signed webhooks into your own incident tooling

### GitHub, GitLab & Bitbucket

Deploys, tags and releases become markers, and failures link to the commit

### OpenTelemetry

Add our span processor to the provider you already run, or use the bundled setup

### Claude, Cursor & VS Code

The MCP server puts your traffic in front of your AI assistant

### REST API & embeds

Everything the dashboard does, from your scripts - and reports embedded in your own tools

The request log: inbound calls to your API and the outbound calls it makes, in one place.

## Pick your framework and go.

Install takes one command - or one hostname. The free trial needs no credit card.

[Start your free trial](https://dev.app.apitraffic.io/signup?src=integrations-closing)

Free trial · No credit card · Set up in minutes
