---
title: Venue Seating Wizard developer portal
description: The read-only JSON API, its OpenAPI 3.1 description, error format, rate limits, authentication policy and versioning.
canonical: https://venue-seating-wizard.aviramk.com/developers/
last-updated: 2026-08-23
---

# Venue Seating Wizard 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

```sh
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
```

No API key, no OAuth, no sign-up: every endpoint is a plain GET that any client, crawler or agent can fetch.

## Endpoints

| Operation | Method | URL |
| --- | --- | --- |
| `getApiIndex` | GET | [/api/v1/index.json](https://venue-seating-wizard.aviramk.com/api/v1/index.json) |
| `getApplicationMetadata` | GET | [/api/v1/app.json](https://venue-seating-wizard.aviramk.com/api/v1/app.json) |
| `getCsvSchema` | GET | [/api/v1/csv-schema.json](https://venue-seating-wizard.aviramk.com/api/v1/csv-schema.json) |
| `getObjective` | GET | [/api/v1/objective.json](https://venue-seating-wizard.aviramk.com/api/v1/objective.json) |
| `getExamples` | GET | [/api/v1/examples.json](https://venue-seating-wizard.aviramk.com/api/v1/examples.json) |
| `getHealth` | GET | [/api/v1/health.json](https://venue-seating-wizard.aviramk.com/api/v1/health.json) |
| `getSandbox` | GET | [/api/v1/sandbox.json](https://venue-seating-wizard.aviramk.com/api/v1/sandbox.json) |

## Sandbox

[https://venue-seating-wizard.aviramk.com/en/?demo=1](https://venue-seating-wizard.aviramk.com/en/?demo=1) opens the optimizer pre-loaded with the published example guest list and table layout, so the full import to optimize to export flow can be exercised without touching a real guest list. It seeds an empty workspace only. [https://venue-seating-wizard.aviramk.com/api/v1/sandbox.json](https://venue-seating-wizard.aviramk.com/api/v1/sandbox.json) describes it in machine-readable form.

## 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`. 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.

```json
{
  "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.

## Versioning and rate limits

Stable operations live under the major-version path `/api/v1`. Breaking changes to a payload shape will appear under a new major path rather than mutating `/api/v1`. The full policy is at [https://venue-seating-wizard.aviramk.com/deprecation-policy/](https://venue-seating-wizard.aviramk.com/deprecation-policy/).

Responses are static files served from a CDN, so there is no per-client quota and no `RateLimit` header is emitted. Every operation supports conditional requests: keep the `ETag` and send it back as `If-None-Match`, and an unchanged document answers `304 Not Modified` with no body.

## Discovery

- [/llms.txt](https://venue-seating-wizard.aviramk.com/llms.txt)
- [/openapi.json](https://venue-seating-wizard.aviramk.com/openapi.json)
- [/.well-known/api-catalog](https://venue-seating-wizard.aviramk.com/.well-known/api-catalog)
- [/sitemap.xml](https://venue-seating-wizard.aviramk.com/sitemap.xml) and [/robots.txt](https://venue-seating-wizard.aviramk.com/robots.txt)
