Open Source — Free Core

The API Platform That
Respects Your Privacy,
Your RAM, and Your Git

Local-first, native-speed. Send REST, GraphQL, gRPC, WebSocket — all from one interface. No login. No cloud. No bloat.

~50MB RAM
<2s Startup
Zero Login
Cross-Platform

Available for macOS, Windows, and Linux

ApiArk — REST
GETList Users
POSTCreate User
PUTUpdate Profile
GEThttps://api.example.com/v1/users
200 OK45ms2.4 KB
1{
2 "users": [
3 {
4 "id": "usr_k8x2m",
5 "name": "Sarah Chen",
6 "email": "sarah@example.com",
7 "role": "admin",
8 "created_at": "2026-01-15T08:30:00Z"
9 },
10 {
11 "id": "usr_p3n7q",
12 "name": "Marcus Johnson",
13 "email": "marcus@example.com",
14 "role": "developer",
15 "created_at": "2026-02-20T14:15:00Z"
16 }
17 ],
18 "total": 2,
19 "page": 1
20}

Everything you need. Nothing you don't.

See every feature working inside the app.

PERF

Native Speed

$ apiark --version
ApiArk v0.1.0 (Tauri v2, Rust)
 
$ ps aux | grep -i api
ApiArk .............. 48MB
Postman ............. 812MB
Insomnia ............ 397MB

50MB RAM. <2s startup. Tauri v2 + Rust — not Electron bloat.

FS

Local-First Forever

~/my-api/
.apiark/
apiark.yaml
environments/
dev.yaml
prod.yaml
users/
get-all.yaml
create.yaml
.env # gitignored

Your data never leaves your machine. No login. No cloud. No telemetry.

DIFF

Git-Native Storage

$ git diff users/create.yaml
name: Create User
- method: PUT
+ method: POST
url: "{{baseUrl}}/api/users"
- body: {}
+ body:
+ type: json
+ content: |
+ {"name": "{{name}}"}

YAML files. One per request. Fully diffable, mergeable, versionable.

TS

TypeScript Scripting

// post-response script
ark.test("user created", () => {
const body = ark.response.json();
ark.expect(body).to.have.property("id");
ark.expect(body.role).to.eq('admin');
ark.env.set("userId", body.id);
});
 
// Result: PASS (12ms)

Pre/post scripts in TS. Chai assertions, CryptoJS, Lodash, Faker built-in.

AI

AI-Powered

> "Create a POST to register a user
with email validation"
 
Generated:
method: POST
url: "{{baseUrl}}/auth/register"
body: { email, password }
assert:
status: 201
body.token: { type: string }

Generate requests from natural language. Auto-generate tests. Your API key.

EXT

Plugin Ecosystem

// my-auth-plugin.js
export default {
name: "custom-hmac-auth",
hook: "pre-request",
run(req) {
const sig = hmac(req.body);
req.setHeader("X-Sig", sig);
}
};

Extend with JavaScript or WASM plugins. Custom auth, transformers, integrations.

Every protocol. One interface.

REST, GraphQL, gRPC, WebSocket, SSE, MQTT — all with the same experience.

ApiArk
GET/api/users
200 OK45ms
1{
2 "users": [
3 { "id": 1, "name": "Sarah Chen", "role": "admin" },
4 { "id": 2, "name": "Marcus J.", "role": "dev" }
5 ],
6 "total": 2
7}

See it in action.

12 seconds. That's all it takes to see why developers are switching.

10x lighter.

Same power. Fraction of the resources.

Postman
0MB
Insomnia
0MB
Bruno
0MB
Hoppscotch
0MB
ApiArk
16x lighter
0MB

Average RAM usage at idle — measured on macOS 14, Apple M2, 10 requests loaded

0MB

Average RAM Usage

vs 800MB for Postman

<0s

Cold Start Time

vs 10-30s for Postman

0MB

Download Size

vs 200MB+ for Postman

“Postman uses 800MB of RAM to send a GET request. ApiArk uses 50MB.Your laptop deserves better.”

See how we compare.

Every feature. Every competitor. No asterisks.

FeatureOur pickApiArkPostmanBrunoInsomniaHoppscotch
FrameworkTauri v2ElectronElectronElectronTauri
RAM Usage~50MB300-800MB150-300MB200-400MB50-80MB
Account RequiredOptionalOptional
Data StorageFilesystemCloudFilesystemCloudIndexedDB
REST
GraphQL
gRPC
WebSocket
SSE
MQTT
Mock ServersCloud onlyBasic
MonitoringCloud only
Collection Runner
CLI ToolNewmanbru CLIinsohopp
Plugin Systemnpm
Open SourceMITMITMITMIT
Team Price$8/user/mo$19/user/mo$6/user/mo$12/user/moCustom
Detailed comparison: Postman|Bruno|Insomnia|Hoppscotch

Ready to ditch the bloat?

Try it — 60 seconds to your first request. No signup. No credit card. Just download and go.

Free to start. No account required.

Free Core
No Telemetry
Privacy First