Developer · REST API
SimpleDock API
Read availability and create or manage dock appointments from your own systems. A small, predictable REST API with a single Bearer key.
Open interactive referenceAuthentication
Every request authenticates with a secret API key passed as a Bearer token. Create and manage keys in Settings → API & developers. Keys are Pro-only — the full secret (sd_live_…) is shown once at creation, so store it somewhere safe.
Authorization: Bearer sd_live_your_key_hereBase URL & your first call
All endpoints live under /api/v1. List your locations to confirm your key works:
curl https://simpledock.ai/api/v1/locations \
-H "Authorization: Bearer sd_live_your_key_here"Successful responses wrap the payload in a data field. List endpoints that paginate also return a nextCursor.
Create an appointment
Look up open slots with GET /availability, then create the appointment. The API books as a trusted actor, so appointments are confirmed immediately.
curl -X POST https://simpledock.ai/api/v1/appointments \
-H "Authorization: Bearer sd_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"locationId": "loc_123",
"appointmentTypeId": "type_123",
"startTime": "2026-06-01T15:00:00Z",
"companyName": "Acme Logistics",
"contactEmail": "[email protected]"
}'Endpoints
The full surface, with schemas and a live console, is in the interactive reference. In short:
GET /locations,GET /locations/{id}GET /locations/{id}/appointment-types,/doors,/operating-windowsGET /availabilityGET /appointments,GET /appointments/{id}POST /appointments— createPATCH /appointments/{id}— reschedule and/or edit detailsPOST /appointments/{id}/approve,/reject,/check-in,/cancel,/statusGET /analytics— per-location summary
Errors
Errors use a stable envelope with a machine-readable code and an HTTP status:
{
"error": {
"code": "not_found",
"message": "Location not found"
}
}401 unauthorized— missing, invalid, revoked, or expired key402 payment_required— the org is not on an active Pro plan403 forbidden— the key lacks the required scope400 invalid_request— validation failed (seedetails)404 not_found— resource not in your organization409 conflict— no availability or an invalid state transition429 rate_limited— slow down (seeRetry-After)
Scopes & rate limits
Each key carries scopes (locations:read, appointments:read, appointments:write, analytics:read); a request missing the required scope returns 403. Requests are rate limited per key — back off when you receive a 429 and honor the Retry-After header.