Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build codecov Scrutinizer Code Quality Go Report Card GitHub contributors GitHub license PkgGoDev

This package provides a go API client for the lemonsqueezy API


lemonsqueezy-go is compatible with modern Go releases in module mode, with Go installed:

go get

Alternatively the same can be achieved if you use import in a package:

import ""


  • Users
    • GET /v1/users/me: Retrieves the currently authenticated user.
  • Stores
    • GET /v1/stores/:id: Retrieve a store
    • GET /v1/stores: List all stores
  • Customers
    • GET /v1/customers/:id: Retrieve a customer
    • GET /v1/customers: List all customers
  • Products
    • GET /v1/products/:id: Retrieve a product
    • GET /v1/products: List all products
  • Variants
    • GET /v1/variants/:id: Retrieve a variant
    • GET /v1/variants: List all variants
  • Files
    • GET /v1/files/:id: Retrieve a file
    • GET /v1/files: List all files
  • Orders
    • GET /v1/orders/:id: Retrieve an order
    • GET /v1/orders: List all orders
  • Order Items
    • GET /v1/order-items/:id: Retrieve an order item
    • GET /v1/order-items: List all order items
  • Subscriptions
    • PATCH /v1/subscriptions/:id: Update a subscription
    • GET /v1/subscriptions/:id: Retrieve a subscription
    • GET /v1/subscriptions: List all subscriptions
    • DELETE /v1/subscriptions/{id}: Cancel an active subscription
  • Subscription Invoices
    • GET /v1/subscription-invoices/:id: Retrieve a subscription invoice
    • GET /v1/subscription-invoices: List all subscription invoices
  • Discounts
    • POST /v1/discounts: Create a discount
    • GET /v1/discounts/:id: Retrieve a discount
    • DELETE /v1/discounts/:id: Delete a discount
    • GET /v1/discounts: List all discounts
  • Discount Redemptions
    • GET /v1/discount-redemptions/:id: Retrieve a discount redemption
    • GET /v1/discount-redemptions: List all discount redemptions
  • License Keys
    • GET /v1/license-keys/:id: Retrieve a license key
    • GET /v1/license-keys: List all license keys
  • License Key Instances
    • GET /v1/license-key-instances/:id: Retrieve a license key instance
    • GET /v1/license-key-instances: List all license keys instance
  • Checkouts
    • POST /v1/checkouts: Create a checkout
    • GET /v1/checkouts/:id: Retrieve a checkout
    • GET /v1/checkouts: List all checkouts
  • Webhooks
    • PATCH /v1/webhooks/:id: Update a webhook
    • GET /v1/webhooks/:id: Retrieve a webhook
    • GET /v1/webhooks: List all webhooks
    • DELETE /v1/webhooks/{id}: Update a webhook
    • Verify: Verify that webhook requests are coming from Lemon Squeezy


Initializing the Client

An instance of the client can be created using New().

package main

import (

func main() {
    client := lemonsqueezy.New(lemonsqueezy.WithAPIKey(""))

Error handling

All API calls return an error as the last return object. All successful calls will return a nil error.

subscription, response, err := client.Sucbscriptions.Get(context.Background(), "1")
if err != nil {
    //handle error


You can run the unit tests for this client from the root directory using the command below:

go test -v


This project is licensed under the MIT License - see the LICENSE file for details