# EcomEye API > The REST API and MCP server of EcomEye: create batches of AI product pages and images, review the angles of a batch, read and edit product pages, and export them to Shopify stores. It spends the same credits as the portal, with no extra fee. Base URL: https://api.ecom-eye.com/v1. Every operation below is also an MCP tool with the same name. ## Docs - [Connection guide](https://api.ecom-eye.com/docs/connect.md): API keys for backends, connecting Claude and ChatGPT, scopes and the credit rule - [OpenAPI document](https://api.ecom-eye.com/openapi.json): every operation as OpenAPI 3.1 - [API reference](https://api.ecom-eye.com/docs): the same document as a browsable page - [Everything in one file](https://api.ecom-eye.com/llms-full.txt): the guide and every operation's page - MCP server (streamable HTTP, OAuth or an API key as bearer token): https://api.ecom-eye.com/mcp ## Operations ### Account Who the API key or connection belongs to, and the team's credit balance. - [get_account](https://api.ecom-eye.com/docs/get_account.md): Get the API key or connection and team (`GET /v1/me`, scope `read`) - [get_credits](https://api.ecom-eye.com/docs/get_credits.md): Get the credit balance (`GET /v1/credits`, scope `read`) ### Batches A batch turns product links into product pages. Estimate its credits, create it, then follow its progress and its products. - [create_batch](https://api.ecom-eye.com/docs/create_batch.md): Create and start a batch (`POST /v1/batches`, scope `batches:write`) - [estimate_batch_credits](https://api.ecom-eye.com/docs/estimate_batch_credits.md): Estimate the credits of a batch (`POST /v1/batches/estimate-credits`, scope `read`) - [get_batch](https://api.ecom-eye.com/docs/get_batch.md): Get a batch (`GET /v1/batches/{batchId}`, scope `read`) - [list_batches](https://api.ecom-eye.com/docs/list_batches.md): List batches (`GET /v1/batches`, scope `read`) - [list_batch_products](https://api.ecom-eye.com/docs/list_batch_products.md): List the products of a batch (`GET /v1/batches/{batchId}/products`, scope `read`) #### Angles A scale winner batch first writes angles for each product. Review them, select or add angles, then confirm to generate the pages. - [list_batch_angles](https://api.ecom-eye.com/docs/list_batch_angles.md): List the angles of a scale winner batch (`GET /v1/batches/{batchId}/angles`, scope `read`) - [add_product_angle](https://api.ecom-eye.com/docs/add_product_angle.md): Add an angle to a product (`POST /v1/batches/{batchId}/products/{productId}/angles`, scope `batches:write`) - [update_angle_selection](https://api.ecom-eye.com/docs/update_angle_selection.md): Select or deselect angles (`PATCH /v1/batches/{batchId}/angles`, scope `batches:write`) - [confirm_batch_angles](https://api.ecom-eye.com/docs/confirm_batch_angles.md): Confirm the angles and generate the pages (`POST /v1/batches/{batchId}/confirm-angles`, scope `batches:write`) ### Pages Find, read, edit and regenerate the product pages your batches made. - [list_product_pages](https://api.ecom-eye.com/docs/list_product_pages.md): List the pages of a product (`GET /v1/products/{productId}/pages`, scope `read`) - [list_other_product_pages](https://api.ecom-eye.com/docs/list_other_product_pages.md): List the other pages of a page's product (`GET /v1/pages/{pageId}/other-product-pages`, scope `read`) - [search_pages](https://api.ecom-eye.com/docs/search_pages.md): Search pages by title (`GET /v1/pages`, scope `read`) - [get_page](https://api.ecom-eye.com/docs/get_page.md): Get a page (`GET /v1/pages/{pageId}`, scope `read`) - [update_page](https://api.ecom-eye.com/docs/update_page.md): Edit a page (`PATCH /v1/pages/{pageId}`, scope `pages:write`) - [regenerate_page](https://api.ecom-eye.com/docs/regenerate_page.md): Regenerate a page (`POST /v1/pages/{pageId}/regenerate`, scope `pages:write`) #### Page settings Every page keeps its own copy of the template it was made with. Change it for that page only, or save it as a new team template. - [get_page_template](https://api.ecom-eye.com/docs/get_page_template.md): Get a page's settings (`GET /v1/pages/{pageId}/template`, scope `read`) - [update_page_template](https://api.ecom-eye.com/docs/update_page_template.md): Change a page's settings (`PATCH /v1/pages/{pageId}/template`, scope `pages:write`) - [save_page_template_as_template](https://api.ecom-eye.com/docs/save_page_template_as_template.md): Save a page's settings as a template (`POST /v1/pages/{pageId}/template/save-as-template`, scope `templates:write`) #### Page images Look at a page's gallery and variant images, choose and order them, put in an existing or uploaded image, or go back to an earlier version. None of these spend credits. - [get_page_media](https://api.ecom-eye.com/docs/get_page_media.md): Get a page's images (`GET /v1/pages/{pageId}/media`, scope `read`) - [list_page_image_history](https://api.ecom-eye.com/docs/list_page_image_history.md): List earlier versions of an image (`GET /v1/pages/{pageId}/images/{imageId}/history`, scope `read`) - [view_page_images](https://api.ecom-eye.com/docs/view_page_images.md): View a page's images (`MCP only`, scope `read`) - [update_page_media](https://api.ecom-eye.com/docs/update_page_media.md): Select and order a page's images (`PATCH /v1/pages/{pageId}/media`, scope `pages:write`) - [set_page_image](https://api.ecom-eye.com/docs/set_page_image.md): Replace an image with an existing one (`POST /v1/pages/{pageId}/images/set`, scope `pages:write`) - [revert_page_image](https://api.ecom-eye.com/docs/revert_page_image.md): Revert an image to an earlier version (`POST /v1/pages/{pageId}/images/{imageId}/revert`, scope `pages:write`) - [dismiss_page_image_warnings](https://api.ecom-eye.com/docs/dismiss_page_image_warnings.md): Dismiss image warnings (`POST /v1/pages/{pageId}/images/dismiss-warnings`, scope `pages:write`) - [upload_page_images](https://api.ecom-eye.com/docs/upload_page_images.md): Upload images to a page (`POST /v1/pages/{pageId}/images/upload`, scope `pages:write`) #### Image generation Make new images with AI: regenerate or edit an image, or create custom gallery and variant images. These spend image credits, answer at once, and finish in the background: poll `get_page_media` for the result. - [regenerate_page_image](https://api.ecom-eye.com/docs/regenerate_page_image.md): Regenerate an image (`POST /v1/pages/{pageId}/images/{imageId}/regenerate`, scope `pages:write`) - [edit_page_image](https://api.ecom-eye.com/docs/edit_page_image.md): Edit an image with a prompt (`POST /v1/pages/{pageId}/images/{imageId}/edit`, scope `pages:write`) - [generate_page_image](https://api.ecom-eye.com/docs/generate_page_image.md): Generate a custom gallery image (`POST /v1/pages/{pageId}/images`, scope `pages:write`) - [generate_variant_image](https://api.ecom-eye.com/docs/generate_variant_image.md): Generate a custom variant image (`POST /v1/pages/{pageId}/variant-images`, scope `pages:write`) - [generate_variant_images](https://api.ecom-eye.com/docs/generate_variant_images.md): Generate AI variant images (`POST /v1/pages/{pageId}/variant-images/generate`, scope `pages:write`) ### Templates Saved page-generation settings that a new batch copies. Changing a template only affects future pages. The default template can be read and copied, never changed. - [list_templates](https://api.ecom-eye.com/docs/list_templates.md): List templates (`GET /v1/templates`, scope `read`) - [get_template](https://api.ecom-eye.com/docs/get_template.md): Get a template (`GET /v1/templates/{templateId}`, scope `read`) - [create_template](https://api.ecom-eye.com/docs/create_template.md): Create a template (`POST /v1/templates`, scope `templates:write`) - [update_template](https://api.ecom-eye.com/docs/update_template.md): Change a template (`PATCH /v1/templates/{templateId}`, scope `templates:write`) - [archive_template](https://api.ecom-eye.com/docs/archive_template.md): Archive a template (`POST /v1/templates/{templateId}/archive`, scope `templates:write`) - [restore_template](https://api.ecom-eye.com/docs/restore_template.md): Restore a template (`POST /v1/templates/{templateId}/restore`, scope `templates:write`) ### Stores The Shopify stores connected to the team. - [list_stores](https://api.ecom-eye.com/docs/list_stores.md): List stores (`GET /v1/stores`, scope `read`) #### Exports Send one page or a whole batch to a store. - [export_page](https://api.ecom-eye.com/docs/export_page.md): Export a page to a store (`POST /v1/pages/{pageId}/export`, scope `stores:write`) - [export_batch](https://api.ecom-eye.com/docs/export_batch.md): Export a batch to stores (`POST /v1/batches/{batchId}/export`, scope `stores:write`)