Odeva API

Public API documentation

This page documents the public HTTP endpoints implemented in the www.odeva.app website repository.

Machine-readable discovery: /.well-known/api-catalog and /.well-known/openapi.json, /.well-known/mcp/server-card.json, and /mcp

Overview

Public website API

First-party endpoints on https://www.odeva.app: /api/tourist-tax and /api/waitlist.

Status and availability

Human-readable status page: /status. Structured monitor data comes from https://status.odeva.app/api/status-page/default and https://status.odeva.app/api/status-page/heartbeat/default.

Not documented here

The site references https://booking.odeva.app/graphql for product/demo flows, but this repository does not publish its schema or OAuth/OIDC metadata, so it is intentionally excluded from the OpenAPI document and discovery metadata here.

GET /api/tourist-tax

Returns either filter metadata or filtered tourist tax records sourced from the website's CSV dataset.

Metadata request

GET /api/tourist-tax?action=metadata

Returns JSON with:

Filtered request

GET /api/tourist-tax?municipality=Goes&year=2026&accommodationType=Camping

Optional query parameters:

Results exclude invalid date ranges and rows whose rate value is NO RATE FOUND.

POST /api/waitlist

Accepts waitlist submissions and validates a Cloudflare Turnstile token before storing the request.

Send form data with these fields:

POST /api/waitlist
Content-Type: application/x-www-form-urlencoded

fullName=Jane%20Doe&email=jane%40example.com&company=Park%20View&message=Interested%20in%20a%20demo&cf-turnstile-response=<token>

Successful responses return JSON {"success": true, "message": "Added to waitlist"}.

This endpoint is intended for human-assisted input. Unattended agents should not attempt direct submission without a valid human-solved Turnstile token.

Status and availability

The marketing site's status page reads from the external Uptime Kuma JSON APIs below:

Use the summary endpoint for incident and monitor group data, and the heartbeat endpoint for recent uptime values.

Read-only MCP endpoint

POST /mcp exposes a small read-only MCP tool surface for site discovery. It supports initialize, ping, tools/list, and tools/call.

Available tools:

OAuth, OIDC, and protected resource metadata

No OAuth/OIDC discovery document is published from this repository. The codebase shows a separate external product API at booking.odeva.app, but it does not expose issuer, authorization endpoint, token endpoint, JWKS URI, or protected resource metadata here. Because of that, the corresponding /.well-known/openid-configuration, /.well-known/oauth-authorization-server, and /.well-known/oauth-protected-resource files are intentionally omitted from this static implementation.