Show and Update Business Info

Download skillThe skill is a reference md and part of wix-manage skill. You can use the following command to add the full wix-manage skill to your project:
Copy

The business info of a site is a set of Site Properties: the business profile (name, description, company ID), the public contact details (email, phone, fax, address) and the business hours. These are the details the site and its apps show as the business's public info, and the ones the dashboard settings show as business info.

The user wants to...Call
See the current detailsGet Site Properties
Change the email, phone, fax or address, or remove oneUpdate Business Contact
Change the business name, description or company IDUpdate Business Profile
Add, change or remove opening hours or a holiday closureUpdate Business Schedule

A request like "set the name, phone and email" needs two calls: the name goes through Update Business Profile, the phone and email through Update Business Contact. Each update method rejects the other method's fields with 400.

Not covered here:

  • Bookings availability (when clients can book) is not the business schedule. Use Configure Default Business Hours.
  • Currency, time zone, language and region: use Change a Site's Regional Properties.
  • There is no tagline field. When the user asks for a tagline, ask whether they mean the business description (description) or a text on a site page, which is edited in the site editor.

Rules for every update

  • Send a field mask. Each update takes fields.paths, the top-level field names you change. A request without it fails with 400 "Illegal request - No updates on request body".
  • A path in the mask with no value in the body clears that field. Build the mask from the fields you send. Do not add a path "to be safe": paths: ["phone", "email"] with only phone in the body deletes the email.
  • address is one value. The mask takes address, never address.city (400 "Fields Vector(address.city) are not allowed"). The address you send replaces the stored one: an address with only city clears the street, zip, state and country. To change part of the address, read it, change the parts, and send the whole object, isPhysical and googleFormattedAddress included (see Change the address).
  • The business schedule is one value too. Update Business Schedule replaces both periods and specialHourPeriod with what you send, and it ignores a field mask. To add or change one day, read the schedule, change it, and send all of it back.
  • A 2xx with an empty body {} means the update is saved. Every update method returns {}. Do not make an extra call only to check a 2xx update. When you show the user the stored values, a GET right after the update already returns them.
  • The values are not validated. An email without @, a time like 9am, or a close time before the open time is stored as sent with 2xx. Check the values before you send them: email name@domain, times HH:MM from 00:00 to 24:00, a country as a 2-letter ISO 3166-1 code. A 3-letter country code such as USA fails with 500.
  • Confirmation. When the user gave the new value ("replace our email with ...", "set the name to ..."), the request is the confirmation: make the change. Ask first when you would change something the user did not name: removing the address or all hours because of an unclear request, or replacing a detail the user only described.

Read the current details

Copy

To read only some fields, repeat the fields query parameter: GET https://www.wixapis.com/site-properties/v4/properties?fields=email&fields=phone&fields=address.

The business info is at the top level of properties:

Copy

A field that was never set is missing from the response. A removed address is missing too. siteDisplayName is the site's name in My Sites and the dashboard, not the business name. Renaming the site is a separate task that this recipe does not cover. The response also holds the regional fields (paymentCurrency, timeZone, language, locale) and others that this recipe does not change.

Change or remove a contact detail

Update Business Contact: POST https://www.wixapis.com/site-properties/v4/properties/business-contact. Mask paths: email, phone, fax, address.

Change the email and phone:

Copy

phone is one free-text string. To change only the country prefix (for example to +34), read the current phone, replace its prefix, and send the whole new number.

Change the address: send all parts of the address. For a change to one part ("only the street changed"), read properties.address first, copy the whole object, change that part, and send it back. Two fields are easy to lose:

  • isPhysical: copy it from the read. Left out, it becomes false.
  • googleFormattedAddress: the address as one line. When the read has one, write the new address in it. Copied unchanged, it keeps the old address. Left out, it becomes empty.
Copy

Put the house number in streetNumber and the street name in street. country is a 2-letter code (US, GB, FR).

Remove a detail: name it in the mask and leave it out of the body. This removes the address and keeps the email and phone:

Copy

Change the business name or description

Update Business Profile: POST https://www.wixapis.com/site-properties/v4/properties/business-profile. Mask paths: businessName, description, companyId (the company number from the local authorities, shown on invoices and price quotes), and logo and siteDisplayName, which this recipe does not change. logo takes the path of an image that is already in the site's Wix Media, without the media base URL; this recipe does not cover uploading one.

Copy

This method rejects contact fields (email, phone, address) and fields it does not have (tagline, categories) with 400 "Illegal request - Fields Vector(<field>) are not allowed for updateBusinessProfile".

Change the business hours

Update Business Schedule: POST https://www.wixapis.com/site-properties/v4/properties/business-schedule. No field mask. The body is the whole schedule:

  • periods: the weekly hours, one entry per open period. Days are MONDAY to SUNDAY. Times are HH:MM, 24-hour, 00:00 to 24:00. A period that ends after midnight closes on the next day ("openDay": "FRIDAY", "openTime": "20:00", "closeDay": "SATURDAY", "closeTime": "02:00"). A day with two periods (a lunch break) has two entries. A closed day has no entry.
  • specialHourPeriod: holiday closures and other exceptions. Each entry is the time from startDate to endDate, as ISO 8601 date-times in UTC. isClosed: true means closed for that time, false means open. comment is optional text. To close for whole days, start at local midnight of the first day and end at local midnight after the last day, converted to UTC with the site's properties.timeZone. For a site in America/New_York (UTC-5 in winter), closed on December 25, 2026: "startDate": "2026-12-25T05:00:00Z", "endDate": "2026-12-26T05:00:00Z".

To add or change hours, run the GET first, change properties.businessSchedule, and send both arrays. This keeps Monday to Friday and the holiday closure, and adds Saturday:

Copy

A body with only periods deletes every holiday closure, and a body with only specialHourPeriod deletes the weekly hours.

To remove all hours from the site, send { "businessSchedule": { "periods": [], "specialHourPeriod": [] } }. A later GET returns the two arrays empty.

Last updated: 3 November 2026

Did this help?