Enquiries straight to Guest Grow

Once you're a Guest Grow client, the enquiry form on your website can send every enquiry directly to us. Our team takes it from there, from the first reply to a tailored proposal.

For Guest Grow clientsHandled by our team
  1. A guest enquires

    They fill in the enquiry form on your website, in your brand, just as they do today.

  2. It comes straight to us

    The enquiry reaches Guest Grow the moment it's sent, with no inbox to forward it from.

  3. We take it from there

    Our team replies, plans the stay and sends a proposal the guest can view online.

How it connects

Connect your enquiry form

Once you're a client we issue a client ID and secret for your website. Your website sends them with every request, and each enquiry from its form comes straight to us. It can list your properties and send enquiries, nothing else.

Authentication

Send your client ID and secret

Every request carries your client ID and secret as HTTP Basic auth. There is no token to fetch or refresh.

AuthBasic client ID and secret
  • Call the API from your server, never from browser code
  • 20 failed sign-ins per 15 minutes from one address
  • Ask us for a new secret if it ever leaks
Headers
  • AuthorizationBasic base64(clientId:secret)Required

    Most HTTP clients build this from a username and password. Use your client ID and secret.

Example request
curl https://api.guestgrow.co.za/api/client-portal/properties \
  -u "YOUR_CLIENT_ID:YOUR_SECRET"
Response 401
{
  "message": "Access denied. The provided secret is not associated with the client ID."
}
Properties

List properties

Returns your properties a page at a time, so your enquiry form can offer them and your site can show them.

AuthBasic client ID and secret
  • 10 per page by default, up to 100
  • Use the images only to promote these properties
Query
  • pagenumber, default 1
  • limitnumber, default 10, up to 100
  • searchstring

    Matches the name, street, city or postal code.

Each property
  • id, namestring
  • descriptionstring
  • street, city, postalCodestring

    Street and postal code can be empty.

  • imagesstring[]

    Image addresses.

  • inclusions, exclusionsstring[]
  • websitestring or null
Example request
curl "https://api.guestgrow.co.za/api/client-portal/properties?page=1&limit=10" \
  -u "YOUR_CLIENT_ID:YOUR_SECRET"
Response 200
{
  "data": [
    {
      "id": "3b1e0c9a-0000-0000-0000-000000000000",
      "name": "Example River Lodge",
      "description": "Eight suites on the river...",
      "street": "1 River Road",
      "city": "Hoedspruit",
      "postalCode": "1380",
      "images": ["https://.../lodge-1.jpg"],
      "inclusions": ["Two game drives daily"],
      "exclusions": ["Conservation levy"],
      "website": "https://example.com"
    }
  ],
  "total": 12,
  "message": "Successfully returned properties."
}
Enquiries

Create enquiry

Sends a guest's enquiry to the Guest Grow team, who take it from there.

AuthBasic client ID and secret
  • Fields not listed here are rejected
  • Every property must be one of yours
  • An identical enquiry is turned away
Body
  • firstName, lastName, emailstringRequired
  • mobileNumber, country, commentstringRequired
  • propertiesstring[]Required

    Property IDs from List properties. Send an empty list if the guest has not picked one.

  • travelTypeenumRequired
    SOLOCOUPLEFAMILYGROUPSPECIAL_OCCASIONSHONEYMOON
  • sourceenumRequired
    WEBSITE_ENQUIRYONLINE_BOOKINGRESERVATIONSREFERRALSOCIAL_MEDIAREPEATPRIVATE_TRAVEL
  • startDate, endDateISO 8601 dateRequired
  • adults, childrennumberRequired
  • childrenAgesnumber[]Required

    One age per child.

Example request
curl -X POST https://api.guestgrow.co.za/api/client-portal/enquiries \
  -u "YOUR_CLIENT_ID:YOUR_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "Jane",
    "lastName": "Smith",
    "email": "jane@example.com",
    "mobileNumber": "+27 82 000 0000",
    "country": "South Africa",
    "properties": ["3b1e0c9a-0000-0000-0000-000000000000"],
    "travelType": "FAMILY",
    "adults": 2,
    "children": 1,
    "childrenAges": [8],
    "startDate": "2027-06-15",
    "endDate": "2027-06-20",
    "source": "WEBSITE_ENQUIRY",
    "comment": "Celebrating a birthday."
  }'
Response 200
{ "message": "Enquiry created successfully." }
Reference

Errors and limits

Every error comes back with a status code and a message written for the person reading it.

  • 400 Bad requestA field is missing, unexpected or the wrong type. The message says which.
  • 401 UnauthorisedThe client ID or secret is missing or wrong.
  • 404 Not foundA property in the enquiry isn't one of yours. The response's details name which.
  • 409 ConflictAn identical enquiry already exists for this guest and dates.
  • 429 Too many requestsWait a few minutes before trying again.
  • 500 Server errorSomething went wrong on our side. Please try again.
Ready to connect?

Already a client? Let's connect your website

We'll issue your client ID and secret and help you connect your website. Not a client yet? Talk to us about a partnership.