Skip to content

goshops-com/endpnt

Repository files navigation

Endpnt

Open-source API testing platform. Self-host with unlimited teams, collections, and requests using only an S3 bucket.

Deploy anywhere: Cloudflare Workers, Vercel, Docker, or any serverless platform. Zero database required. Built for teams who want complete control without infrastructure complexity.

Why Endpnt?

  • No vendor lock-in - Your data lives in your S3 bucket. Export anytime in Postman format.
  • Zero database - S3-compatible storage is all you need. Works with AWS S3, Cloudflare R2, MinIO, or any S3-compatible service.
  • Unlimited everything - No artificial limits on teams, collections, requests, or environments.
  • Deploy anywhere - Cloudflare Workers, Vercel, Docker, or your own servers.
  • Modern stack - Built with Next.js 16, React 19, and TypeScript.

Features

API Testing

  • All HTTP methods - GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
  • Request builder - Headers, query params, body (JSON, form-data, x-www-form-urlencoded, raw)
  • Response viewer - Syntax-highlighted JSON/XML, headers, timing, and size metrics
  • Environment variables - Use {{variable}} syntax anywhere in your requests
  • Request history - Automatically saved with full request/response data

Organization

  • Collections - Group related requests together
  • Folders - Nested organization within collections
  • Environments - Switch between dev, staging, production configs instantly

Team Collaboration

  • Unlimited teams - Create as many teams as you need
  • Role-based access - Owner, Admin, Member, and Viewer roles
  • Share collections - Share entire collections with your team
  • Real-time sync - Changes sync across all team members

Developer Experience

  • Code generation - Export to 9 languages:
    • cURL
    • JavaScript (Fetch)
    • JavaScript (Axios)
    • Python (Requests)
    • Go
    • PHP (cURL)
    • Ruby
    • C# (.NET)
    • Java (HttpClient)
  • Test scripts - Write tests with familiar pm.test() and pm.expect() syntax
  • Import/Export - Full Postman collection format support
  • cURL import - Paste any cURL command to create a request
  • Dark mode - Easy on the eyes, day or night

Self-Hosted Benefits

  • Data sovereignty - Your API definitions never leave your infrastructure
  • Cost control - S3 storage costs pennies per GB
  • Compliance ready - Deploy in your own VPC for regulatory requirements
  • Air-gapped support - Works without external dependencies

Quick Start

Deploy to Cloudflare Pages (Recommended)

  1. Fork this repository
  2. Connect to Cloudflare Pages
  3. Set environment variables:
    S3_ENDPOINT=https://your-account.r2.cloudflarestorage.com
    S3_REGION=auto
    S3_ACCESS_KEY_ID=your-access-key
    S3_SECRET_ACCESS_KEY=your-secret-key
    S3_BUCKET=endpnt
    
  4. Deploy!

Deploy to Vercel

Deploy with Vercel

Run Locally

# Clone the repository
git clone https://github.com/goshops-com/endpnt.git
cd endpnt

# Install dependencies
pnpm install

# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your S3 credentials

# Start development server
pnpm dev

Docker

docker run -d \
  -p 3000:3000 \
  -e S3_ENDPOINT=https://s3.amazonaws.com \
  -e S3_REGION=us-east-1 \
  -e S3_ACCESS_KEY_ID=your-key \
  -e S3_SECRET_ACCESS_KEY=your-secret \
  -e S3_BUCKET=endpnt \
  ghcr.io/goshops-com/endpnt

Configuration

Environment Variables

Variable Description Required
S3_ENDPOINT S3-compatible endpoint URL Yes
S3_REGION S3 region (use auto for R2) Yes
S3_ACCESS_KEY_ID Access key for S3 Yes
S3_SECRET_ACCESS_KEY Secret key for S3 Yes
S3_BUCKET Bucket name for storing data Yes
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY Clerk publishable key (for auth) Optional
CLERK_SECRET_KEY Clerk secret key (for auth) Optional

Storage Backends

Endpnt supports multiple S3-compatible storage backends:

Cloudflare R2 (Recommended for Cloudflare deployments)

S3_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com
S3_REGION=auto

AWS S3

S3_ENDPOINT=https://s3.amazonaws.com
S3_REGION=us-east-1

MinIO (Self-hosted)

S3_ENDPOINT=http://localhost:9000
S3_REGION=us-east-1

DigitalOcean Spaces

S3_ENDPOINT=https://<region>.digitaloceanspaces.com
S3_REGION=<region>

Architecture

+-------------------------------------------------------------+
|                        Browser                               |
|  +-----------+  +-----------+  +---------------------+       |
|  | Collections|  | Request   |  | Response Viewer    |       |
|  | Sidebar    |  | Builder   |  | + Test Results     |       |
|  +-----------+  +-----------+  +---------------------+       |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
|                    Next.js API Routes                        |
|  +-----------+  +-----------+  +---------------------+       |
|  | /api/     |  | /api/teams|  | Proxy for CORS     |       |
|  | request   |  |           |  | bypass             |       |
|  +-----------+  +-----------+  +---------------------+       |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
|                    S3-Compatible Storage                     |
|  +-----------------------------------------------------+    |
|  | /users/{userId}/collections/{id}.json               |    |
|  | /users/{userId}/environments/{id}.json              |    |
|  | /teams/{teamId}/metadata.json                       |    |
|  | /teams/{teamId}/collections/{id}.json               |    |
|  +-----------------------------------------------------+    |
+-------------------------------------------------------------+

Development

Prerequisites

  • Node.js 20+
  • pnpm 9+

Scripts

# Development
pnpm dev              # Start dev server with Turbopack

# Building
pnpm build            # Build for Node.js
pnpm build:cloudflare # Build for Cloudflare Pages

# Testing
pnpm test             # Run unit tests (Vitest)
pnpm test:e2e         # Run E2E tests (Playwright)
pnpm test:coverage    # Run tests with coverage

# Deployment
pnpm deploy:cloudflare # Deploy to Cloudflare Pages

Project Structure

src/
├── app/                    # Next.js App Router
│   ├── api/               # API routes
│   │   ├── request/       # Proxy for API requests
│   │   └── teams/         # Team management APIs
│   ├── layout.tsx         # Root layout
│   └── page.tsx           # Home page
├── components/
│   ├── dialogs/           # Modal dialogs
│   ├── environments/      # Environment manager
│   ├── history/           # Request history panel
│   ├── layout/            # Main layout
│   ├── request/           # Request builder
│   ├── response/          # Response viewer
│   ├── sidebar/           # Collections sidebar
│   ├── teams/             # Team switcher
│   └── ui/                # Reusable UI components
├── hooks/                 # Custom React hooks
├── lib/
│   ├── storage/           # S3/R2 storage clients
│   ├── code-generators.ts # Code snippet generation
│   ├── import-export.ts   # Postman format handling
│   └── utils.ts           # Utility functions
├── store/                 # State management
└── types/                 # TypeScript types

Comparison

Feature Endpnt Postman Insomnia Hoppscotch
Open Source Yes No Partial Yes
Self-Hosted Yes No Yes Yes
Database Required No - Yes Yes
Team Collaboration Yes Paid Paid Yes
Offline Support Yes Limited Yes Limited
Import Postman Yes - Yes Yes
Code Generation 9 langs 15+ langs 8 langs 6 langs

Roadmap

  • WebSocket testing
  • GraphQL support
  • gRPC support
  • Request chaining
  • Pre-request scripts
  • Mock servers
  • API documentation generation
  • CLI tool
  • VS Code extension

Contributing

We welcome contributions! Please see our Contributing Guide for details.

# Fork and clone
git clone https://github.com/YOUR_USERNAME/endpnt.git
cd endpnt

# Install dependencies
pnpm install

# Create a branch
git checkout -b feature/amazing-feature

# Make your changes and test
pnpm test
pnpm test:e2e

# Commit and push
git commit -m "Add amazing feature"
git push origin feature/amazing-feature

License

MIT License - see LICENSE for details.

Support


Built with love by GoShops

About

Endpnt - Open-source API testing platform. Self-host with unlimited teams, collections, and requests using only an S3 bucket. Deploy anywhere: Cloudflare Workers, Vercel, Docker, or any serverless platform. Zero database required. Built for teams who want complete control without infrastructure complexity.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors