canonical: https://jentic.com/apis/catalogmachine.com/catalogmachine

# Catalog Machine API

Jentic publishes the only available OpenAPI specification for Catalog Machine API, keeping it validated and agent-ready. Catalog Machine builds online and PDF product catalogs, price lists, line sheets, and custom stores from a managed product database. The REST API supports bulk product create-update-delete, category and order listing, catalog PDF rebuilds, and import jobs from Shopify or CSV with status tracking. It is targeted at wholesalers, B2B sellers, and trade brands that distribute branded catalogs without a full e-commerce stack.

## For AI agents

Manage products, categories, orders, and PDF catalogs on Catalog Machine, and trigger Shopify or CSV import jobs with progress tracking.

## Scope

Does not handle payment processing, shipping label generation, or storefront hosting beyond Catalog Machine's own custom store - use for product, catalog, order, and import job operations only.

## Capabilities

- Bulk update or delete products in a Catalog Machine account in one call
- Read or modify a single product by its code, including price and metadata
- List categories and orders captured through a Catalog Machine catalog
- Trigger a rebuild of a catalog's PDF and shareable online version
- Sync product data from a connected Shopify store into Catalog Machine
- Import products in bulk from a CSV file
- Poll import and catalog rebuild job status until they complete

## Use cases

### Wholesale price list refresh

Wholesalers can push updated prices and stock to Catalog Machine in batches with POST /products, then trigger a PDF rebuild via GET `/catalogs/{permalink}/rebuild` so reps download an up-to-date price sheet. The job status endpoint lets the integration confirm the new PDF is ready before notifying the sales team.

Example prompt: POST a list of {code, price, stock} updates to /products, then GET `/catalogs/{permalink}/rebuild` and poll `/jobs/catalogs/{jobId}` until the rebuild completes.

### Shopify-to-line-sheet sync

Brands using Shopify as their source of truth can call GET `/import/shopify/sync` to pull current product data into Catalog Machine on demand, regenerating line sheets and PDF catalogs from the same data set. This keeps wholesale catalogs aligned with the live storefront without manual exports.

Example prompt: GET `/import/shopify/sync` to start the sync, then poll `/jobs/import/{jobId}` every 30 seconds until status is complete.

### CSV-driven catalog onboarding

Brands launching with Catalog Machine can POST a CSV of their full product list to `/import/csv` to seed the account, including codes, descriptions, prices, and category assignments. The import job id returned can be polled until processing finishes.

Example prompt: POST `/import/csv` with the multipart CSV file, then poll `/jobs/import/{jobId}` until the response shows status=completed.

### AI agent catalog operations via Jentic

An AI catalog agent can update prices, sync Shopify, rebuild PDFs, and confirm completion through Jentic without writing direct HTTP calls. The Catalog Machine API key lives in your Jentic One instance and is injected at execution time.

Example prompt: Search Jentic for 'bulk update Catalog Machine products', load POST /products, and execute it with the agent's price and stock updates.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/products` | List products in the account |
| POST | `/products` | Bulk update products |
| DELETE | `/products` | Bulk delete products |
| GET | `/catalogs` | List catalogs |
| GET | `/catalogs/{permalink}/rebuild` | Trigger a catalog PDF rebuild |
| GET | `/import/shopify/sync` | Sync Shopify products into Catalog Machine |
| POST | `/import/csv` | Import products from a CSV file |
| GET | `/jobs/import/{jobId}` | Check the status of an import job |

## Key resources

- **Products** — List, update, and delete products individually or in bulk.
- **Categories** — List the category structure used in catalogs and line sheets.
- **Orders** — List orders captured through a Catalog Machine catalog.
- **Catalogs** — List catalogs and trigger rebuilds of their PDF and online versions.
- **Import jobs** — Run Shopify and CSV imports and poll their job status.

## Why Jentic

- **Setup:** Wiring Catalog Machine by hand means handling its two auth modes yourself, the api_key query parameter or a bearer token, and tracking asynchronous import jobs so you know when a Shopify or CSV sync has finished. Through Jentic you install once, import Catalog Machine from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** Catalog Machine puts the resource id in the URL path for operations like `/catalogs/{permalink}/rebuild` and `/jobs/import/{jobId}`, so a rule can pin your agent to one catalog or import job. You choose the operations it may call, so a destructive one like deleting products is not included unless you add it.
- **Credential handling:** Your Catalog Machine api_key or bearer token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'rebuild a catalog' or 'bulk import products from CSV', and Jentic returns the matching Catalog Machine operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Shopify Admin API** — Shopify is the source-of-truth product catalog that Catalog Machine syncs from for line sheets.
- **Squarespace Commerce API** — Squarespace Commerce is an alternative storefront where catalog and order management live in one platform.
- **Stripe API** — Stripe handles payment for orders that originate in Catalog Machine custom stores.

## FAQ

### Why is there no official OpenAPI spec for Catalog Machine API?

Catalog Machine publishes a help article describing its REST API but no machine-readable OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Catalog Machine API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Catalog Machine API use?

The Catalog Machine API supports either an api_key passed as a query parameter or an Authorization: Bearer token. Through Jentic the credential is stored encrypted in your Jentic One instance and attached to requests at execution time, so the key is never exposed in agent prompts or logs.

### Can I sync Shopify products into Catalog Machine through the API?

Yes. GET `/import/shopify/sync` starts a sync that pulls products from a connected Shopify store. The endpoint returns a job id you can poll via GET `/jobs/import/{jobId}` to track progress until completion.

### What are the rate limits for the Catalog Machine API?

Catalog Machine does not document explicit rate limits in this OpenAPI spec. Use the bulk endpoints for products and CSV import rather than per-record loops, and avoid tight polling on `/jobs/import/{jobId}` - a 15-30 second interval is usually sufficient.

### How do I rebuild a Catalog Machine PDF through Jentic?

Run pip install jentic, search Jentic with the query 'rebuild a Catalog Machine catalog', load the GET `/catalogs/{permalink}/rebuild` operation, and execute it with the catalog permalink. Then poll `/jobs/catalogs/{jobId}` until status is complete.

### Can I import products from a CSV file?

Yes. POST `/import/csv` accepts a CSV file upload and returns a job id. Poll GET `/jobs/import/{jobId}` to track progress and detect any row-level errors.

### Can I limit what my agent is allowed to do with the Catalog Machine API?

Yes. Because you run Jentic One yourself, your own rules decide which Catalog Machine operations the agent may call, so you can grant read-only access to GET /products, GET /catalogs, and GET `/jobs/import/{jobId}` while leaving bulk-destructive calls like DELETE /products out entirely. Catalog Machine also puts the resource id in the URL path for operations such as `/catalogs/{permalink}/rebuild` and `/jobs/import/{jobId}`, so a rule can pin the agent to a single catalog or import job rather than the whole account. Your api_key or bearer token stays with your Jentic One instance and is attached only when an operation you allowed actually runs.
