Skip to main content

MiseOS API Documentation

The MiseOS API provides programmatic access to the MiseOS kitchen management platform.

It allows applications to manage users, kitchen stations, menus, ingredients, and internal kitchen workflows used in professional kitchens.

Most endpoints follow REST principles and return JSON responses.
Real-time features are delivered through WebSocket and Server-Sent Events (SSE).

Base URL
#

Current version of the API is available at:

https://miseos.corral.dk/api/v1

All endpoints listed in this documentation are relative to this base URL.


Versioning
#

The MiseOS API uses URL versioning.

Current version:

https://miseos.corral.dk/api/v1

Future breaking changes will be released under /api/v2.


Resources
#

The following sections describe the available API resources and their endpoints.


Authentication
#

Most endpoints require authentication via a JWT token in the Authorization header. Tokens are obtained through the login endpoint.

Examples of public endpoints include:

  • POST /auth/register
  • POST /auth/login
  • GET /weekly-menus/current
  • GET /weekly-menus/by-week
Authorization: Bearer <token>

JWT tokens expire after 30 minutes.

You can obtain a token by calling the login endpoint.


Quick Start
#

  1. Register a user

POST /auth/register

  1. Login

POST /auth/login

  1. Use the returned token

Authorization: Bearer

Example request to get user profile:

curl -H "Authorization: Bearer <token>" \
https://miseos.corral.dk/api/v1/users/me

Roles
#

RoleDescription
HEAD_CHEFFull access — management, approvals, publishing
SOUS_CHEFManagement access — most operations except role changes
LINE_COOKOwn resources — requests, suggestions, read access
KITCHEN_STAFFAny kitchen role (HEAD_CHEF, SOUS_CHEF, LINE_COOK)
ANYONENo authentication required

Error Format
#

All errors follow this format:

{
  "statusCode": 404,
  "message": "User with ID 99 was not found.",
  "timestamp": "2026-03-27 12:00",
  "path": "/api/v1/users/99",
  "referenceId": "abc123xyz"
}

Error Fields
#

FieldDescription
statusCodeHTTP status code of the error
messageHuman-readable error message
timestampTime the error occurred (server time)
pathAPI endpoint that was called
referenceIdUnique ID for this error instance (use when contacting support)

Common Error Status Codes
#

StatusMeaning
400Invalid input or validation failure
401Missing or invalid token
403Authenticated but insufficient role or ownership
404Resource not found
409Conflict — resource already exists or wrong state
500Internal server error
502External service unavailable