API Maker
The backend engine for the AI era
Custom APIsEpisode 16 6:52 12 chapters October 2026
The things most teams build by hand around their code, ready in a custom API: file uploads checked before the code runs, downloads by file name, any content type, external calls side by side, npm packages in a click, Chromium in a sandbox group of its own for PDF invoices, and caching in one line.
In the playlists The complete course Custom APIs & code
Custom APIs, part three : the things most teams build by hand around their code. Files in and out, any kind of answer, calls side by side, npm packages, a browser, and caching in one line.
Around the code of an endpoint, the usual work is a parser for uploads, with size and type checks written by hand, temporary files and streams for every download, another server for pages and images, and slow services called one after the other. With API Maker, upload rules are settings, a download is a file name, the code picks the content type, and calls run side by side, with any npm package.
In this video : uploads with rules, files to download, any content type, calls side by side, npm packages, a browser in a sandbox of its own, and caching in one line.
Import Stock takes the stock counted in a warehouse, as a CSV. Its settings hold the rules : one field, files, a CSV, four kilobytes at most. The code finds the file in g.req.body, reads it from the uploads folder, and returns its rows. Custom API, Test API on Import Stock. The Body, as form data : a field named files, of the type files, and the count of the warehouse of Pune.
Send : the three rows of the file. Now a PDF. Refused, with a four hundred, before the code runs : only a CSV is allowed.
Low Stock Report reads the inventory of SQL Server, keeps the rows at or under their reorder level, and writes them to a CSV in the uploads folder. It returns the name of the file, and the name to save it under. API Maker sends the file, then removes it. From Custom API, Test API on Low Stock Report. Send : the browser saves low-stock.csv, a few hundred bytes. From any client, it is a plain download : curl saves low-stock.csv, and its rows are the products to order again.
Several files, or a whole folder, go out as one zip file.
Any content type. Product Page reads a product in MongoDB, sets the content type to HTML, and returns the page. The same way, an API answers XML, plain text, or an image. It is a public API, so the browser opens it : the Aurora desk lamp. Another SKU, the Nordic sofa. A product page, without a web server of its own.
Supplier Quotes asks three suppliers for the price of a lamp, with g.sys.system.callExternalApi. First one after the other, then the three side by side, with Promise.all. Each supplier takes three hundred milliseconds to answer. Custom API : the row of Supplier Quotes is red : its calls are slow. Test API on it, Send. One after the other : close to a second. Side by side : about a third of that.
And the best price : atelier, thirty nine ninety. About three times faster, for one line changed : the slowest supplier sets the time, not the sum of the three. The calls leave from the sandbox the code runs in : localhost there is the sandbox itself, so a service of the same machine is called by its address on the network.
The code can use packages of npm too. Operations, Sandbox Settings : search npm for qrcode, pick it, its latest version, Add, and Save. The image of the sandboxes is built again, with qrcode in it. Order QR requires qrcode like any Node.js module, sets the content type to a PNG image, and returns the QR code of an order. Opened in the browser : the QR code of an order, as a PNG.
Python, PHP, C sharp, Go, Rust, Java and Kotlin get their packages on the same page, from their own registries.
Some packages bring a whole program : a browser. Invoice PDF names a sandbox group of its own, browsers, with a Dockerfile that installs Chromium, and the package playwright, in the same version. Its code reads an order of MySQL with its lines and its customer, renders the invoice in Chromium, and returns the PDF as a file. The other APIs of the account keep their small image. Custom API, Test API on Invoice PDF, an order number, Send : invoice-CH-2026-0003.pdf.
Four lines and a total, made by Chromium in a sandbox of the group. Saving the API built that image on every server, about a minute the first time, and never again while the Dockerfile and the packages stay the same.
Last gem : Sales By Status has enableCaching in its settings. Custom API, Test API, Send : the answer of MySQL, api, in a fraction of a second. Again : the same answer from Redis, cache, in a few milliseconds. A write to the orders drops it : video twenty nine shows how.
Each upload field, files, files1 and on, has its own rules : a smallest and a largest size, and the extensions it takes. Uploads land in the uploads folder, which the code and the backend share. And a package added for one language is in every sandbox of that language, on every server.
Rules live in the settings, so every API checks files the same way. A file, a page or an image is one return away, with no server to add. And an AI assistant writes the same few lines a person would : nothing to wire up.
To sum up. Uploads, checked before the code runs. Downloads, as a file name. Any content type : HTML, images, files. External calls side by side. npm packages in a click, a browser in a sandbox group of its own, and caching in one line. Next : one API, in eight languages. API Maker. Build faster, spend smarter, deliver better.
Length 4:44Languages
Length 6:01Hooks
Length 4:31System APIs
Length 4:48Utility classes