Skip to main content
ODAI exposes a set of HTTP endpoints alongside the WebSocket API. These handle health monitoring, email collection, Google OAuth flows, and integration reloading.

GET /

Returns a static index.html file in development. In production, redirects the client to https://odai.com. Authentication: None
curl http://localhost:8080/

GET /test

Health check endpoint. Returns the service status, environment name, and the current number of active WebSocket connections. Authentication: None
status
string
required
Always "success" when the service is healthy.
service
string
required
Service identifier. Always "ODAI API".
environment
string
required
Current runtime environment. Either "production" or "development".
connections
number
required
Number of currently active WebSocket connections.
curl https://api.odai.com/test
200
{
  "status": "success",
  "service": "ODAI API",
  "environment": "production",
  "connections": 4
}

POST /waitlist

Adds an email address to the ODAI waitlist. Authentication: None
Content-Type: application/x-www-form-urlencoded

Request parameters

email
string
required
Email address to add to the waitlist.

Response

status
string
required
"success" on successful insertion, "error" if the operation fails.
message
string
Present only on error. Human-readable error description.
curl -X POST https://api.odai.com/waitlist \
  -d "email=user@example.com"
200
{
  "status": "success"
}

POST /email

Alias for POST /waitlist. Accepts the same parameters and returns the same response schema. Authentication: None
Content-Type: application/x-www-form-urlencoded

Request parameters

email
string
required
Email address to add to the waitlist.
curl -X POST https://api.odai.com/email \
  -d "email=user@example.com"
200
{
  "status": "success"
}

POST /google_access_request

Initiates a Google OAuth access flow for a user. The server validates the Firebase ID token from the Authorization header, then uses the provided email to begin the access request process. Authentication: Required (Firebase ID token in Authorization header)
Content-Type: application/x-www-form-urlencoded

Request parameters

authorization
string
required
Firebase ID token for the authenticated user. Passed as a plain header value (not a Bearer prefix).
email
string
required
The Google account email address for which access is being requested.
curl -X POST https://api.odai.com/google_access_request \
  -H "authorization: YOUR_FIREBASE_ID_TOKEN" \
  -d "email=user@gmail.com"

GET /update_integrations

Triggers a reload of all agent integration configurations from integrations.yaml. Call this endpoint after modifying integration definitions to apply changes without restarting the server. Authentication: None
status
string
required
"success" when integrations have been reloaded.
curl https://api.odai.com/update_integrations
200
{
  "status": "success"
}
This endpoint has no authentication guard. Restrict access to it in production via your network layer or reverse proxy if you want to prevent unauthorized integration reloads.

Build docs developers (and LLMs) love