Skip to Content
Developer APIGetting Started

Getting Started

Works the same for both products — Scheduler and Payments.

1. Create an API key

  1. In BayWise, open Settings → Developer.
  2. Click Create API key.
  3. 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).
  4. 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_xxxxxxxxxxxxxxxx

All 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_xxxxxxxxxxxxxxxx

A 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 typeCoverage
Location keyScoped to a single location. Simpler — the location is implied, so you don’t send locationId.
Organisation keyCovers 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-48213

Rate 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." }] }
StatusMeaning
401Missing, invalid, or revoked key
403Authenticated, but your key lacks permission for this action
404The resource doesn’t exist or isn’t visible to your key
409Conflict — e.g. you sent a stale updatedAt (someone changed it first)
422Validation failed — see the errors array
429Rate 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”)