API documentation JSON requests

Use these pages as copy/paste references for the supported API request bodies.

API key

Every API request must include your API key in the JSON body as "key": "YOUR_API_KEY".

To generate or view it, log in as an administrator and open the app's API integration settings. In the API tab, click Generate API key if no key exists. After it is generated, the key is shown in the read-only API key field.

The Generate API key button is available only when API access is enabled for the current plan.

Available API request docs

POST /api/createproduct

Create or update products

Creates single or bulk products, or updates an existing product when id is provided or sku already exists. Includes attributes, variations, included products, and related products.

POST /api/updateprices

Update prices by SKU

Bulk-updates prices for simple products and variations matched by SKU (case-insensitive). Accepts a full price object or a single number for a simple tier.

POST /api/getproducts

Get products

Lists, filters, or fetches one product by id or sku. Optional expansions include images, attributes, and variations.

POST /api/createcontact

Create or update contacts

Creates single or bulk contacts. When code matches an existing contact, the existing contact is updated instead of duplicated.

POST /api/getcontacts

Get contacts

Lists, filters, searches, or fetches one contact. Contact meta is returned both as rows and as a merged meta object.

POST /api/createproposal experimental

Create proposals

Beta/experimental endpoint for creating proposals with entries, groups, settings, optional contact objects, and optional product references or embedded product payloads.

POST /api/getproposals

Get proposals and templates

Lists, filters, or fetches one proposal. Supports templates_only for proposal templates where type == 4.

POST /api/createproposalfromtemplate

Create proposals from templates

Clones an existing proposal template, copies its entries and settings, and replaces the customer-facing proposal details.

POST /api/openaddproposal

Open add proposal with prefill

Authenticated browser/admin flow. Posts client details into session flash and redirects to /addproposal with those fields prefilled.

Basic request shape

{
  "key": "YOUR_API_KEY"
}