Developer portal
Venue Seating Wizard solves seating in the browser, so there is no compute API to call. What it does publish is a versioned, public, read-only JSON API describing the file formats, limits and objective function an integration needs in order to drive the tool correctly.
Quickstart
Start at the API index, which lists every operation with its URL and a one-line description. No API key, no OAuth, no sign-up: every endpoint is a plain GET that any client, crawler or agent can fetch.
curl -s https://venue-seating-wizard.aviramk.com/api/v1/index.json curl -s https://venue-seating-wizard.aviramk.com/api/v1/csv-schema.json curl -s https://venue-seating-wizard.aviramk.com/openapi.json
Endpoints
- GET /api/v1/index.json — service index and links to every other operation
- GET /api/v1/app.json — application metadata, capabilities and limits
- GET /api/v1/csv-schema.json — column-level schema for the guests, tables and export files
- GET /api/v1/objective.json — the objective function's terms, weights and scaling
- GET /api/v1/examples.json — worked examples with links to downloadable CSVs
- GET /api/v1/health.json — static service descriptor and contract version
Errors
Errors are RFC 9457 problem documents served as application/json. Every problem document carries a stable code, a human-readable detail, a resolution hint and a documentation_url, so a client never has to parse an HTML page to find out what went wrong. Any unrecognized path under /api/ returns the endpoint_not_found problem document, whose status member is 404; because the site is served from a static CDN with no request handler, that document is delivered with a 200 transport status. Outside /api/, unknown paths return a genuine HTTP 404.
{
"type": "https://venue-seating-wizard.aviramk.com/developers/#errors",
"title": "Endpoint not found",
"status": 404,
"code": "endpoint_not_found",
"detail": "No Venue Seating Wizard API endpoint is published at this path.",
"resolution": "Fetch /api/v1/index.json for the list of available operations.",
"documentation_url": "https://venue-seating-wizard.aviramk.com/developers/"
}Authentication, writes and webhooks
There is no authentication because there is nothing private to protect: the entire API is public and read-only. Venue Seating Wizard publishes no write endpoints, no API keys, no OAuth scopes, no webhooks and no long-running jobs, so pagination, idempotency keys and callback URLs do not apply. Optimization itself is not an API operation — it runs in a Web Worker on the user's own machine, which is what keeps guest lists private and the service free.
Sandbox and test data
Open /en/?demo=1 and the optimizer boots pre-loaded with the published example guest list and table layout — six bookings across four tables — so you can exercise the full import → optimize → export flow against known-good input before pointing it at a real guest list. The Hebrew demo is at /he/?demo=1, and /api/v1/sandbox.json describes it in machine-readable form.
It is a sandbox in the strict sense too: optimization runs in the visitor's own browser and nothing is persisted server-side, so every session is already isolated. There is no production dataset to corrupt, no test key to swap in, and no way for one run to affect another. The demo seeds an empty workspace only, so it will never overwrite work you already have open.
The API side needs no separate base URL: every operation is a read-only GET over static documents, so calling it has no side effects and cannot be destructive.
Versioning and deprecation policy
Stable operations live under the major-version path /api/v1. A breaking change to a payload shape appears under a new major path rather than mutating /api/v1; additive changes — a new optional member, a new operation — may land in place.
When an operation is going to be withdrawn, it is announced on this page and signalled on the response itself with an RFC 9745 Deprecation header and an RFC 8594 Sunset header carrying the removal date, at least 180 days ahead. No operation is currently deprecated. An integration that reads those two headers will never be surprised by a removal. The policy is published in full at /deprecation-policy, and in machine-readable form as the deprecation_policy object on /api/v1/index.json.
Rate limits
Responses are static files served from a CDN, so there is no per-client quota and no RateLimit header is emitted — there is no budget to report. Please cache the documents rather than polling them; they change only when the tool's contract changes.
Every operation supports conditional requests. Keep the ETag from a response and send it back as If-None-Match; an unchanged document answers 304 Not Modified with no body, so revalidating costs a round trip rather than a download.
curl -s -o /dev/null -w '%{http_code}\n' \
-H 'If-None-Match: W/"0e1558ed3324e3169dbaa6629cc7e746"' \
https://venue-seating-wizard.aviramk.com/api/v1/index.jsonDiscovery
- /llms.txt — what this site is, when an agent should use it, and where everything lives
- /openapi.json — OpenAPI 3.1 description with an operationId and response schema per operation
- /.well-known/api-catalog — RFC 9727 API catalog
- /.well-known/ai-catalog.json — AI Catalog manifest (ARD)
- /.well-known/agent-skills/index.json — agent skills index
- /sitemap.xml and /robots.txt
File formats and the meaning of every field are documented on the documentation page. Bugs and integration questions belong on the contact page.