Self-hosted, cloud-synced API testing workspace
Built with Next.js 15 · Firebase Auth · PostgreSQL · Prisma · Demo
API Go! is a self-hostable, open-source alternative to Postman and Insomnia. Your requests, collections, environments, and history are synced securely to a PostgreSQL database in the cloud — accessible from any browser, shareable with your team.
No desktop install. No expensive subscriptions. Just sign in with Google and start testing.
| Feature | Description |
|---|---|
| Request Collections | Organize requests into nested folders. Create, rename, and delete with inline editing. |
| Cloud Sync | All data syncs to Neon PostgreSQL via Prisma ORM, authenticated with Firebase. |
| Collection Sharing | Share individual collections with teammates using their email address. |
| Multi-Environment | Manage Dev, Staging, Production environments with full variable substitution in URLs, headers, and body. |
| Environment Sharing | Share environments with other users — great for team-wide config like base URLs. |
| Secure Secrets | Store API keys and tokens separately. Secrets are injected at request time. |
| Global Headers | Define headers once; they are injected into every outgoing request automatically. |
| Request History | Every sent request is logged. Delete individual entries or clear all history. |
| Body Types | Supports none, raw (JSON), x-www-form-urlencoded, and form-data body types. |
| Response Viewer | Colorized JSON syntax highlighting, response headers view, status badge, and timing info. |
| Mockup API | Create custom mock endpoints with path/method matching, dynamic responses, and public access with rate limiting. |
| Google Sign-In | One-click login with Firebase Google Auth. No passwords to manage. |
| Open Source | MIT license. Self-host it, fork it, or contribute. |
- Framework — Next.js 15 (App Router, Server Components)
- Language — TypeScript 5
- Database — Neon serverless PostgreSQL
- ORM — Prisma v7
- Authentication — Firebase (Google Sign-In + Admin SDK for server-side token verification)
- Styling — Tailwind CSS v4
- Icons — Lucide React
- Node.js 20+ or Bun
- A Firebase project with Google Auth enabled
- A Neon PostgreSQL database (free tier works)
git clone https://github.com/iamapinan/APIGo.git
cd APIGo
bun installCreate .env and .env.local files:
# .env
DATABASE_URL="postgresql://user:password@host/dbname?sslmode=require"# .env.local
NEXT_PUBLIC_FIREBASE_API_KEY=...
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=...
NEXT_PUBLIC_FIREBASE_PROJECT_ID=...
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=...
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=...
NEXT_PUBLIC_FIREBASE_APP_ID=...bunx prisma generate
bunx prisma db pushbun devOpen http://localhost:3000.
User
├── CollectionItem (folder/request, self-referencing hierarchy)
│ └── CollectionShare (shared by email)
├── HistoryItem
├── Environment
│ └── EnvironmentShare (shared by email)
├── Secret
├── GlobalHeader
├── MockEndpoint (path, method, isPublic, rateLimit)
│ └── MockResponse (statusCode, body, headers)
| Method | Route | Description |
|---|---|---|
| GET/POST | /api/collections |
List / create collection items |
| PUT/DELETE | /api/collections/[id] |
Update / delete a collection item |
| POST | /api/collections/share |
Share collection with a user by email |
| GET/POST/DELETE | /api/history |
List / add / clear all history |
| DELETE | /api/history/[id] |
Delete individual history entry |
| GET/POST | /api/environments |
List / create environments |
| PUT/DELETE | /api/environments/[id] |
Update / delete environment |
| POST | /api/environments/share |
Share environment with a user |
| GET/PUT | /api/secrets |
Get / replace all secrets |
| GET/PUT | /api/global-headers |
Get / replace all global headers |
| GET/POST | /api/mocks |
List / create / update mock endpoints |
| GET/POST/PUT/DELETE/PATCH | /api/mock/[...path] |
Public/Private Mock Resolver |
All routes require a Firebase ID token in the Authorization: Bearer <token> header.
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch:
git checkout -b feat/my-feature - Commit your changes
- Open a Pull Request
MIT — free to use, modify, and distribute.
Made with care by @iamapinan
