Skip to content

Verify your Lemon Squeezy subscribers before you send

Integration E-commerce and payments

Lemon Squeezy email verification in three steps: export your subscribers, verify the file in PricklyMails, then archive the addresses to remove.

There is no native Lemon Squeezy connector: you export the list, PricklyMails verifies it, and you bring the result back into Lemon Squeezy. New addresses can go through the API before they ever reach Lemon Squeezy.

Verify for free

Step by step

Clean your list in three steps

  1. In Lemon Squeezy

    Export your subscribers from Lemon Squeezy

    1. In your Lemon Squeezy dashboard, go to Email then Subscribers.
    2. Check that Segment is set to All Subscribers, the segment that holds everyone subscribed to your store.
    3. Click Export.
    4. Confirm the export in the Export All Subscribers window.
    5. Once the export is ready, open the email Lemon Squeezy sends you and download the CSV file from its link.

    Tip

    The file has a status column. To verify only your active subscribers, keep the rows marked subscribed: Lemon Squeezy has already set aside the addresses marked invalid_email or bounced. Then keep the email column alone in a spreadsheet before moving on.

    SourceLemon Squeezy's official help center
  2. In PricklyMails

    Verify the file in PricklyMails

    1. In the dashboard, open Batches and click New batch.
    2. Drop the file you exported from Lemon Squeezy: a .csv or .txt with one address per line, no header row and no quotes. A header row would count as an address in the estimate, though it is never billed, and a quoted address would not be verified: the report lists both as malformed. You can also paste the list.
    3. The dashboard counts the addresses and shows the estimated cost in tokens before anything is sent, then you click Submit batch. A batch holds at least 20 addresses, and your plan sets the largest list it can hold.
    4. The list is verified in the background. Once the batch is done, open it and click Download report: you get a CSV with a row for each address of your file, giving its verdict, its reason, its score and its recommendation, with the dashboard's labels.

    Note

    Download the report from the browser that sent the list: that browser is what keeps the addresses, for the 16 most recent batches at most. Our servers, in Germany, only keep a one-way fingerprint of each one.
    What the report says

    Every address gets a recommendation: the action to take. The report writes it with the dashboard's label; the API returns a short form of it.

    Send
    The address is valid, or hosted by a large provider that accepts every address without confirming any. Send as usual.
    Review
    A domain that accepts any address (catch-all), a generic address such as contact@, a full mailbox, or a server that never answered, or refused to. Take a look before you send.
    Remove
    The address does not exist, its domain cannot receive mail, or it is disposable, mistyped or malformed. Take it out.

    Note

    A malformed address is never verified: the batch counts it under "Malformed addresses", and the report still lists it, with the verdict "Invalid", the reason "Malformed address" and the recommendation "Remove", so you take it out of Lemon Squeezy with the others. A duplicate, counted under "Duplicates removed", appears only once.

    Behind each recommendation sit a verdict (Valid, Risky, Invalid or Not verifiable), a reason and a score from 0 to 100, each in its own column of the report. When a server never answers, the address comes back "Not verifiable" and the checks that got no answer are refunded.

  3. In Lemon Squeezy

    Bring the result back into Lemon Squeezy

    Open the report in a spreadsheet and filter the Recommendation column.

    Remove

    They get archived: Lemon Squeezy no longer sends them marketing emails, and they move to the Archived segment.

    Lemon Squeezy's docs describe archiving a customer through its API, by setting the customer's email marketing status to archived. Each request needs the customer's ID, which a search by email returns.

    1. In your Lemon Squeezy dashboard, go to Settings then API.
    2. Create an API key in live mode, then copy it: Lemon Squeezy shows it only once.
    3. For each address to remove, send the List all customers request with filter[email] set to the address, and note the id of the customer it returns.
    4. Send the Update a customer request for that id, with the status attribute set to archived.
    5. In Email then Subscribers, set Segment to Archived to check that the addresses are there.
    Review

    They deserve a look before your next broadcast. Find each one on the Subscribers page, whose subscriber actions menu lets you correct a name or an email address. Archive the ones you drop the same way as the addresses to remove.

    Send

    They stay subscribed: nothing to do.

    Tip

    Archiving takes two requests per address, and the API accepts up to 300 calls per minute: for a long list, a script that paces its requests stays under that limit.

    SourceLemon Squeezy's official help center

Verify each address before it reaches Lemon Squeezy

Does your signup form or backend create customers in Lemon Squeezy through its API, with the Create a customer (opens in a new tab) call? Ask PricklyMails first. If the recommendation is remove, don't create the customer.

One call starts the verification and already flags a likely typo, a second one reads the verdict. Depending on your plan, a signed webhook can also send it to you as soon as it's ready.

Request
curl -s https://api.pricklymails.com/api/verify \
  -H "Authorization: Bearer pm_live_9f3a..." \
  -H "Content-Type: application/json" \
  -d '{ "email": "ana.silva@gmail.con" }' \
  | jq '{job_uuid, suggestion}'
Response
{
  "job_uuid": "8f1c2a9e-4b7d-4e2a-9c61-3d5f0b7a2e18",
  "suggestion": "ana.silva@gmail.com"
}
Request
curl -s https://api.pricklymails.com/api/verify/$JOB_UUID \
  -H "Authorization: Bearer pm_live_9f3a..." \
  | jq '.verifications[0] | {status, reason, score, recommendation}'
Response
{
  "status": "invalid",
  "reason": "no_mx_records",
  "score": 0,
  "recommendation": "remove"
}
Read the API docs

Frequently asked questions

Lemon Squeezy already validates addresses, so why verify first?

Lemon Squeezy runs an email validity check on all new customer and subscriber addresses, in the background, and marks an address with a low enough score as invalid, which keeps it out of your broadcasts. Its docs describe that check for new addresses; an address that stops receiving mail later is marked bounced only after a hard bounce, once an email has gone out. Verifying your active subscribers before a broadcast takes those addresses out before they bounce.

SourceLemon Squeezy's official help center

Does the export include my customers, or only my newsletter subscribers?

Both. Lemon Squeezy adds every customer who buys a product from your store to your subscribers, beside the addresses added by hand or captured by a signup form, and the subscriber export covers all of them. The orders export, from the Export button of the Orders page, also holds each buyer's address in its user_email column, but it lists orders rather than people, and Lemon Squeezy emails it to the store owner's address.

SourceLemon Squeezy's official help center

Should I verify a list before importing it into Lemon Squeezy?

Lemon Squeezy sets no limit on how many subscribers you import, but upgrades your email marketing plan automatically once you have more subscribers than its limit, and lets you send up to ten times that limit in emails each calendar month. Verifying a list before the import keeps the addresses that cannot receive mail out of your subscribers, and out of that count.

SourceLemon Squeezy's official help center

Does PricklyMails connect to Lemon Squeezy directly?

No, there is no native connector: you go through a file export, as above. You can also call the PricklyMails API from your own code before an address reaches Lemon Squeezy.

These trademarks belong to their respective owners. Naming them implies no partnership.

Check your list before your next send.

1,000 tokens free when you sign up, no credit card. After that, you only pay for answers.