All skills
wix avatar

/wix-manage

@4895cc9 official
by Wix.comwix/skills33 stars
33

REST recipes to configure and manage a Wix site's business solutions — stores, bookings, payments, CMS, and more. Open the matching recipe for the exact endpoint, method, and payload before calling — never guess a Wix API, never write Wix dashboard URL from memory. Routes to: stores, bookings, get-paid, CMS, contacts, forms, media, app-installation, pricing-plans, restaurants, ricos rich-content, sites, blog, calendar, domains, events, site-properties, ecommerce, marketing, google-ads, google-business-profile, analytics, accessibility, seo, dashboard-navigation.

Use this Skill: https://skilld.dev/gh/wix/skills/wix-manage

This session only. Nothing lands on disk.

referencesmediaupload-media-to-wix.md

≈1.6k tokens on demand. Your agent reads this file only when SKILL.md points to it.

RECIPE: Upload Media to Wix Media Manager

Learn how to upload images and files to a Wix site's Media Manager using the REST API.


Overview

The Wix Media Manager stores all media files for a site. When you need to use images or files in other Wix APIs, you should first upload them to the Media Manager to get a reliable wixstatic.com URL.

Key Points:

  • Uploaded files are permanently stored on Wix servers
  • You get back a url (wixstatic.com) that works reliably in other APIs
  • External URLs can fail if the source server blocks requests - Media Manager URLs never fail

Method: Import File from External URL

The simplest way to add media is to import it from an external URL. Wix will download and store the file.

API Endpoint

POST https://www.wixapis.com/site-media/v1/files/import

Request Example

curl -X POST 'https://www.wixapis.com/site-media/v1/files/import' \
-H 'Content-Type: application/json' \
-H 'Authorization: <AUTH>' \
-d '{
    "url": "https://images.unsplash.com/photo-1563729784474-d77dbb933a9e?w=400",
    "mimeType": "image/jpeg",
    "displayName": "My Image"
}'

Request Parameters

Parameter Required Description
url Yes The external URL of the file to import
mimeType Recommended MIME type (e.g., image/jpeg, image/png). If omitted, Wix tries to detect it
displayName No Display name in Media Manager. Include extension (e.g., My Image.jpg)
parentFolderId No Folder ID to store the file. Defaults to media-root

Response Example

{
    "file": {
        "id": "e6a89e_19dae9fef9bb48a6b5e392d0d2e5b95d~mv2.jpg",
        "displayName": "My Image.jpg",
        "url": "https://static.wixstatic.com/media/e6a89e_19dae9fef9bb48a6b5e392d0d2e5b95d~mv2.jpg",
        "parentFolderId": "media-root",
        "mediaType": "IMAGE",
        "operationStatus": "PENDING",
        "sizeInBytes": "31911"
    }
}

Key Response Fields

Field Description
id Media ID
url The wixstatic.com URL - use this in other APIs
operationStatus PENDING → READY when processed, or FAILED if import failed

Can I Use the URL Immediately?

In most cases, yes. The returned wixstatic.com URL typically works immediately for basic use cases like adding to products or blog posts.

Wait for READY when:

  • You need image dimensions or metadata
  • You're using image transformations (resize, crop)
  • You want guaranteed consistency for critical operations

Practical approach: Try using the URL immediately. If it fails, poll until operationStatus: "READY".


Checking File Status

After importing, the file goes through async processing. For guaranteed consistency, verify operationStatus: "READY" before using the file.

Get File by ID (Recommended)

Use this endpoint to check the status of a specific file:

curl -X GET 'https://www.wixapis.com/site-media/v1/files/get-file-by-id?fileId={fileId}' \
-H 'Authorization: <AUTH>'

Example:

curl -X GET 'https://www.wixapis.com/site-media/v1/files/get-file-by-id?fileId=e6a89e_9d32c0dbae954582bce7b2bf35981ca6~mv2.jpg' \
-H 'Authorization: <AUTH>'

List Recent Files (Alternative)

If you need to find files without knowing the ID:

curl -X GET 'https://www.wixapis.com/site-media/v1/files?parentFolderId=media-root&mediaTypes=IMAGE&sort.fieldName=updatedDate&sort.order=DESC&paging.limit=5' \
-H 'Authorization: <AUTH>'

Status Values

Status Meaning
PENDING Still processing - wait before using
READY File is ready to use
FAILED Import failed

Response When Ready

{
    "files": [{
        "id": "e6a89e_19dae9fef9bb48a6b5e392d0d2e5b95d~mv2.jpg",
        "url": "https://static.wixstatic.com/media/e6a89e_19dae9fef9bb48a6b5e392d0d2e5b95d~mv2.jpg",
        "operationStatus": "READY",
        "media": {
            "image": {
                "image": {
                    "height": 600,
                    "width": 400
                }
            }
        },
        "labels": ["cupcakes", "pastry", "dessert"]
    }]
}

Note: Wix automatically generates labels (tags) for images using AI.


Alternative: Upload from Local Device

If you need to upload files from a local device (not from a URL), use the two-step upload process:

Step 1: Generate Upload URL

curl -X POST 'https://www.wixapis.com/site-media/v1/files/generate-upload-url' \
-H 'Content-Type: application/json' \
-H 'Authorization: <AUTH>' \
-d '{
    "mimeType": "image/jpeg",
    "fileName": "my-photo.jpg"
}'

Step 2: Upload to the Generated URL

curl -X PUT '<UPLOAD_URL_FROM_RESPONSE>' \
-H 'Content-Type: image/jpeg' \
--data-binary @my-photo.jpg

Note: For files larger than 10MB, use the Resumable Upload URL API instead.


Common Issues

Issue 1: Import Fails (operationStatus: FAILED)

Problem: The file shows operationStatus: "FAILED" after import.

Causes:

  • Source server blocks external requests (e.g., Wikipedia, some CDNs)
  • Source server requires authentication
  • Invalid URL or file not found
  • File type not supported

Solution: Use image sources that allow hotlinking:

  • Unsplash (images.unsplash.com)
  • Pexels (images.pexels.com)
  • Your own hosted images
  • Public cloud storage (S3, GCS with public access)

Issue 2: File Stuck in PENDING

Problem: File stays in PENDING status for a long time.

Solution:

  • Large files take longer to process
  • Check back after a few seconds
  • If still pending after 30+ seconds, the import may have silently failed

Summary

Step Action Result
1 Call Import File API with external URL Get file id and url with status PENDING
2 Poll List Files API Wait for operationStatus: "READY"
3 Use in other APIs Use the url field (wixstatic.com URL)

Source: SKILL.md on GitHub

1 warning1d4 checks · Risk SAFE
  • Gen Agent Trust Hub1d

    The wix-manage skill is an extensive collection of management recipes for Wix sites, covering business solutions such as eCommerce, Bookings, SEO, and site provisioning. It utilizes official Wix REST endpoints and incorporates robust safety patterns, including mandatory user confirmation for sensitive operations and careful validation of site data before mutation.

  • Socket1d

    No alerts

  • Snyk1d

    Risk: MEDIUM · 1 issue

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 4895cc9. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated yesterday
compatibility
Requires Wix REST API access (API key or OAuth).
  • wix
  • rest-api
  • ecommerce
  • bookings
  • cms
  • contacts
  • blog
  • domains
  • restaurants
  • site-configuration
  • api-integration

README badge

README badge for wix/skills/wix-manage

REST API operations for configuring Wix business solutions including stores, bookings, CMS, contacts, domains, and ecommerce. Routes to site setup, entity management (products, services, staff), bulk administrative operations, and server-to-server integrations across Wix's business app ecosystem.

Generated from the current SKILL.md.

Do I need API credentials to use these recipes?
Yes. The skill requires Wix REST API access via either an API key or OAuth token to execute any management operations.
Can I use these recipes to display data on my site frontend?
No. These recipes are for backend REST API operations only — site configuration, entity management, and administrative tasks. They do not cover frontend development or displaying data to users.
What business domains do these recipes cover?
The skill covers stores, bookings, payments, CMS, contacts, forms, media, apps, pricing plans, restaurants, rich content, sites, blogs, calendars, domains, and site properties.
Do these recipes handle OAuth authentication with external services like Google Calendar?
Yes. The external calendar integration recipe covers OAuth-based setup with Google Calendar, Microsoft Outlook, and Apple Calendar for bidirectional event sync.

Generated from the current SKILL.md. These answers refresh after source changes.