API Documentation | Limio

Limio Commerce API (1.0.0)

Download OpenAPI specification: Download

E-mail: [email protected] URL: https://limio.zendesk.com/hc/en-gb/requests/new

A collection of APIs designed for interacting with Limio services.


Send Orders

APIs related to sending Limio Orders

Submit Order (POST /order)

Submit an order directly to Limio. This will apply the changes immediately and can be used to update a subscription, change the offer, or update customer details.

Security: bearerAuth

Request body (application/json, required) One of the following request types:

  • Create Subscription

  • Create Gift Subscription

  • Redeem Gift Subscription

  • Update Customer Details

  • Change Address

  • Change Offer

  • Update Subscription

  • Change Default Zuora Payment Method

  • Delete Payment Method

  • Add Offer

  • Cancel Subscription

Create a new subscription - example schema fields:

  • external_id (string) — external order reference

  • initiated_source (string) — initiated source of the order ("shop" or "salesforce")

  • source (string)

  • process_immediately (boolean) — if true the order is processed synchronously

  • order_type (string, required) — e.g. "new"

  • orderItems (array, required) — array of objects:

    • offer (object: OfferPayload) — published Limio Offer details (id, version)

    • quantity (number)

  • orderDiscount (object: OrderDiscount)

    • name (string)

    • productDetails (object)

      • ratePlan (object)

      • product (object)

    • product (object: ProductDetails)

      • baseTemplate, entitlements, path, created, modified, attributes, record_type, lastSynced, synced, syncedFrom

    • discountOverrides

      • discountType, durationLength, durationType, percentageDiscount, amountDiscount, currency, orderItemsWithSpecifiedDiscount

  • billingDetails (object: Address) — firstName, lastName, email, phone, company, address1, address2, city, state, postalCode, country

  • deliveryDetails (object: Address)

  • customerDetails (object: CustomerDetails) — firstName, lastName, phone, email

  • tracking (object: Tracking) — offers (array of strings), purchaseCountryCode, accountId, contactId, userId

  • payment (ZuoraPayment object, required)

    • type: "zuora"

    • zuora:

      • refId (string) — Zuora payment method id

      • paymentGateway (string)

  • orderDate (string, date-time) — subscription start date

  • checkoutId (string, required) — limio session checkout id

  • country (string, required) — customer purchase country code

Responses:

  • 200 OK

  • 401 Unauthorized

  • 404 Not found

  • 502 Bad Gateway

Example payload (application/json):

Example response (200):


Preview Order (POST /order/preview)

Preview an order in Limio to see the changes that will be applied. Useful to show the user expected charges, effective dates, and other details before confirming.

Security: bearerAuth

Request body (application/json, required)

Fields include (representative):

  • external_id, initiated_source, source, process_immediately

  • order_type (string, required) — e.g. add_offer, update_subscription, change_offer

  • forSubscription (SubscriptionByName or SubscriptionById) — subscription to update

  • offer (OfferPayload, required)

  • effectiveDate (date-time)

  • payment (ZuoraPayment)

  • billingDetails, deliveryDetails

Responses:

  • 200 OK

  • 401 Unauthorized

  • 404 Not found

  • 502 Bad Gateway

Example request:

Example response (200):

Large preview object containing:

  • preview: { success, orderNumber, orderId, accountNumber, status, subscriptions, paymentNumber, paidAmount, previewResult (invoices, creditMemos) }

  • schedule: array of scheduled charges

(See actual API response samples for full JSON structure.)


Subscription

APIs related to Limio Subscriptions

Get subscriptions by Salesforce ID (GET /objects/salesforce/identities/{id}/subscriptions)

Use to list subscriptions attached to a specified Salesforce ID.

Security: bearerAuth

Path parameters:

  • id (string, required): Salesforce Identity

Query parameters:

  • queryMore (string): pagination token

Responses:

  • 200 OK

  • 401 Unauthorized

  • 502 Bad Gateway

Example curl:

Response contains a "subscriptions" array with detailed subscription, offer, product, tracking, customer, price and other information.


Get Subscription Timeline (GET /timeline/{path_type}/{id})

Retrieves timeline data for a subscription or customer by ID. Aggregates events, payment methods, addresses, offers, and schedules into a chronological history.

Security: bearerAuth

Path parameters:

  • path_type (string, required): "subscriptions" or "customers"

  • id (string, required): subscription or customer id

Responses:

  • 200 Successfully retrieved timeline data

  • 400 Bad request - Invalid parameters

  • 401 Unauthorized

  • 404 Subscription or customer not found

  • 502 Bad Gateway

Example curl:

Response includes "subscriptions" (array of timeline events) and metadata.


Identities

APIs related to Limio Identities

Transfer Limio owner (POST /objects/owner_change)

Transfer ownership of all objects from one owner to another. Both source and destination owners must use the "@limio/id" format. This action only changes ownership of objects; it does not transfer or change the source owner's ID.

Security: bearerAuth

Request body (application/json, required):

  • sourceId (string)

  • destinationId (string)

  • message (string)

Responses:

  • 200 All objects successfully transferred

  • 401 Unauthorized

  • 502 Bad Gateway

Example:

Example response:


Add external identity (Admin) (POST /objects/externalidentity/{owner})

Add an external identity to a Limio identity on behalf of an organization (admin-only). Requires OAuth bearer tokens.

Security: bearerAuth

Path parameters:

  • owner (string, required): Limio owner id (e.g. id-23252f4950f5efe7de30de37da283149)

Request body (application/json, required):

  • id_token (object)

    • iss (string)

    • sub (string)

Responses:

  • 200 External identity successfully linked

  • 401 Unauthorized

  • 502 Bad Gateway

Example request:

Example response:


Remove external identity (Admin) (DELETE /objects/externalidentity/{owner})

Remove an external identity from a Limio identity (admin-only).

Security: bearerAuth

Path parameters:

  • owner (string, required)

Request body (application/json, required):

  • id_token (object)

    • iss (string)

    • sub (string)

Responses:

  • 200 External identity successfully removed

  • 401 Unauthorized

  • 502 Bad Gateway

Example request:

Example response: { }


Forget Customer Data (POST /customer/{id}/forget_customer)

Obfuscate personal customer data for a specific customer id (irreversible).

Security: bearerAuth

Path parameters:

  • id (string, required): customer id (e.g. cus-fc689f05...)

Responses:

  • 200 Data successfully scrubbed

  • 401 Unauthorized

  • 502 Bad Gateway

Example curl:

Example response:


Basket

APIs related to retrieving Limio Baskets

Get Abandoned Baskets (GET /checkout/abandoned)

Retrieve a list of abandoned baskets and filter by creation date.

Security: bearerAuth

Query parameters:

  • limit (number, required) — number of objects to return

  • createdAfter (date-time, required) — filter items created after provided ISO date-time

  • queryMore (string) — pagination token

Responses:

  • 200 OK

  • 401 Unauthorized

  • 502 Bad Gateway

Example curl:

Response contains "items" array with baskets (id, created, customerDetails, orderItems, tracking, identities, completed false, recoveryLink, etc.).


Create or update a checkout session (POST /checkout/initiate)

Create or update a basket for tracking and later order submission. Returns basket ID.

Security: bearerAuth

Request body (application/json, required):

  • order (object, required)

    • orderItems (array, required) — offer payloads+quantity

    • external_id (string, required) — becomes checkoutId

    • tracking (object)

      • offers (array)

      • purchaseCountryCode

      • accountId, contactId, userId

    • country (string, required) — purchase country code

    • source (string, required)

    • order_type (string, required) — Enum: "new", "renew"

Responses:

  • 200 OK

  • 401 Unauthorized

  • 502 Bad Gateway

Example request:

Example response:


Session

APIs related to User Sessions

Get User Entitlements (GET /session/entitlements)

Get entitlements of a user session.

Security: sessionAuth

Responses:

  • 200 OK

  • 401 Unauthorized

  • 502 Bad Gateway

Example curl:

Example response:


Get Objects

APIs to retrieve Limio objects (subscriptions, customers, orders, identities, addresses, schedules, payment methods, subscription offers, entitlements, events, process events, etc.)

Security: bearerAuth

Get Object (GET /objects/{service}/{path_type}/{id})

Path parameters:

  • service (string, required): "limio" (default), "zuora", "salesforce"

  • path_type (string, required): e.g. "orders", "customers", "subscriptions", "identities", "address", "schedules", "payment_methods", "subscription_offers", "user_entitlements", "gift_code", "promo_codes_v2", "events", "process"

  • id (string, required)

Responses:

  • 200 OK

  • 401 Unauthorized

  • 502 Bad Gateway

Example curl:

Response: full object JSON (subscription, customer, order, etc.). See response samples for structures.


Get Objects (GET /objects/{service}/{path_type})

Retrieve a list of objects of a specific type.

Query parameters:

  • limit (number)

  • queryMore (string)

Responses:

  • 200 OK

  • 401 Unauthorized

  • 502 Bad Gateway

Example curl:

Response: "items" array with summary objects and "queryMore" token.


Get objects related to a specific object.

Responses:

  • 200 OK

  • 401 Unauthorized

  • 502 Bad Gateway

Example curl:

Response: "items" array of related objects.


Same as above filtered by record_type.

Example curl:


Get Object Subtype (GET /objects/{service}/{path_type}/{id}/objects)

Retrieve children objects of a parent object.

Example curl:


Get Object Subtype By Record Type (GET /objects/{service}/{path_type}/{id}/objects/{subtype})

Retrieve specific children objects matching record_type.

Example curl:


Get Object Events (GET /objects/{service}/{path_type}/{id}/events)

Get events associated with a specific object.

Example curl:

Response: "items" array of event objects and "unpackedItems" with enriched data.


Create Objects

APIs related to creating Limio Objects

Create Promo Code Objects (POST /objects/limio/promo_codes_v2)

Create a new promo code object (only promo codes v2 supported).

Security: bearerAuth

Request body (application/json, required):

  • name (string, required)

  • id (string, required) — e.g. promo_code_v2-abc123

  • data (PromoCodeWholeBasket or PromoCodeSelectedItems)

    • applicationLevel (string, required), value: "wholeBasket"

    • promoCode (string, required)

    • status (boolean, required)

    • description (string)

    • promoStartDate (date)

    • promoExpiryDate (date)

    • productDetails (PromoCodeProductDetails)

      • product (object, required)

      • ratePlan (object, required)

    • usage (availableQuantity)

    • discount (Discount Type Percentage or Fixed Amount) — discountType "DiscountPercentage" with percentageDiscount, durationLength, durationType

Responses:

  • 200 OK

  • 400 Bad request

  • 401 Unauthorized

  • 404 Not found

Example request:

Example response:


Update Objects

APIs related to updating Limio Objects

Update Object (PUT /objects/{service}/{path_type}/{id})

Update objects (subscription, customer, order, identity, address, schedule, payment method, subscription offer, promo code, user entitlement).

Security: bearerAuth

Path parameters:

  • service (string)

  • path_type (string)

  • id (string)

Request body (application/json, required):

  • name (string)

  • data (object | PromoCodeWholeBasket | PromoCodeSelectedItems) — nested updates require full structure as appropriate

  • quantity (number)

Responses:

  • 200 OK

  • 400 Bad request

  • 401 Unauthorized

  • 404 Not found

Example request:

Example response:


Delete Object (DELETE /objects/{service}/{path_type}/{id})

Delete objects (currently only promo codes v2 supported).

Security: bearerAuth

Responses:

  • 200 OK

  • 401 Unauthorized

  • 404 Not found

  • 502 Bad Gateway

Example curl:

Example response:


Add Object Relationship (POST /objects/{service}/{path_type}/{id}/related/{record_type})

Add a related identity object to a specific object.

Security: bearerAuth

Path parameters:

  • service (string)

  • id (string)

  • path_type (string)

  • record_type (string, required) — default "identity" (only identity allowed)

Request body (application/json, required):

  • id (string) — identity id to link

  • service (string) — identity service: "limio", "zuora", "salesforce"

Example:

Response: null (200 OK)


Get Catalog Items

APIs related to retrieving Limio Catalog Items

Note: Many catalog endpoints accept query parameters such as path, tags, reducedData, opt.pageSize, opt.modifiedAfter, opt.all, opt.queryMoreFrom, opt.queryMoreAlias and attributes.<YOUR_ATTRIBUTE> keys.

Authentication: ApiKey or bearerAuth (depending on endpoint)

Get Campaigns (GET /campaigns)

Retrieve campaigns that match queries. Returns hits count, items array and queryMore.

Security: ApiKey

Example curl:

Response: hits, header, items (campaign objects), queryMore.


Get Pages (GET /pages)

Retrieve published pages matching query params.

Security: ApiKey

Example curl:

Response: items, hits, queryMore, commitId, buildId, indexName.


Get Offers (GET /offers)

Retrieves offers in the catalog (includes legacy /offers and standalone /offers2). To fetch only v2 standalone offers use /offers/v2.

Security: ApiKey or bearerAuth

Query params: path, tags, reducedData, opt.pageSize, opt.modifiedAfter, opt.all, opt.queryMoreFrom, opt.queryMoreAlias, attributes.<...>

Example curl:

Response: hits, items (offer objects), queryMore, commitId.


Get Offers V2 (GET /offers/v2)

Retrieve standalone offers v2 (recommended if you only want standalone offers). Can default to published offers if Published Offers API is enabled; use offersSource query param to control.

Security: bearerAuth

Query parameters:

  • offersSource (string): "catalog" or "published"

  • path, tags, reducedData, opt.pageSize, opt.modifiedAfter, opt.all, opt.queryMoreFrom, opt.queryMoreAlias, attributes.<...>

Example curl:

Response: hits, items (v2 offers), queryMore, commitId.


Get Add Ons (GET /add_ons)

Retrieve standalone add-ons in the catalog.

Security: bearerAuth

Query parameters include addOnsSource ("catalog" or "published") and others similar to offers.

Example curl:

Response: hits, items, queryMore, commitId.


Get Assets (GET /assets)

Retrieve assets in the catalog.

Security: ApiKey or bearerAuth

Example curl:

Response: hits, items (asset objects), queryMore.


Get Products (GET /products)

Retrieve products in the catalog.

Security: ApiKey or bearerAuth

Example curl:

Response: hits, items, queryMore, commitId.


Get Segments (GET /segments)

Retrieve catalog segments.

Security: ApiKey or bearerAuth

Example curl:

Response: hits, items, queryMore, commitId.


Get Journeys (GET /journeys)

Retrieve journeys in the catalog.

Security: ApiKey or bearerAuth

Example curl:

Response: starting_point, fallback_tag, journeys array.


Update Catalog Items

APIs related to updating Limio Catalog Items

Bulk Update (PUT /limio/catalogs/1/bulk-update)

Perform bulk update operations on catalog items.

Security: bearerAuth

Request body (application/json, required):

  • diffs (array of objects)

    • path (string) — offer path

    • diff (object) — attributes to change

Responses:

  • 200 OK

  • 401 Unauthorized

  • 404 Not found

Example:

Example response:


Build

APIs related to building Limio Campaigns and pages

Build Campaigns and Pages (POST /shop/builds)

Build campaigns and pages in bulk.

Security: bearerAuth

Request body (application/json, required):

  • items (array) — list of campaign and page paths to build (e.g. "/offers/Limio Campaign", "/pages/Limio Page")

Responses:

  • 200 OK

  • 401 Unauthorized

  • 502 Bad Gateway

Example:

Example response:


Repository Component Builds (GET /component/builds)

Fetch custom component builds.

Security: bearerAuth

Query params:

  • commitHash (string) — retrieve build info for this commit

Responses:

  • 200 OK

  • 401 Unauthorized

  • 404 Builds not found

Example curl:

Example response:


Publish

APIs related to publishing Limio Campaigns and pages

Publish Campaigns and Pages (POST /publish)

Publish campaigns and pages (make them live).

Security: bearerAuth

Request body (application/json, required):

  • tags (array) — tags of campaigns/pages to publish

  • buildId (string)

  • name (string) — name of campaign/page to publish

Responses:

  • 200 OK

  • 401 Unauthorized

  • 502 Bad Gateway

Example:

Example response: success flag and publishedData pages structure.


Sync Zuora Data

APIs related to syncing Zuora Data

Sync Zuora Subscription (POST /plugins/zuora/sync/subscription/{id})

Update or create subscriptions/customers in Limio for orders created outside Limio (e.g., directly in Zuora).

Security: bearerAuth

Path parameters:

  • id (string, required) — Zuora subscription id

Responses:

  • 200 OK

  • 401 Unauthorized

  • 502 Bad Gateway

Example curl:

Example response:


Journeys V2

APIs related to Limio Journeys V2

Security: ApiKey or bearerAuth (depending on endpoint)

Get Journeys V2 (GET /v2/journey)

Retrieve journeys v2.

Example curl:

Response: starting_point, fallback_tag, journeys array.


Add Journey V2 (POST /v2/journey)

Add a new journey.

Security: bearerAuth

Request body:

  • name (string)

Responses:

  • 200 OK

  • 401 Unauthorized

  • 409 Conflict

Example:

Example response:


Get Journey V2 by name (GET /v2/journey/{journeyName})

Get a journey by name.

Security: bearerAuth

Path parameter:

  • journeyName (string, required)

Responses:

  • 200 OK

  • 401 Unauthorized

  • 404 Journey not found

Example curl:

Response contains journey data, status, id, created/updated timestamps, version.


Delete Journey V2 by name (DELETE /v2/journey/{journeyName})

Delete a journey by name.

Security: bearerAuth

Responses:

  • 200 Successfully deleted

  • 401 Unauthorized

  • 404 Journey not found

Example curl:

Example response:


Update or Create Journey V2 (PUT /v2/journey/{journeyName})

Update an existing Journey V2 by name, or create if it does not exist.

Security: bearerAuth

Path parameter:

  • journeyName (string) — name of journey to update

Request body (application/json, required):

  • name (string)

  • data (object)

    • journeys (array of objects)

      • id (uuid), conditions (array), actions (array)

    • starting_point (string)

    • fallback_tag (string)

    • domains (array of strings)

Responses:

  • 200 OK

  • 401 Unauthorized

Example request:

Example response: echoes back the journey structure.


If you want, I can:

  • Convert specific example request/response pairs into separate example blocks titled per language (curl / JavaScript / Python).

  • Split this document into separate GitBook pages (e.g., Orders, Subscriptions, Catalog) and add ready-to-use code snippets for common use cases. Which would you prefer?

Last updated

Was this helpful?