Quickstart Guide
Get up and running with the Olympus Cloud REST API in under 10 minutes.
Overview
| Step | Action | Time |
|---|---|---|
| 1 | Register or log in | 2 min |
| 2 | Browse a restaurant's menu | 1 min |
| 3 | Create your first order | 2 min |
| 4 | Check order status | 1 min |
Prerequisites
- A terminal with
curlandjqinstalled - Access to the dev environment (
dev.api.olympuscloud.ai)
API Base URLs
| Environment | URL |
|---|---|
| Development | https://dev.api.olympuscloud.ai/v1 |
| Staging | https://staging.api.olympuscloud.ai/v1 |
| Production | https://api.olympuscloud.ai/v1 |
All examples below use the dev environment.
Step 1: Authenticate
Olympus Cloud uses JWT authentication. Log in with email/password to get an access token.
Option A: Register a New Account
curl -s -X POST https://dev.api.olympuscloud.ai/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"tenant_slug": "demo-restaurant",
"email": "newuser@example.com",
"password": "SecurePassword123!",
"first_name": "Jane",
"last_name": "Smith"
}' | jq .
Response:
{
"user_id": "550e8400-e29b-41d4-a716-...",
"tenant_id": "550e8400-e29b-41d4-a716-446655449100",
"email": "newuser@example.com",
"email_verification_required": true
}
Option B: Log In with Demo Credentials
Use the pre-seeded demo manager account:
TOKEN=$(curl -s -X POST https://dev.api.olympuscloud.ai/v1/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "manager@demo-restaurant.com",
"password": "DevPassword123!"
}' | jq -r '.status.access_token')
echo "Token: ${TOKEN:0:20}..."
The login response includes a tagged union. On success, the status.type is "success" and includes:
access_token— JWT for API requests (1-hour lifetime)refresh_token— For extending your sessionuser— Your user profile withid,tenant_id,email, androles
Option C: Staff PIN Login (POS Terminals)
For restaurant POS devices, use PIN-based quick login:
TOKEN=$(curl -s -X POST https://dev.api.olympuscloud.ai/v1/auth/login/pin \
-H "Content-Type: application/json" \
-d '{
"identifier": "mgr01",
"pin": "123456",
"tenant_slug": "demo-restaurant"
}' | jq -r '.status.access_token')
Step 2: Browse the Menu
Restaurant menus are publicly accessible — no authentication required:
# Get the full menu for the Demo Restaurant Tampa location
curl -s https://dev.api.olympuscloud.ai/v1/restaurants/550e8400-e29b-41d4-a716-446655449110/menu | jq .
You can also browse specific parts:
# Menu categories
curl -s https://dev.api.olympuscloud.ai/v1/restaurants/550e8400-e29b-41d4-a716-446655449110/menu/categories | jq .
# All menu items
curl -s https://dev.api.olympuscloud.ai/v1/restaurants/550e8400-e29b-41d4-a716-446655449110/menu/items | jq .
Step 3: Create an Order
Orders require authentication. Use the $TOKEN from Step 1:
curl -s -X POST https://dev.api.olympuscloud.ai/v1/commerce/orders \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"location_id": "550e8400-e29b-41d4-a716-446655449110",
"source": "pos",
"currency": "USD",
"items": [
{
"menu_item_id": "ITEM_UUID_FROM_MENU",
"name": "Margherita Pizza",
"quantity": 2,
"unit_price": 14.99,
"notes": "No onions"
}
]
}' | jq .
Replace ITEM_UUID_FROM_MENU with a real menu item ID from Step 2. The name and unit_price fields are required for each item.
Step 4: Check Order Status
curl -s https://dev.api.olympuscloud.ai/v1/commerce/orders/ORDER_UUID \
-H "Authorization: Bearer $TOKEN" | jq .
Demo Accounts
These accounts are pre-seeded in the dev environment:
| Role | Password | PIN | |
|---|---|---|---|
| Manager | manager@demo-restaurant.com | DevPassword123! | 123456 |
| Chef | chef@demo-restaurant.com | DevPassword123! | 234567 |
| Server | staff@demo-restaurant.com | DevPassword123! | 345678 |
| Bartender | bartender@demo-restaurant.com | DevPassword123! | 456789 |
| Host | host@demo-restaurant.com | DevPassword123! | 567890 |
| Cashier | cashier@demo-restaurant.com | DevPassword123! | 678901 |
What's Next?
| Guide | Description |
|---|---|
| Authentication | JWT auth flow, refresh tokens, SSO |
| First Request | Request/response format, pagination, errors |
| REST API Examples | Full examples in curl, Python, JS, and Go |
| API Reference | Complete endpoint documentation |
Related Documentation
- Authentication — Full authentication guide
- First Request — Making API requests
- REST API Examples — Language-specific examples