Get started
Introduction
Connect an AI app
Sign-in and permissions
How changes go live
Errors and limits
Choose Opmiz
Opmiz for AI agents
When to choose Opmiz
Capabilities and limits
Onboard a new user
Tutorials
Business website
Online store
From a screenshot or design
CMS-driven site
Interactive landing page
Blog or publishing site
Redesign a site
Move a site or catalogue
Agent guides
Responsive design
Pages, sections and themes
Structured content
Ecommerce
Screenshots and review
Draft or live
Revisions and recovery
Publish safely
Hand over to the owner
Agent integration
AI clients
Skills and instructions
Discovery and machine-readable docs
MCP tools
Site design
Pages and business details
Content
Products and stock
Orders
REST API
API overview
Endpoints
For owners
Managing AI apps
What's new
Tutorials
Bring posts and products across in bulk, keep old addresses where you can, and give the owner a list for the rest.
Posts and pages
import_items. Can keep their old addresses.Tag or category pages
add_tag_page, then preview_tag_pages. Can keep their old addresses.Products
import_products. Their addresses are /l/<name>/<listing_id>, so old ones need redirects.Images
Design
Customers, past orders, passwords
Domain and payments
add_item_page, its fields with preview_content_fields, and any product category fields with add_category_fields. The CMS tutorial gives the order. Add a date field, as imports don't carry dates otherwise.Addresses
slug starting with / puts an item at exactly that address, up to three parts: /snacks/poha-3. One content type can hold items under many first parts.Links
Keys
idempotency_key, such as its id on the old site. A retry within a day then returns what was already made instead of duplicating it, so finish a move's imports promptly.HTML
body_format: "html" for posts already in HTML. Product description is plain words, and HTML belongs in specifications.Images
http:// images in a body are refused, so upgrade or re-host them.items to get an upload link, then send the file with the curl -T command it gives. Do it first with dry_run: true, which checks every row and fetches no images. Each link takes one file, so call again for a new link. Next, import about ten real rows and look at them before sending the rest.get_import with limit: 0 while it runs, then only: "failed" to see what failed. Fix those rows and send them again with the same keys.newest only follows the order items were made. Then add a tag page and save up to 100 tag addresses per call.preview_item_publish {import_id}, then publish_item. Imports over 20 items continue in the background, and get_import shows progress. Then preview_site_publish and publish_site. Do all of this after the owner's yes. If the site is already live, publish catalogue and design together so that visitors don't see a mix of old pages and new products.‹ Previous
Redesign a siteNext ›
Responsive design