Admin API
The Admin API is the back office as an API. It reads and writes everything an administrator of the marketplace can see: every user, every vendor’s listings, every order. It is a JSON REST API served at:
https://<primary address>/api/v1Typical integrations
Section titled “Typical integrations”- ERP, accounting and order management: pull new orders, push statuses, tracking numbers and invoice data back. See Sync orders to an ERP.
- Catalog management: import and update listings for all vendors from a PIM, a supplier feed or a spreadsheet. See Import a catalog.
- CRM and marketing: sync members, their groups and custom data, tag them with metafields.
- Custom payment flows: record payments taken with your own payment provider. See Record orders paid outside Kreezalid.
- Back end of a custom front end: your server reads the catalog for a mobile app or a headless storefront. See Build a headless storefront.
Authentication
Section titled “Authentication”HTTP Basic, with the API key as user name and the API secret as password. Generate them in Settings → Account → API access. Details, rotation and errors in Authentication.
Resources
Section titled “Resources”| Resource | Main endpoints |
|---|---|
| Listings | List · Retrieve · Create · POST /listings/bulk · Update · Delete · Search by field |
| Listing set-up | GET /listings/categories · GET /listings/attributes · GET /listings/order_types |
| Variants | List a listing’s variants · Retrieve · Update · Delete |
| Add-ons | List a listing’s add-ons · Retrieve · Update |
| Categories | Search · POST /categories/add |
| Collections | List · Create · Update · Listings of a collection · Collection models |
| Users | List · Retrieve · POST /users/add · PUT /users/{id}/update · Delete · GET /users/search · Payment account |
| Orders | List · Retrieve · Update · GET /orders/statuses |
| Metafields | On users, listings and orders: GET and POST /{resource}/{id}/metafields. See Metafields. |
| Events | List · Retrieve |
| Notifications | Send a notification email |
| Shipping rates | GET /shipping-rates · GET /shipping-rates/{id} · POST /shipping-rates/add |
| Payments | Payment gateways · vendors’ external payment accounts · POST /checkout/preauth-success · /checkout-redirects |
The Admin API reference documents every field.
Conventions
Section titled “Conventions”- JSON in, JSON out. Send
Content-Type: application/json. A.jsonsuffix on the path (/api/v1/listings.json) is accepted and changes nothing. - Wrapped responses. Lists come under a plural key (
listings,users,orders,events) with apaginationobject. A single object comes under its own key:user,order, and, for a listing,product. - Writes answer with
success. Create, update and delete return{"success": true|false, "message": "…"}, plus the newidon creation. A refused write still answers200: always readsuccess. See Errors. - Amounts are strings with two decimals (
"480.00") in the marketplace currency. - Dates: order timestamps (
checkout_at, payout dates) are Unix timestamps; listing dates such asdate_onlineareYYYY-MM-DD HH:MM:SSstrings. - Your references: users, listings and variants have an
external_idfor your own id, and every user, listing and order can carry metafields.
Things to know
Section titled “Things to know”- No side effects you did not ask for. Creating a user or a listing, or changing an
order’s status through the API, sends no email and emits no
order.status.*webhook. Use Send a notification when the customer or the vendor should be told. - Listings you create are live. They are published and approved immediately unless you
send
"is_online": 0. Thestatusyou send on creation is not applied yet: create withis_onlineinstead. - Descriptions are plain text. HTML sent in
descriptionis converted to text. - Images are fetched by Kreezalid. Send public image URLs in
images; on update, the array replaces every existing image. - Variants are synced as a set. On
PATCH /listings/{id}, each entry ofvariantsupdates the existing variant with the sameexternal_id, or else the samesku, and creates a new one otherwise. Existing variants that are not in the array are deleted. Always send the complete list, withexternal_idorskuon every entry. - Updating order items.
PATCH /orders/{id}accepts anorder_itemsarray of{ "id", … }objects. Send one item per request when you update items. - Drafts are hidden from
GET /ordersunless you filter onstatus=draft.
QuickstartYour first call and your first listing.
Admin API referenceEvery endpoint and field.