> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Lemon Squeezy Integration for AI Agents & Workflows

> Digital products and subscriptions platform for selling software, SaaS, and digital goods with built-in payment processing.

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img src="https://mintcdn.com/modulexaillc/df8MOr-hXotYLTh5/logos/lemon-squeezy.svg?fit=max&auto=format&n=df8MOr-hXotYLTh5&q=85&s=d43c24cec2d3fbb1cfba522f51021f79" alt="Lemon Squeezy logo" width="72" height="72" data-path="logos/lemon-squeezy.svg" />

## Overview

Add **Lemon Squeezy** to any ModuleX agent or workflow. Read-only access to the Lemon Squeezy v1 REST API (`api.lemonsqueezy.com/v1`): customers, orders, products, subscriptions, and stores.

<Info>
  **Categories**: Finance & Payments · Business Services · Payments · Subscriptions · Digital Products · **Auth**: API Key · **Actions**: 10
</Info>

## Authentication

### API Key Authentication

Authenticate using your Lemon Squeezy API key

#### Required Credentials

| Field                 | Description                                   | Required | Format   |
| --------------------- | --------------------------------------------- | -------- | -------- |
| Lemon Squeezy API Key | Your Lemon Squeezy API key for authentication | Yes      | `eyJ...` |

## Available Actions

<AccordionGroup>
  <Accordion title="list_customers — List all customers from your Lemon Squeezy account with pagination support">
    ### Parameters

    <ResponseField name="page" type="integer">
      Page number for pagination (Default: `1`)
    </ResponseField>

    <ResponseField name="per_page" type="integer">
      Number of results per page (max 100) (Default: `10`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "default": null,
          "title": "Data"
        },
        "meta": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Meta"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListCustomersOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="retrieve_customer — Retrieve a specific customer by ID with their details and purchase history">
    ### Parameters

    <ResponseField name="customer_id" type="string" required>
      The ID of the customer to retrieve
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "default": null,
          "title": "Data"
        },
        "meta": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Meta"
        }
      },
      "required": [
        "success"
      ],
      "title": "RetrieveCustomerOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_orders — List all orders from your Lemon Squeezy account with optional filtering">
    ### Parameters

    <ResponseField name="page" type="integer">
      Page number for pagination (Default: `1`)
    </ResponseField>

    <ResponseField name="per_page" type="integer">
      Number of results per page (max 100) (Default: `10`)
    </ResponseField>

    <ResponseField name="store_id" type="string">
      Filter orders by store ID
    </ResponseField>

    <ResponseField name="user_email" type="string">
      Filter orders by user email
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "default": null,
          "title": "Data"
        },
        "meta": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Meta"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListOrdersOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="retrieve_order — Retrieve a specific order by ID with full order details">
    ### Parameters

    <ResponseField name="order_id" type="string" required>
      The ID of the order to retrieve
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "default": null,
          "title": "Data"
        },
        "meta": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Meta"
        }
      },
      "required": [
        "success"
      ],
      "title": "RetrieveOrderOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_products — List all products from your Lemon Squeezy account">
    ### Parameters

    <ResponseField name="page" type="integer">
      Page number for pagination (Default: `1`)
    </ResponseField>

    <ResponseField name="per_page" type="integer">
      Number of results per page (max 100) (Default: `10`)
    </ResponseField>

    <ResponseField name="store_id" type="string">
      Filter products by store ID
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "default": null,
          "title": "Data"
        },
        "meta": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Meta"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListProductsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="retrieve_product — Retrieve a specific product by ID with full product details">
    ### Parameters

    <ResponseField name="product_id" type="string" required>
      The ID of the product to retrieve
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "default": null,
          "title": "Data"
        },
        "meta": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Meta"
        }
      },
      "required": [
        "success"
      ],
      "title": "RetrieveProductOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_subscriptions — List all subscriptions from your Lemon Squeezy account with optional filtering">
    ### Parameters

    <ResponseField name="page" type="integer">
      Page number for pagination (Default: `1`)
    </ResponseField>

    <ResponseField name="per_page" type="integer">
      Number of results per page (max 100) (Default: `10`)
    </ResponseField>

    <ResponseField name="store_id" type="string">
      Filter subscriptions by store ID
    </ResponseField>

    <ResponseField name="status" type="string">
      Filter by subscription status: on\_trial, active, paused, past\_due, unpaid, cancelled, expired
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "default": null,
          "title": "Data"
        },
        "meta": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Meta"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListSubscriptionsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="retrieve_subscription — Retrieve a specific subscription by ID with full subscription details">
    ### Parameters

    <ResponseField name="subscription_id" type="string" required>
      The ID of the subscription to retrieve
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "default": null,
          "title": "Data"
        },
        "meta": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Meta"
        }
      },
      "required": [
        "success"
      ],
      "title": "RetrieveSubscriptionOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_stores — List all stores from your Lemon Squeezy account">
    ### Parameters

    <ResponseField name="page" type="integer">
      Page number for pagination (Default: `1`)
    </ResponseField>

    <ResponseField name="per_page" type="integer">
      Number of results per page (max 100) (Default: `10`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "default": null,
          "title": "Data"
        },
        "meta": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Meta"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListStoresOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="retrieve_store — Retrieve a specific store by ID with full store details">
    ### Parameters

    <ResponseField name="store_id" type="string" required>
      The ID of the store to retrieve
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "default": null,
          "title": "Data"
        },
        "meta": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Meta"
        }
      },
      "required": [
        "success"
      ],
      "title": "RetrieveStoreOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* Pagination via JSON:API `page[number]` / `page[size]`; `per_page` is
  clamped to 100.
* List endpoints return both `data` (array of resources) and `meta`
  (pagination block); retrievals return just `data`.
* 404 retrievals return `success=False` with a "not found" message;
  other non-200 responses surface the body verbatim.

## Related integrations

<CardGroup cols={3}>
  <Card title="RevenueCat" href="/integrations/tools/revenuecat" />

  <Card title="Stripe" href="/integrations/tools/stripe" />

  <Card title="Coinbase" href="/integrations/tools/coinbase" />
</CardGroup>

## Links

* [Lemon Squeezy](https://lemonsqueezy.com)
