Launch27

Launch27 is a booking and scheduling platform for cleaning service businesses (maid services), offering online booking, customer/employee/team management, recurring scheduling, payments, and marketing tools. Launch27 was acquired by Fullsteam Operations in 2019 and continues to operate today as an actively sold, independently branded product; Vonigo (a broader field service management platform for home service businesses) is a sister brand under the same Fullsteam Operations portfolio, acquired separately in 2022 - Launch27 is not a Vonigo product line, though the two are frequently compared as Fullsteam-owned competitors in the same space. Launch27 publishes a real, actively used REST API (currently v2.1, with a deprecated v2.0) documented in a public Bitbucket wiki linked from the Launch27 marketing site footer, rather than in first-party developer docs at docs.launch27.com. The API is multi-tenant, meaning every client account gets its own subdomain (e.g. https://acme.launch27.com), and covers booking creation/management for non-logged-in and logged-in customers, booking-form helper data (services, spots, frequencies, custom fields, price estimation), booking policies, and account settings.

6 APIs 0 Features
Field Service ManagementHome ServicesCleaning ServicesBookingSchedulingFullsteamVonigo

APIs

Launch27 Authentication API

Authenticate a Launch27 customer or staff user and return a JWT (bearer token) used for subsequent authenticated requests. Legacy email:token header authentication was retired M...

Launch27 Account Settings API

Read a client account's configuration - branding, currency, country and states, enabled feature flags (multi-location, gift cards, tips, sales tax, SMS reminders, mobile app, et...

Launch27 Booking Helpers API

Supporting data needed to build and price a booking form - the booking form's field/heading/appearance setup, configured services/extras/ pricing parameters, available date/time...

Launch27 Booking Policies API

Read the account's new-booking lead-time policy, reschedule lead-time policy, late-cancellation fee/percentage and reason-required policy, and multi-location "prevent booking if...

Launch27 Guest Booking API

Create a new booking as a first-time, non-logged-in customer - submits customer details, address, service date/arrival window, selected services/extras/pricing parameters, disco...

Launch27 Customer Bookings API

Authenticated customer-portal operations on a logged-in customer's own bookings - list (with date range, free-text, completed/feedback filters, paging), count, get a single book...

Collections

Pricing Plans

Launch27 Plans Pricing

4 plans

PLANS

Rate Limits

Launch27 Rate Limits

3 limits

RATE LIMITS

FinOps

Event Specifications

Launch27 Account Notification Channel (WebSocket, minimally documented)

AsyncAPI 2.6 description of the one WebSocket surface Launch27 documents: an account-scoped notification channel reached via a `pubsub_url` returned by the authenticated `GET /s...

ASYNCAPI

Resources

🔗
VulnerabilityDisclosure
VulnerabilityDisclosure
🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
APIReference
APIReference
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Launch27 API
  version: '2.1'
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Authentication
    type: folder
  items:
  - info:
      name: Login.
      type: http
    http:
      method: POST
      url: https://{{tenant}}.launch27.com/v1/login
      body:
        type: json
        data: '{ "email": "user@email.com", "password": "trustno1" }'
    docs: Authenticate and return a JWT bearer token used for subsequent authenticated requests.
- info:
    name: Account
    type: folder
  items:
  - info:
      name: Get settings.
      type: http
    http:
      method: GET
      url: https://{{tenant}}.launch27.com/v1/settings
    docs: Returns account settings; response varies by authentication state, user type, and feature availability.
- info:
    name: Booking Helpers
    type: folder
  items:
  - info:
      name: Get booking form setup.
      type: http
    http:
      method: GET
      url: https://{{tenant}}.launch27.com/v1/booking/form
    docs: Returns booking form headings, system fields, paragraphs, and appearance settings.
  - info:
      name: Get services for booking.
      type: http
    http:
      method: GET
      url: https://{{tenant}}.launch27.com/v1/booking/services
      params:
      - name: booking_uuid
        value: ''
        type: query
        description: Booking digest; required (and requires auth) for an existing booking.
      - name: location_id
        value: ''
        type: query
        description: Unique ID of location; default location used if omitted.
    docs: Returns list of services, extras, and pricing parameters available for booking.
  - info:
      name: Get spots for booking.
      type: http
    http:
      method: POST
      url: https://{{tenant}}.launch27.com/v1/booking/spots
      body:
        type: json
        data: '{ "date": "2026-08-15", "days": 5, "mode": "new" }'
    docs: Returns spots available for booking on given date, mode (new or reschedule), and number of days.
  - info:
      name: Get location for booking address.
      type: http
    http:
      method: POST
      url: https://{{tenant}}.launch27.com/v1/booking/location
      body:
        type: json
        data: '{ "zip": "94105" }'
    docs: Returns location based on provided address details.
  - info:
      name: Get frequencies for booking.
      type: http
    http:
      method: GET
      url: https://{{tenant}}.launch27.com/v1/booking/frequencies
      params:
      - name: booking_uuid
        value: ''
        type: query
        description: Booking digest; required (and requires auth) for an existing booking.
      - name: location_id
        value: ''
        type: query
        description: Unique ID of location; default location used if omitted.
    docs: Returns list of configured booking frequencies for new or existing booking.
  - info:
      name: Get next booking date for frequency.
      type: http
    http:
      method: POST
      url: https://{{tenant}}.launch27.com/v1/booking/frequencies/:id/next
      params:
      - name: id
        value: ''
        type: path
        description: Frequency unique ID.
      body:
        type: json
        data: '{ "date": "2026-08-06T13:30:00" }'
    docs: Returns next booking date for a recurring frequency and given date.
  - info:
      name: Get custom fields for booking.
      type: http
    http:
      method: GET
      url: https://{{tenant}}.launch27.com/v1/booking/custom_fields
      params:
      - name: booking_uuid
        value: ''
        type: query
        description: Booking digest; required (and requires auth) for an existing booking.
    docs: Returns list of booking custom fields.
  - info:
      name: Estimate booking price.
      type: http
    http:
      method: POST
      url: https://{{tenant}}.launch27.com/v1/booking/estimate_price
      body:
        type: json
        data: '{ "service_date": "2026-08-15T10:00:00", "frequency_id": 1, "services": [{ "id": 1 }] }'
    docs: Estimates price for a booking and returns a detailed price/discount/tax breakdown.
- info:
    name: Policy
    type: folder
  items:
  - info:
      name: Get new booking policy.
      type: http
    http:
      method: GET
      url: https://{{tenant}}.launch27.com/v1/policy/booking
    docs: Returns the new-booking lead-time policy details.
  - info:
      name: Get reschedule policy.
      type: http
    http:
      method: GET
      url: https://{{tenant}}.launch27.com/v1/policy/reschedule
    docs: Returns the reschedule lead-time policy details.
  - info:
      name: Get cancellation policy.
      type: http
    http:
      method: GET
      url: https://{{tenant}}.launch27.com/v1/policy/cancellation
    docs: Returns the late-cancellation fee/percentage and reason-required policy.
  - info:
      name: Get location policy.
      type: http
    http:
      method: GET
      url: https://{{tenant}}.launch27.com/v1/policy/location
    docs: Returns the prevent-booking-if-location-not-found policy for multi-location accounts.
- info:
    name: Guest Booking
    type: folder
  items:
  - info:
      name: Create booking as non-logged-in.
      type: http
    http:
      method: POST
      url: https://{{tenant}}.launch27.com/v1/booking
      body:
        type: json
        data: '{ "user": { "email": "user@email.com", "first_name": "First", "last_name": "Last" }, "address": "595 Market
          St", "city": "San Francisco", "state": "CA", "zip": "94105", "phone": "462-485-0790", "frequency_id": 1, "service_date":
          "2026-08-15T09:30:00", "arrival_window": 0, "services": [{ "id": 1 }], "payment_method": "cash" }'
    docs: Creates a new booking as a first-time, non-logged-in customer.
- info:
    name: Customer Bookings
    type: folder
  items:
  - info:
      name: List bookings for customer.
      type: http
    http:
      method: GET
      url: https://{{tenant}}.launch27.com/v1/customer/bookings
      params:
      - name: from
        value: ''
        type: query
        description: Start of date range.
      - name: to
        value: ''
        type: query
        description: End of date range.
      - name: query
        value: ''
        type: query
        description: Free-text search across address, city, phone.
      - name: options
        value: ''
        type: query
        description: 'Comma-separated: completed, not_completed, with_feedback, without_feedback.'
      - name: limit
        value: ''
        type: query
        description: Page size.
      - name: offset
        value: ''
        type: query
        description: Page offset.
      - name: sort
        value: ''
        type: query
        description: asc or desc (default desc).
    docs: Returns active bookings for the logged-in customer.
  - info:
      name: Count bookings for customer.
      type: http
    http:
      method: GET
      url: https://{{tenant}}.launch27.com/v1/customer/bookings/count
    docs: Returns count of active bookings for the current customer user.
  - info:
      name: Create booking for customer.
      type: http
    http:
      method: POST
      url: https://{{tenant}}.launch27.com/v1/customer/bookings
      body:
        type: json
        data: '{ "address": "595 Market St", "city": "San Francisco", "state": "CA", "zip": "94105", "phone": "462-485-0790",
          "frequency_id": 2, "service_date": "2026-08-20T09:30:00", "arrival_window": 0, "services": [{ "id": 1 }], "payment_method":
          "cash" }'
    docs: Creates a new booking as the logged-in customer, including 'Book This Again' via original_booking_id.
  - info:
      name: Get booking for customer.
      type: http
    http:
      method: GET
      url: https://{{tenant}}.launch27.com/v1/customer/bookings/:id
      params:
      - name: id
        value: ''
        type: path
        description: Booking unique ID.
    docs: Returns a single booking's full detail.
  - info:
      name: Update booking for customer.
      type: http
    http:
      method: PUT
      url: https://{{tenant}}.launch27.com/v1/customer/bookings/:id
      params:
      - name: id
        value: ''
        type: path
        description: Booking unique ID.
      body:
        type: json
        data: '{}'
    docs: Updates or reschedules an existing booking.
  - info:
      name: Cancel booking for customer.
      type: http
    http:
      method: POST
      url: https://{{tenant}}.launch27.com/v1/customer/bookings/:id/cancel
      params:
      - name: id
        value: ''
        type: path
        description: Booking unique ID.
      body:
        type: json
        data: '{ "confirmed_late": false, "reason": "booked by mistake" }'
    docs: Cancels an existing booking and creates the next recurring booking if applicable.