# API Maker benchmarks : requests per second and memory on real servers

> API Maker benchmarks on 7 Linode servers, 1 to 8 vCPUs, shared and dedicated : requests per second, latency and memory on MongoDB, PostgreSQL and MySQL.

Source: https://docs.apimaker.dev/v4/docs/benchmarks/index.html

<nav class="am-bench-switch" aria-label="Benchmark servers">
Shared CPU

- [1 vCPU1 GB · $5](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-1-vcpu-1gb.html)
- [2 vCPU4 GB · $24](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-2-vcpu-4gb.html)
- [4 vCPU8 GB · $48](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-4-vcpu-8gb.html)
- [8 vCPU32 GB · $192](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-8-vcpu-32gb.html)

Dedicated CPU

- [2 vCPU4 GB · $36](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-2-vcpu-4gb.html)
- [4 vCPU8 GB · $72](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-4-vcpu-8gb.html)
- [8 vCPU16 GB · $144](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-8-vcpu-16gb.html)

Compare

[All resultsevery server side by side](https://docs.apimaker.dev/v4/docs/benchmarks/summary.html)

</nav>

Benchmarks · API Maker 4.0.0 · 7 servers · measured 12 October 2026

**How fast is API Maker ? Measured, not promised.**

API Maker installed by its own installer on 7 Linode servers, from 1 to 8 vCPUs, shared and dedicated CPU, its databases on the same machine. Every API loaded for 15 seconds by autocannon from a second server, two rounds each, on MongoDB, PostgreSQL and MySQL : 136,821,729 requests, 0 errors. Every page shows the full autocannon output and what each part of the server held in memory.

Get all · 8 vCPU dedicated

12,640req/s

a whole table, MongoDB · 1 vCPU : 2,435

Get by id, cached · 8 vCPU

47,980req/s

answered from Redis · 1 vCPU : 12,140

Custom API · 8 vCPU

8,893req/s

TypeScript, get all inside, run in the server · in the sandbox 7,569

API Maker memory

84MB

the process at rest · up to 112 MB on 8 vCPUs

- Video: [Why Rust: API Maker Load-Tested Live on a $5 Server](https://apimaker.dev/videos/why-rust) (6 min)

## The servers

### Shared CPU

- [1 vCPU · 1 GB RAM · Shared CPU](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-1-vcpu-1gb.html) : Linode Nanode 1 GB (g6-nanode-1), $5 a month. Get all 2,435 req/s, get by id cached 12,140 req/s, custom API 1,909 req/s (MongoDB). (12 October 2026 · 8,390,598 requests, 0 errors)
- [2 vCPU · 4 GB RAM · Shared CPU](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-2-vcpu-4gb.html) : Linode 4 GB (g6-standard-2), $24 a month. Get all 4,692 req/s, get by id cached 18,970 req/s, custom API 3,178 req/s (MongoDB). (12 October 2026 · 13,338,901 requests, 0 errors)
- [4 vCPU · 8 GB RAM · Shared CPU](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-4-vcpu-8gb.html) : Linode 8 GB (g6-standard-4), $48 a month. Get all 7,423 req/s, get by id cached 26,444 req/s, custom API 5,178 req/s (MongoDB). (12 October 2026 · 19,370,117 requests, 0 errors)
- [8 vCPU · 32 GB RAM · Shared CPU](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-8-vcpu-32gb.html) : Linode 32 GB (g6-standard-8), $192 a month. Get all 11,002 req/s, get by id cached 44,564 req/s, custom API 8,062 req/s (MongoDB). (12 October 2026 · 30,678,581 requests, 0 errors)

### Dedicated CPU

- [2 vCPU · 4 GB RAM · Dedicated CPU](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-2-vcpu-4gb.html) : Linode Dedicated 4 GB (g6-dedicated-2), $36 a month. Get all 3,712 req/s, get by id cached 16,455 req/s, custom API 2,591 req/s (MongoDB). (12 October 2026 · 10,989,400 requests, 0 errors)
- [4 vCPU · 8 GB RAM · Dedicated CPU](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-4-vcpu-8gb.html) : Linode Dedicated 8 GB (g6-dedicated-4), $72 a month. Get all 7,614 req/s, get by id cached 32,588 req/s, custom API 5,228 req/s (MongoDB). (12 October 2026 · 21,624,231 requests, 0 errors)
- [8 vCPU · 16 GB RAM · Dedicated CPU](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-8-vcpu-16gb.html) : Linode Dedicated 16 GB (g6-dedicated-8), $144 a month. Get all 12,640 req/s, get by id cached 47,980 req/s, custom API 8,893 req/s (MongoDB). (12 October 2026 · 32,429,901 requests, 0 errors)

## Results at a glance

**Get all, public : requests per second** · MongoDB · PostgreSQL · MySQL

[1 vCPU · 1 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-1-vcpu-1gb.html) · shared · $5 / month · 2,435 · 3,787 · 4,623

[2 vCPU · 4 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-2-vcpu-4gb.html) · shared · $24 / month · 4,692 · 5,577 · 6,660

[4 vCPU · 8 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-4-vcpu-8gb.html) · shared · $48 / month · 7,423 · 8,395 · 9,375

[8 vCPU · 32 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-8-vcpu-32gb.html) · shared · $192 / month · 11,002 · 13,054 · 13,816

[2 vCPU · 4 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-2-vcpu-4gb.html) · dedicated · $36 / month · 3,712 · 4,782 · 5,418

[4 vCPU · 8 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-4-vcpu-8gb.html) · dedicated · $72 / month · 7,614 · 8,912 · 10,000

[8 vCPU · 16 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-8-vcpu-16gb.html) · dedicated · $144 / month · 12,640 · 12,641 · 13,748

A whole table of ten rows, read from the database on every request.

**Get by id with caching, public : requests per second** · MongoDB · PostgreSQL · MySQL

[1 vCPU · 1 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-1-vcpu-1gb.html) · shared · $5 / month · 12,140 · 12,083 · 12,193

[2 vCPU · 4 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-2-vcpu-4gb.html) · shared · $24 / month · 18,970 · 19,622 · 19,858

[4 vCPU · 8 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-4-vcpu-8gb.html) · shared · $48 / month · 26,444 · 26,617 · 27,185

[8 vCPU · 32 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-8-vcpu-32gb.html) · shared · $192 / month · 44,564 · 43,050 · 43,160

[2 vCPU · 4 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-2-vcpu-4gb.html) · dedicated · $36 / month · 16,455 · 16,517 · 16,379

[4 vCPU · 8 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-4-vcpu-8gb.html) · dedicated · $72 / month · 32,588 · 33,015 · 32,897

[8 vCPU · 16 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-8-vcpu-16gb.html) · dedicated · $144 / month · 47,980 · 47,888 · 48,818

One row, answered from Redis.

| Server | CPU · price / month | Get all, MongoDB | Get all, PostgreSQL | Get all, MySQL | Get by id, cached | Custom API | API Maker at rest |
|---|---|--:|--:|--:|--:|--:|--:|
| [1 vCPU · 1 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-1-vcpu-1gb.html) | Shared · $5 | **2,435** | **3,787** | **4,623** | 12,140 | 1,909 | 84 MB |
| [2 vCPU · 4 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-2-vcpu-4gb.html) | Shared · $24 | **4,692** | **5,577** | **6,660** | 18,970 | 3,178 | 101 MB |
| [4 vCPU · 8 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-4-vcpu-8gb.html) | Shared · $48 | **7,423** | **8,395** | **9,375** | 26,444 | 5,178 | 109 MB |
| [8 vCPU · 32 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-shared-8-vcpu-32gb.html) | Shared · $192 | **11,002** | **13,054** | **13,816** | 44,564 | 8,062 | 112 MB |
| [2 vCPU · 4 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-2-vcpu-4gb.html) | Dedicated · $36 | **3,712** | **4,782** | **5,418** | 16,455 | 2,591 | 99 MB |
| [4 vCPU · 8 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-4-vcpu-8gb.html) | Dedicated · $72 | **7,614** | **8,912** | **10,000** | 32,588 | 5,228 | 104 MB |
| [8 vCPU · 16 GB](https://docs.apimaker.dev/v4/docs/benchmarks/linode-dedicated-8-vcpu-16gb.html) | Dedicated · $144 | **12,640** | **12,641** | **13,748** | 47,980 | 8,893 | 111 MB |

Requests per second : the average of two rounds of 15 seconds with 100 connections, public APIs ; get by id cached and the custom API on MongoDB. **[All results](https://docs.apimaker.dev/v4/docs/benchmarks/summary.html)** puts every API of every server side by side, with the latencies and the memory. The page of each server gives every API public and with both tokens, on the three databases, with the full autocannon output and the memory and CPU of every part.

## WebSockets

API Maker serves WebSockets on the port of its APIs. The same servers were filled with WebSocket clients, each with both tokens and a subscription : 26,484 clients connected at once on 1 vCPU and 1 GB, 3,662,564 on 8 vCPUs and 32 GB, 8.5 to 8.8 KB per client.

- [WebSocket benchmarks](https://docs.apimaker.dev/v4/docs/benchmarks/websockets/index.html) : How many connections one server holds, the memory when it is full, new clients and notifications a second.
- [Scale to N users](https://docs.apimaker.dev/v4/docs/benchmarks/websockets/scaling.html) : One big server or several small ones, the picture of N users, and the rule to count the servers.
- [All WebSocket results](https://docs.apimaker.dev/v4/docs/benchmarks/websockets/summary.html) : Every server side by side : clients, memory per client, delivery times.

## What is measured

Every API is measured on MongoDB, PostgreSQL and MySQL, public and with both tokens (`x-am-authorization` + `x-am-user-authorization`, checked on every request) :

- **Get all** : The schema API of a table answers all its rows.
- **Get all with caching** : The same request on a table whose API settings say `enableCaching: true`.
- **Get all by stream** : `GET …/<table>/stream`.
- **Custom API calling get all** : A custom API written in TypeScript, `return await g.sys.db.getAll({ instance, database, collection })`.
- **Custom API in the sandbox** : The same custom API, with one line more.
- **Get all with a pre hook** : Get all, with both tokens, on a table whose get all API has a pre hook written in TypeScript.
- **Get by id** : One row by its primary key.
- **Get by id with caching** : One row by its primary key, on a table with `enableCaching: true`.
- **Insert one row** : `POST …/<table>/save-single-or-multiple` with one row of 9 columns in the body.
- **Custom API without a database** : what running code costs, in the server (lean code) and in the sandbox.
- **More connections** : from 10 to 1,000 clients at once.

The data is the [API Maker benchmark dataset](https://apimaker.dev/json/benchmark_dataset.json) (`https://apimaker.dev/json/benchmark_dataset.json`) : ten rows of customers, ten columns each, in every table.

## How it is measured

1. **A real installation** API Maker is installed by its [installer](https://docs.apimaker.dev/v4/docs/getting-started/install-on-server.html) with its default answers, MongoDB and Redis in Docker on the same server, PostgreSQL and MySQL from their official images.
2. **Only what is needed runs** While a database is measured, the other ones are stopped. API Maker is restarted, its two sandboxes started and the swap emptied before each database.
3. **A second server makes the load** autocannon runs on a dedicated server of the same data centre, on the private network, sized to the server under test and sampled too : it never comes near its limit.
4. **Every answer is checked** Before its load, the answer of each API is checked (status, ten rows, the row), and the APIs with tokens are checked to refuse a request without them. Errors, non-2xx answers and timeouts are counted : 0 in 136,821,729 requests.
5. **Two rounds, the average** 5 seconds of warm-up, then 15 seconds measured, two times, the second time in the reverse order. The page shows the average and the autocannon output of the round closer to it.
6. **Memory and CPU every second** The server samples its CPU (with steal time), its memory, the API Maker process and every container while the load runs.

The whole method, with the settings of every API and the commands to run it yourself : [How API Maker is benchmarked](https://docs.apimaker.dev/v4/docs/benchmarks/methodology.html).

## Questions

### How many requests per second can API Maker serve ?

On the servers measured, with MongoDB, Redis and the database under test on the same machine, a whole table of ten rows (get all, public, MongoDB) was answered 2,435 times a second on 1 shared vCPU, 4,692 times a second on 2 shared vCPUs, 7,423 times a second on 4 shared vCPUs, 11,002 times a second on 8 shared vCPUs, 3,712 times a second on 2 dedicated vCPUs, 7,614 times a second on 4 dedicated vCPUs, 12,640 times a second on 8 dedicated vCPUs. A cached row reached 47,980 requests per second on 8 dedicated vCPUs.

### Is API Maker fast on a small server ?

On the smallest Linode server (1 vCPU, 1 GB, $5 a month), API Maker answered 2,435 requests per second for a whole table on MongoDB (PostgreSQL 3,787, MySQL 4,623) and 12,140 for a cached row.

### How much memory does API Maker need ?

The API Maker process held 84 to 112 MB at rest on these servers, with its two sandboxes running beside it. Most of the memory of a server goes to the databases and to the sandboxes which run your code : each server page shows every part, at rest and under load.

### Why is the database on the same server ?

It is the cheapest way to run API Maker, and the hardest test : API Maker, its sandboxes and the database share the same vCPUs, so every number counts the work of all of them.

### How are the benchmarks made ?

API Maker is installed by its own installer on a fresh server, the load comes from autocannon on a second server of the same data centre, every API runs two rounds of 15 seconds and the average is shown with the full autocannon output of a round.
