Koa · First-party SDK

Half your Koa API’s traffic isn’t human.
Do you know what it did?

One middleware, mounted early, that plays by Koa rules - awaits downstream, touches nothing.

Source: Imperva 2026 Bad Bot Report

npm i @apitraffic/node

const Koa = require('koa');
const bodyParser = require('koa-bodyparser');
const apitraffic = require('@apitraffic/node');

const app = new Koa();

app.use(bodyParser());
app.use(apitraffic.koa({
  token: process.env.API_TRAFFIC_TOKEN,
  bucket: process.env.API_TRAFFIC_BUCKET,
}));

app.use(async (ctx) => {
  ctx.body = { ok: true };
});

app.listen(3000);
After your body parser, near the top of the cascade.

Node 20+ · types included · read the middleware source

Koa

What this looks like in Koa

Cascading middleware means position is timing

Koa middleware wraps everything downstream of it. Mount us near the top of the stack and the recorded duration is the whole request; mount us last and you have timed your own handler in isolation.

ctx.body is set upstream, after await next()

We read the response after the cascade unwinds, which is the only place the final body actually exists. That is why the record shows what you returned rather than what you intended to return.

Koa ships almost nothing, on purpose

No router, no body parser, no logger. Bring your own body parser and mount us after it, and the verdict engine sees parsed request data instead of an unread stream.

The record

Every Koa request, with its queries and its verdict attached

One pass through one middleware: the payload, every query and outbound call it caused, and the firewall's decision - on one record, watched for incidents, drift and regressions.

Pricing

Simple, published pricing

Every plan and what it includes, read live from our billing system - with a free trial and no credit card to start.

Solo

$79per month
Start free trial

Retention: 30 days of request history

Usage & limits

  • 1M requests · Captured requests (then $5.00 per 1,000 requests)
  • 5 records/s · Ingest rate
  • 5 buckets · Buckets
  • 2 environments · Environments
  • 1 seat · Team members
  • Unlimited · API tokens

Logging & search

  • 30 days · Retention window
  • Collections
  • Saved stream views
  • 10 views · Saved views per account
  • Custom reports
  • 5 keys · Promoted tag keys
  • Unlimited · Exclusion rules
  • Unlimited · Custom redaction rules

APM & performance

  • Deploy & incident markers
  • 10 rules · Endpoint rules

Host telemetry

  • Host telemetry
  • Unlimited · Reporting servers
  • Unlimited · Host samples

Firewall

  • Web application firewall
  • 2 policies · WAF policies per account

Embeds & sharing

  • 10 reports and dashboards · Embedded reports and dashboards
  • Share links

AI & MCP

  • AI diagnoses

Alerts & drift

  • Alerting
  • 1 channel · Alert channels
  • Certificate monitoring
  • 5 hosts · Monitored certificate hosts
  • Outbound destination watch

Integrations

  • Git integration
  • 5 repositories · Linked repositories

Business

$899per month
Start free trial

Retention: 360 days of request history

Usage & limits

  • 25M requests · Captured requests (then $5.00 per 1,000 requests)
  • 20 records/s · Ingest rate
  • 100 buckets · Buckets
  • 100 environments · Environments
  • Unlimited · Team members
  • Unlimited · API tokens

Logging & search

  • 360 days · Retention window
  • Collections
  • Saved stream views
  • Unlimited · Saved views per account
  • Custom reports
  • 50 keys · Promoted tag keys
  • Unlimited · Exclusion rules
  • Unlimited · Custom redaction rules

APM & performance

  • APM
  • Deploy & incident markers
  • Unlimited · Endpoint rules

Host telemetry

  • Host telemetry

Firewall

  • Web application firewall
  • Unlimited · WAF policies per account

Embeds & sharing

  • Embeds
  • Unlimited · Embedded reports and dashboards
  • Share links

AI & MCP

  • AI diagnoses
  • MCP server
  • MCP request replay

Alerts & drift

  • Alerting
  • Unlimited · Alert channels
  • API drift detection
  • Attention signals
  • Certificate monitoring
  • Unlimited · Monitored certificate hosts
  • Outbound destination watch

Integrations

  • Git integration
  • Unlimited · Linked repositories

Compare all plan features

Every plan starts with a 7-day free trial - no credit card to begin, and nothing is charged unless you choose a plan.

Prices in the currency shown, excluding tax. Overage is billed per unit and rounded to the cent on the invoice.

Objections

The questions we actually get

Know what your API did - before your customers tell you.

One npm install and one line of code. Your first requests arrive in minutes, with their queries, their firewall verdict and a baseline for every endpoint already building.

Free trial · No credit card · Set up in minutes