Harbour
Harbour
Developer platform

Build on Harbour

HTTP API for the agency operating system — CRM, payments, sites, phone, and calendar connections. See the live OpenAPI document for the full route list.

REST API

JSON endpoints for CRM, bookings, payments, sites, phone, and calendar — the same surfaces the product uses.

Inbound webhooks

Stripe (`/api/stripe/webhook`), Twilio SMS/voice, and Nylas mail events are live. Outbound product webhooks are not shipped yet.

Connections

Agencies connect Stripe, domains, Twilio numbers, and Google/Outlook via Settings → Connections.

Auth

Production private routes require the harbour_session cookie from demo sign-in, or Authorization: Bearer $HARBOUR_API_KEY when that env var is set.

API reference

Routes on this instance. In production, private APIs require a signed-in session cookie or HARBOUR_API_KEY bearer token. Public: Stripe webhook, Twilio webhook, Nylas callback/webhook, calendar availability (GET + POST with bookingToken), Unsplash, OpenAPI.

  • GET/api/v1/overviewAgency health + snapshot
  • GET/api/v1/contactsList or filter contacts
  • POST/api/v1/contactsCreate a contact / lead
  • GET/api/v1/formsList form submissions
  • POST/api/v1/formsSubmit a form lead
  • GET/api/v1/bookingsList bookings
  • POST/api/v1/bookingsCreate a booking
  • GET/api/v1/clientsList client workspaces
  • GET/api/v1/reliabilityHealth metrics + issues
  • POST/api/auth/sessionSign in / out (sets session cookie + agencyId)
  • GET/api/connectionsAgency connection status cards
  • GET/api/stripe/connect/accountStripe Connect account for agency
  • POST/api/stripe/connect/accountStart / resume Connect onboarding
  • POST/api/stripe/checkoutCreate Checkout Session
  • GET/api/stripe/checkout/sessionConfirm Checkout after return
  • POST/api/sites/publishPublish site snapshot
  • POST/api/sites/domainsAttach custom domain
  • GET/api/twilio/numbersList / search phone numbers
  • POST/api/twilio/numbersProvision phone number
  • POST/api/inbox/messagesSend SMS
  • GET/api/nylas/authStart email/calendar OAuth
  • POST/api/nylas/sendSend email via Nylas
  • GET/api/calendar/availability?agencyId=Public booking availability (requires agencyId)
  • GET/openapi.jsonOpenAPI 3 document

Quickstart

Use the public OpenAPI document and curl examples below. The in-product developer console opens with Harbour's private preview — not yet available on the public site.

Open OpenAPI JSON
# Public
curl https://getharbour.io/api/v1/overview
curl https://getharbour.io/openapi.json

# Session (then reuse cookie)
curl -c cookies.txt -X POST https://getharbour.io/api/auth/session \
  -H "Content-Type: application/json" \
  -d '{"email":"you@agency.com","agencyName":"Northstar"}'

curl -b cookies.txt https://getharbour.io/api/connections

# Optional API key
curl https://getharbour.io/api/v1/contacts \
  -H "Authorization: Bearer $HARBOUR_API_KEY"