One API key. One REST endpoint. React hooks for the frontend, TypeScript SDK for the backend. Zero-config dev mode for local testing. 80+ endpoints, all documented.
curl -X POST https://api.entrouter.com/v1/join \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"eventId": "concert-2025", "userId": "user_abc123"}'
{
"position": 1847,
"total": 52419,
"fairnessToken": "ft_a1b2c3d4e5...",
"proofAvailable": true,
"estimatedWait": "2m 14s"
}
import { useRace } from '@entrouter/react';
function QueueView({ eventId }) {
const { position, total, status, proof } = useRace(eventId);
return (
<div>
<h2>Position {position} of {total}</h2>
<p>Status: {status}</p>
{proof && <a href={proof.url}>Download Proof</a>}
</div>
);
}
import { useQueue } from '@entrouter/react';
function AdminPanel({ eventId }) {
const { queue, drain, pause, stats } = useQueue(eventId);
return (
<div>
<p>{stats.active} active / {stats.waiting} waiting</p>
<button onClick={() => drain(100)}>Drain 100</button>
<button onClick={pause}>Pause Queue</button>
</div>
);
}
An endpoint is a URL your app calls to do something, like joining a queue or checking a position. Entrouter gives you over 80, organized into six categories. Send a request, get JSON back. That's it.
Key management, rotation, scope control, proof-only keys, password reset
10 endpointsJoin, leave, position check, batch enqueue, drain, pause, resume, stats
14 endpointsReal-time stats, anomaly streaming, system health, data export
14 endpointsIP allowlists, VPN detection, configurable rate limits, threat reports, anomaly feeds
14 endpointsProof retrieval, batch export, chain verification, geo validation, audit bundles
10 endpointsWebhooks, audit log search, IP allowlists, geo settings, archive access, module toggles
18 endpointsRun locally with no external dependencies. Dev mode simulates the full protection stack in-memory. Same API, same responses, same error codes. Switch to production by changing one environment variable.
Server-Sent Events (SSE) for live position updates. No polling. No WebSocket complexity. One HTTP connection, instant updates. Works behind every proxy, load balancer, and CDN.
TypeScript SDK and React hooks for the frontend. REST API works with anything that speaks HTTP: Python, Go, Ruby, Java, or plain cURL. Every endpoint returns clean JSON.
Enterprise plans can connect their own RESP-compatible data store. Run the engine against your infrastructure, your datacenter, your compliance boundary. We call it BYOR (Bring Your Own Runtime).
Sign up, get your API key instantly. No approval process, no sales call required.
One POST request to create your event. Set capacity, enable modules, configure queues.
Each user hits /v1/join with their ID. They get a position, a fairness token, and a live SSE stream.
Drain the queue at your pace. Download audit bundles. Every decision is provable.
80+ endpoints. Every one has request/response examples, error codes, rate limit headers, and edge case documentation. We built the API we'd want to use.
Full production access. No approval process. No sandbox limitations.