# API Maker v4.0.0 Release Notes

> What’s new in v4.0.0:- API Maker is rebuilt in Rust, one process per server on every CPU core, your code in TypeScript, Python, PHP, C#, Go, Rust, Java or Kotlin, SSR websites, a table designer, a security report which reads your code, automatic indexes, code coverage in your IDE, the API Maker Launchpad desktop app, one port for APIs and web sockets.

Source: https://docs.apimaker.dev/v4/docs/blog/release-notes/v4.0.0.html

Major release · October 2026

**API Maker v4.0.0**

API Maker v4 keeps the APIs, the admin panel and the Git repositories of version 3, on a new engine : versions 1 to 3 were built in Node.js, this one is built in Rust.

- [**16** · Features](https://docs.apimaker.dev/v4/docs/blog/release-notes/v4.0.0.html#features)
- [**10** · Improvements](https://docs.apimaker.dev/v4/docs/blog/release-notes/v4.0.0.html#improvements)
- [**5** · Breaking changes](https://docs.apimaker.dev/v4/docs/blog/release-notes/v4.0.0.html#breaking-changes)

- [Upgrade from v3](https://docs.apimaker.dev/v4/docs/getting-started/upgrade-from-v3.html)
- [Install on a server](https://docs.apimaker.dev/v4/docs/getting-started/install-on-server.html)
- [Run on your computer](https://docs.apimaker.dev/v4/docs/getting-started/local-run.html)

## Features

The engine

- **API Maker is rebuilt in Rust.** The server is one program and runs as one process, using every CPU core. No worker processes to start or balance. [One process, every core →](https://docs.apimaker.dev/v4/docs/am-resources/api-maker-configurations.html#one-process)
- **Your code in eight languages.** Write custom APIs, hooks, schedulers, events, migrations, test cases and more in TypeScript or JavaScript (Node.js or Bun), Python, PHP, C#, Go, Rust, Java or Kotlin. One account can mix languages ; an API and its hooks use one language. [Languages and runtimes →](https://docs.apimaker.dev/v4/docs/languages/index.html)
- **Packages for every language.** npm, PyPI, Packagist, NuGet, Go modules, crates.io and Maven Central. Each language has its own packages, version and Docker image. [Sandbox settings →](https://docs.apimaker.dev/v4/docs/settings/sandboxSettings.html)

Security and AI

- **APIs Security Report & Actions.** Finds where a person could reach data that is not theirs and gives the account a score out of 100. It reads your code too, in all eight languages : secrets in code, password columns returned, owners taken from the body. Most findings have a one-click fix, and the report is kept in Git. [APIs Security Report →](https://docs.apimaker.dev/v4/docs/apis-security/api-security-report.html)
- **AGENTS.md for AI agents.** Every commit writes `AGENTS.md` in the account repository : a guide for Codex, Claude Code, Cursor and Copilot on where things are, how to write code and how to fix security findings. Your own text around it stays. [AGENTS.md in your repository →](https://docs.apimaker.dev/v4/docs/ai/llms.html#agents-md)

Data and databases

- **Table designer.** Create and change tables and collections in the admin panel, on all six databases : columns, keys, indexes and checks. You see the statements before they run, and the schema of the table follows the change. [Table designer →](https://docs.apimaker.dev/v4/docs/schema/table-designer.html)
- **Panel changes recorded in migration scripts.** Tables, databases and indexes you create, change or delete in the admin panel can be recorded into a migration script, so every environment makes the same change when it deploys. [Recorded from the panel →](https://docs.apimaker.dev/v4/docs/features/database-migration.html#recorded-changes)
- **Vector, JSON and other column types.** Vectors, JSON, bytes, shapes, intervals and arrays work as plain JSON in every API, on all six databases. [Data types →](https://docs.apimaker.dev/v4/docs/schema/data-types.html)
- **Automatic indexes.** Turn on the automatic mode of Index Maker : it finds the slow or frequent queries of your APIs which use no index, and creates the index. Each index goes into the migration script `am_index_maker`, so every environment gets it on its next deploy. [Automatic indexes →](https://docs.apimaker.dev/v4/extensions/index_maker/automatic_indexes.html)
- **Indexes from your code.** `g.sys.system.createIndexes`, `dropIndexes` and `getIndexes` create, drop and list indexes the same way on all six databases. [Create indexes →](https://docs.apimaker.dev/v4/docs/apis-all/system-apis/system-generated-create-indexes-api.html)

Build and ship

- **SSR websites.** Websites in TSX, rendered by API Maker next to your data : file routing, layouts, forms with CSRF protection, sign-in, page cache and SEO. [SSR websites →](https://docs.apimaker.dev/v4/docs/ssr/index.html)
- **API Maker Launchpad.** A free desktop app for macOS, Windows and Linux. It runs API Maker and its databases on your computer, and installs API Maker on your servers over SSH. [Run on your computer →](https://docs.apimaker.dev/v4/docs/getting-started/local-run.html)
- **Upgrade from v3 with the Launchpad.** Its V3 to V4 Migration page checks a v3 server, moves it to v4 in place with its data and secrets, and rolls back if a step fails. [Upgrade from v3 →](https://docs.apimaker.dev/v4/docs/getting-started/upgrade-from-v3.html)

Developer tools

- **Typed rows without interfaces.** A `g.sys.db` call knows the table it reads : the editor suggests its columns in your query and on the rows it returns, in every language. No interface to write first. [The code editor →](https://docs.apimaker.dev/v4/docs/languages/index.html#editor)
- **Code coverage in your IDE.** `npm run test` in the local client runs the test cases and shows which lines ran, in every language, in VS Code and WebStorm. [Code coverage in your IDE →](https://docs.apimaker.dev/v4/docs/test-cases/test-cases.html#code-coverage-in-your-ide)
- **Speed and traffic in every list.** The lists of custom APIs, tables, system APIs, schedulers and events show how fast each one answers, how often it is called and how often it fails. Click a number to see its chart.

## Improvements

- **One port.** APIs and web sockets share one port (`port`). `wsPort` is no longer used. Behind Caddy nothing changes.
- **The admin panel comes with API Maker.** API Maker serves it on its own port (`adminPanel.port`) ; the `api_maker_fe` service is gone.
- **All MongoDB query operators in `find`.** `$nor`, `$not`, `$exists`, `$type`, `$mod`, `$regex`, `$all`, `$elemMatch`, `$size`, bitwise, geospatial, `$expr`, `$text`, `$where`, `$jsonSchema` and array positions (`"orders.0.qty"`) work as in MongoDB. On SQL databases, the ones a table supports are turned into SQL, and several operators on one field (`{ "$gte": 1, "$lte": 9 }`) work too. [find →](https://docs.apimaker.dev/v4/docs/apis-all/query-params/find.html)
- **`$slice` and `$elemMatch` in `select`.** On MongoDB, `{ "orders": { "$slice": -3 } }` returns the last 3 orders, and `{ "orders": { "$elemMatch": { "status": "PAID" } } }` the first paid one. Before, the whole array came back. [select →](https://docs.apimaker.dev/v4/docs/apis-all/query-params/select.html#arrays-on-mongodb-slice-and-elemmatch)
- **Index Maker redesigned.** A summary of every scanning period, suggestions you add to the script in one click, and an index form which says which fields can be indexed. Its tab in API Testing shows every database call of a run on a timeline. Indexes also work on Oracle and SQL Server tables with mixed-case names. [Index Maker →](https://docs.apimaker.dev/v4/extensions/index_maker/introduction.html)
- **Local client.** `localClient.js` runs on its own, with nothing to install first, and syncs your files both ways. [Your own editor →](https://docs.apimaker.dev/v4/docs/features/developer-tools.html#your-own-editor)
- **Git status ignores whitespace at line ends.** A file whose lines differ only by spaces, tabs or Windows line endings at their ends is not listed as changed.
- **Tokens across admin users, for your users too.** The root setting **Allow API Maker User's Token Across Admin Users** also covers the tokens of your users (`x-am-user-authorization`). [Auth of database user →](https://docs.apimaker.dev/v4/docs/authorization/AMDB.html)
- **Docker tab for admin users.** The Analytics dashboard shows each admin user the Docker containers of their sandboxes, with live stats and a safe prune. Each container shows the logo of its language and runtime.
- **Deployment hooks checked before saving.** The hook URL and the access token take letters, digits and `_` only, and the form says so before you save. [Deployment hooks →](https://docs.apimaker.dev/v4/docs/Git/git.html#deployment-hooks)

## Breaking changes

Read these before you move a server of v3 to v4. [Upgrade from v3 →](https://docs.apimaker.dev/v4/docs/getting-started/upgrade-from-v3.html)

- **`null` in `find` on SQL means `IS NULL`.** `{ "deleted_at": null }` returns rows without a value, and `{ "$ne": null }` rows with one. Before, they matched no rows. This also applies to update many and remove by query. `$regex` on SQL is now a regular expression ; only a pattern with `%` at an end is still read as `$like`.
- **`$like` on MongoDB works as in SQL.** `"Bob%"` matches names starting with `Bob`, `"%Bob"` names ending with it ; before, MongoDB had them the other way round. `_` is any one character, and a pattern without `%` must match the whole value. This applies to every API that takes `find`. Swap the `%` in old filters, or use `$regex`. [find →](https://docs.apimaker.dev/v4/docs/apis-all/query-params/find.html#of-api-maker)
- **`$or` and `$nin` with nothing to match.** A `$or` condition that matches no row no longer empties the whole result. `$nin` of an empty array returns every row, as in MongoDB.
- **Sandboxes install only what you add.** A package your code imports must be listed for its language in Sandbox settings. [Packages →](https://docs.apimaker.dev/v4/docs/settings/sandboxSettings.html#packages)
- **Deprecated parts removed.** UI Maker (DB masters), the AM Store, third party APIs and notes are gone.
