Getting Started
Works the same for both products — Scheduler and Payments.
1. Create an API key
- In BayWise, open Settings → Developer.
- Click Create API key.
- Give it a name (e.g. “DMS Integration”), optionally scope it to one location and set an expiry, and choose the permissions it should have (you can only grant what your own role allows).
- Copy the key — it is shown once and cannot be retrieved again.
Who can do this: Account Owners and Org Admins. Keep your key secret — never commit it to source control or expose it in client-side code.
2. Authenticate requests
Include your API key in the Authorization header as a bearer token:
Authorization: Bearer bw_live_xxxxxxxxxxxxxxxxAll requests must be made over HTTPS.
3. Base URL
https://api.baywise.ai/v1(The MCP server for AI assistants is separate, at https://mcp.baywise.ai.)
4. Make your first request
List the jobs visible to your key:
GET https://api.baywise.ai/v1/scheduler/jobs
Authorization: Bearer bw_live_xxxxxxxxxxxxxxxxA successful response is a paginated list:
{
"data": [
{
"id": "...",
"status": "in_progress",
"vehiclePlate": "ABC 123",
"vehicleMake": "Toyota",
"steps": []
}
],
"next_cursor": null
}To page through results, pass the next_cursor value back as ?cursor=….
For Payments, the first call is similar — e.g. GET /v1/payments/transactions.
Key types
| Key type | Coverage |
|---|---|
| Location key | Scoped to a single location. Simpler — the location is implied, so you don’t send locationId. |
| Organisation key | Covers all locations. Include locationId in create/write requests. |
Idempotency
When creating records, send an Idempotency-Key header (any unique string per logical create). If a request is retried with the same key, it won’t double-record — safe for flaky networks.
Idempotency-Key: dms-sync-job-48213Rate limits
The API enforces per-key rate limits. When you exceed one, the response is 429 Too Many Requests — wait for the Retry-After header value (in seconds) before retrying.
Error responses
Errors follow RFC 7807 (application/problem+json):
{
"type": "https://api.baywise.ai/errors/validation_error",
"title": "Unprocessable Entity",
"status": 422,
"detail": "One or more fields are invalid.",
"request_id": "5f3e...",
"errors": [{ "field": "direction", "message": "inflow | outflow." }]
}| Status | Meaning |
|---|---|
401 | Missing, invalid, or revoked key |
403 | Authenticated, but your key lacks permission for this action |
404 | The resource doesn’t exist or isn’t visible to your key |
409 | Conflict — e.g. you sent a stale updatedAt (someone changed it first) |
422 | Validation failed — see the errors array |
429 | Rate limited — wait for Retry-After |
Always keep the request_id — quote it to support.
Next steps
- Scheduler API / Payments API — concepts, when to use, and a typical flow
- Webhooks — real-time job, step, and payment events instead of polling
- Reference — the interactive endpoint reference (with “try it”)