A discovery layer for useful APIs.
CallPort explores how developers and agents can discover APIs priced per request. This version runs entirely from nine bundled sample listings. It needs no account, database, credentials or external API.
All provider endpoints use example.com placeholders. Descriptions, input/output and pricing are illustrative. No real customers, revenue, transactions or paid usage are claimed.
One request. A payment-aware response.
x402 uses HTTP 402 Payment Required to communicate payment requirements. A compatible client can inspect those requirements and authorize a request; a live provider would need separate verification and settlement infrastructure.
- A client requests a resource.
- The server responds with HTTP 402 requirements.
- A capable client authorizes and retries.
- A live provider verifies payment and delivers the resource when appropriate.
The playground simulates that sequence through the controlled local /api/demo route. Its authorization is only a demo marker. No wallet, signature, funds or settlement is involved. HTTP 402 alone never proves a successful payment.
Try a listing before you publish.
The submission preview lets anyone enter an API name, description, category, HTTPS website and endpoint, HTTP method, network, asset and atomic price. Zod validates the fields in your browser and shows normalized JSON.
Nothing is saved, reviewed or published. The draft is only transient component state. It is not sent to a server, added to the directory, placed in local storage or written to a file. Reloading clears it. Use example values and never enter secrets.
The interactive demo dashboard lets you select and inspect the bundled samples, filter by category, copy a discovery request, and open the playground. It has no sign-in, users, earnings, approval queue or saved submissions.
Readable by agents, even in demo mode.
These read-only JSON endpoints work locally and in production with no environment variables:
GET /api/v1/services?q=weather&network=eip155%3A8453&sort=name&page=1&limit=6
GET /api/v1/services/signal-weather
GET /api/v1/stats{
"data": ["sample service records"],
"meta": {"version":"v1", "mode":"sample", "total":9, "page":1, "limit":6}
}The example shows the response shape. Actual totals are calculated from the filtered bundled collection. Search matches names and descriptions. Category is an exact directory category. Networks use identifiers such as eip155:8453. Page sizes range from 1 to 50; default 6. Sort by name, newest or price.
Price sorting compares exact atomic integers for Base USDC; incompatible assets are not assigned a guessed dollar price. Creation dates are sample metadata, not live publication history. Invalid queries return 400, unknown slugs return 404, and errors use an error object with a code and message.
Statistics report the sample count separately from imported, submitted and payment-verified records, which remain zero in this demo. Discovery cannot accept writes. There is no application-level distributed rate limiter; hosting protections can be configured separately without changing the demo.
Clear about what this demo does.
| Feature | Standalone demo |
|---|---|
| Directory, search, filters and pagination | Working from bundled samples |
| Detail pages and copyable examples | Working; all listings labeled sample |
| Discovery API and statistics | Working in development and production |
| Submission form | Browser validation and unsaved preview only |
| Dashboard | Interactive sample inspector; no real accounts or metrics |
| x402 playground | Controlled local simulation only |
| Authentication, admin review, database writes | Removed from active application |
| Catalog imports, live endpoint checks, live payments | Not active |
Listing origin, endpoint health, checked payment requirements and successful paid requests are separate concepts. Sample listings verify none of those live capabilities.
Start with one local folder.
Set-Location "C:\Users\soumi\OneDrive\Desktop\callport"
npm.cmd ci
npm.cmd run devOpen http://localhost:3000. No .env file, Git repository, OAuth setup or database service is required. Production uses npm.cmd run build, then npm.cmd start.
The repository README includes exact direct-from-folder Vercel CLI login and production deployment commands. No Git connection is required. Vercel CLI can deploy this folder directly without a Git connection or application secrets.
Historical integration code and instructions are archived separately under archive/future-integrations. They are excluded from the build and Vercel upload and are not setup requirements.