Skip to main content

Wix

Work a Wix site: draft and publish blog posts, read and write CRM contacts and CMS collection rows, and read the store's orders.

Connect a Wix site with an account API key to work it end to end: query published posts, draft new ones and publish them, manage the site's CRM contacts, read and write rows in Wix Data collections, and read eCommerce orders with their line items and totals. Blog bodies are Wix's Ricos rich content - plain text is converted to paragraphs for you, and formatted content can be passed as a Ricos document.

Connect

Credential fieldRequiredWhere it comes from
API key (API_KEY)YesFrom the Wix account's Settings → API Keys. Its permission set and the sites it was granted are both ceilings, fixed when the key is created.
SettingRequiredWhat it is
Site ID (SITE_ID)YesThe Wix site every call acts on - the id in the dashboard URL (wix.com/dashboard/<SITE_ID>/…). The API key must have been granted this site.

Tools

ToolAccessWhat it does
Get site properties (yekar.wix.get-site-properties)ReadThe connected site's own settings: display name, business name and description, contact email and phone, timezone, locale, and the languages a multilingual site serves. Run it first to confirm which Wix site the connection's Site ID actually points at.
Query blog posts (yekar.wix.query-blog-posts)ReadPUBLISHED blog posts on the site, filtered and sorted with Wix's own query syntax. Drafts and scheduled posts are NOT here - they live in Query draft posts. Bodies are omitted unless includeContent is set, and are flattened to plain text when they are.
Get blog post (yekar.wix.get-blog-post)ReadOne published blog post with its body. The body is Wix's Ricos rich content flattened to plain text - links, images and formatting are dropped, so this is a reading aid, not the post's source. Use Update draft post to change it.
List blog categories (yekar.wix.list-blog-categories)ReadThe blog's categories with their ids and Wix's own per-category post counts. The ids are what Create draft post and Update draft post take in categoryIds - a category NAME is not accepted there.
Query draft posts (yekar.wix.query-draft-posts)ReadThe blog's draft posts - unpublished, scheduled, and the draft rows behind published posts. Every row carries the revision that Update draft post requires, so read from here before editing.
Create draft post (yekar.wix.create-draft-post)WriteCreate a blog post as a DRAFT - it is not visible on the site until Publish draft post is called. The body is Wix Ricos: pass plain text and it is converted to paragraphs, or pass a Ricos document directly. Sending markdown or HTML as bodyText stores the raw characters; it does not render.
Update draft post (yekar.wix.update-draft-post)WriteEdit a draft post. Only the fields you send change - but a body you send REPLACES the old one entirely. Editing the draft behind an already-published post does NOT change the live post until Publish draft post is called again. Requires the draft's current revision.
Publish draft post (yekar.wix.publish-draft-post)WritePublish a draft post to the live blog. This is the step that makes it public - and republishing an already-published post is how an edit reaches the live site. The published post gets its own id, returned here.
Query contacts (yekar.wix.query-contacts)ReadThe site's CRM contacts, filtered and sorted with Wix's own query syntax. Every row carries the revision Update contact requires. These are real people's contact details - read them for the task at hand, do not copy them anywhere they were not already going.
Get contact (yekar.wix.get-contact)ReadOne CRM contact: names, every email and phone on the record, company, labels and activity dates - plus the revision Update contact requires. Read this immediately before an update; a revision fetched long ago will be rejected.
Create contact (yekar.wix.create-contact)WriteAdd a contact to the site's CRM. By default Wix REFUSES to create one whose email or phone already exists - that rejection is a feature, and allowDuplicates true is how you override it deliberately. Supply at least a name, an email or a phone.
Update contact (yekar.wix.update-contact)WriteUpdate a CRM contact. Requires the contact's current revision - Wix rejects a stale one rather than overwriting whatever changed in between, so read the contact first. Email and phone REPLACE the record's lists rather than appending to them.
List data collections (yekar.wix.list-data-collections)ReadThe site's CMS (Wix Data) collections and their field keys and types. Read this before touching items: a data item's keys are the collection's FIELD KEYS, which are not the display names shown in the Wix editor.
Query data items (yekar.wix.query-data-items)ReadRows from a Wix Data collection, filtered and sorted with Wix's own query syntax. Field keys come from List data collections. Long text values are capped for the prompt and the fields that were cut are named.
Insert data item (yekar.wix.insert-data-item)WriteAdd a row to a Wix Data collection. Whether the row is visible on the live site depends on the collection's own permissions and on whether the site is published - inserting is not publishing.
Update data item (yekar.wix.update-data-item)WriteReplace a row in a Wix Data collection. This is a REPLACE, not a merge: fields you leave out are cleared. Read the item with Query data items, change what you need, and send the whole thing back.
Remove data item (yekar.wix.remove-data-item)WritePermanently delete a row from a Wix Data collection. Wix Data has no trash for items - this cannot be undone, and anything on the site that referenced the row will stop finding it.
Search orders (yekar.wix.search-orders)ReadThe store's eCommerce orders with buyer, totals, payment and fulfilment status, and line items. Money keeps Wix's own decimal strings - they are not floats. Cursor-paged: Wix often declines to count large result sets, in which case total is null rather than a guess.
Get order (yekar.wix.get-order)ReadOne eCommerce order in full: buyer, line items with SKUs and quantities, the price breakdown, and its payment and fulfilment status. Money keeps Wix's own decimal strings.

Notes

  • In the Wix account dashboard open Settings → API Keys, create a key, give it the permissions the automations need (Blog, Contacts, Wix Data, Stores/eCommerce), and grant it access to the specific site.
  • Paste the key here and set the Site ID to the site it should act on - the id in the dashboard URL, wix.com/dashboard/<SITE_ID>/…. Wix picks the site from a request header, so every call uses this one value.
  • The key's PERMISSIONS and its SITE grant are separate ceilings. A 403 means one of the two, and Wix does not say which - check both in the API Keys screen.
  • An API key acts as the account, not as a person: blog posts still need a site member as their author (memberId), and every change is attributed to the key.
  • Contacts and draft posts use optimistic concurrency - read the record, take its revision, then write. A stale revision is refused rather than overwriting somebody else's edit.
  • Creating a draft post does not publish it, and editing the draft behind a published post does not change the live post until it is published again.