Create coupons in bulk via API

You can create coupon codes in bulk via our API. We've added a special mutation that will create several coupon codes based on an existing coupon, and they'll be grouped together in your Memberful dashboard for easy management. In this article, we'll show you how to create a base coupon, find its ID, and then use that ID to generate a mutation that will create multiple coupon codes.

In this help doc:

Use the GraphQL API Explorer

You can make requests to our API in all the regular ways you're used to, but the easiest method is through our GraphQL API Explorer, which can be accessed straight from your Memberful dashboard by going to Settings → Custom applications.

Queries and mutations that you execute in the API Explorer will work just the same as requests that come from elsewhere, so you can generate your coupons in bulk just by using the API Explorer.

Create a base coupon

Start off by creating a base coupon.

All your new coupons will inherit the same settings as this base coupon, and they'll be grouped under it in your Memberful dashboard.

Find the base coupon's ID

From the Edit coupon page, take note of the coupon's ID. You'll find it under the label Coupon ID for generating bulk coupon codes.

Finding Coupon ID

Review a mutation example

Now you're ready to go to the API Explorer and run your mutation. Keep your coupon ID handy because you're about to use it.

This is the format you need to follow for this mutation:

mutation {
  createCoupons(discountId: YOURCOUPONID, coupons: [{ code: "NEWCOUPONCODE1"}, { code: "NEWCOUPONCODE2"}, { code: "NEWCOUPONCODE3" }]) {
    coupons {
      code
    }
    errors {
      key
      messages {
        attribute
        message
      }
    }
  }
}


You should replace YOURCOUPONID with the coupon ID you copied before, and also replace NEWCOUPONCODEX with the coupon codes you'd like to create.

Here's an example mutation that creates 3 codes from a base coupon with the ID 24:

mutation {
  createCoupons(discountId: 24, coupons: [{ code: "membersonly1"}, { code: "membersonly2"}, { code: "membersonly3" }]) {
    coupons {
      code
    }
    errors {
      key
      messages {
        attribute
        message
      }
    }
  }
}

Generate a mutation for a large number of coupons

If you need to create a large number of coupons, use the following form to generate a mutation that assigns unique names to your coupons.

Including random characters (letters and numbers) in your coupon codes ensures that members won't be able to guess other codes based on the one they got.

For example, if a member received the coupon code memberdiscount22, it would be easy for them to guess that memberdiscount21 and memberdiscount23 exist, and they might abuse that knowledge to get more discounts or to share those coupons with others who aren't entitled to a discount.

Review bulk coupon requirements and troubleshooting steps

If your coupon codes were created successfully, the result will show the successfully created codes inside the coupons array, and errors will show an empty array.

{
  "data": {
    "createCoupons": {
      "coupons": [
        {
          "code": "membersonly1"
        },
        {
          "code": "membersonly2"
        },
        {
          "code": "membersonly3"
        }
      ],
      "errors": []
    }
  }
}

Now, here's an example result in which some coupons failed to be created, while others succeeded:

{
  "data": {
    "createCoupons": {
      "coupons": [
        {
          "code": "membersonly4"
        },
        {
          "code": "membersonly5"
        },
        {
          "code": "membersonly6"
        }
      ],
      "errors": [
        {
          "key": "membersonly_7",
          "messages": [
            {
              "attribute": "code",
              "message": "Code is invalid."
            }
          ]
        },
        {
          "key": "membersonly1",
          "messages": [
            {
              "attribute": "code",
              "message": "Code is taken."
            }
          ]
        }
      ]
    }
  }
}

To troubleshoot a result like this, you should look at the error messages and then review our request again to make sure that the following requirements are met by all of our requested coupon codes:

Note that coupon codes are case-insensitive, so mycouponZ will fail to be created if mycouponz already exists.

Here are some valid and invalid examples for a base coupon with the code membersonly:

If some of your coupon codes were created successfully and others failed, there's no need to resubmit the ones that were successful — those have already been created. Fix the issues with the failed ones and resubmit them.

Manage your bulk coupon codes

After creating some bulk coupon codes, you'll see how many coupon codes are associated with it when you edit the base coupon.

Editing Bulk Coupon

You can access a more detailed breakdown of how your coupon has been used by clicking View coupon usage.

Purchase links with a pre-applied coupon code also work with coupon codes that were created in bulk.

Related help doc:

Can't find what you're looking for? We'd love to help! 💪

Send us a message through the orange chat bubble in the lower right corner of the page. You'll hear back within a few hours Monday - Friday. 😀