Back to Blog
Feature Guides

How to Build a Weekly Cold Email Report with the PostPalMail API

A dashboard screenshot is not a report. This guide shows how to pull campaign stats from the PostPalMail API, calculate the rates that matter, and write a weekly report people actually read.

Mudassir Ali
Mudassir Ali
October 17, 2026 · 11 min read
How to Build a Weekly Cold Email Report with the PostPalMail API

Most cold email reporting is a screenshot of the dashboard pasted into an email on Friday afternoon. That works until someone asks how this week is doing compared to month or why the replies went down and no one can answer without spending an hour looking through data.

The PostPalMail API shows the numbers, from the dashboard. So, a short script or any no-code tool that can send web requests can get those numbers on a schedule. This guide explains which endpoints are important. It also shows how to take the counts and turn them into the rates that are worth looking at. It tells what a weekly report should have so that people actually read it.

What a Weekly Report Is For

A good report answers three questions: are things what changed since last week and what should happen next. Most reports try to answer a fourth which's how many metrics fit on one page and they end up answering none of the useful three.

So, keep it short. A handful of numbers with a sentence of interpretation beats a table of twenty. If you want a refresher on what each number can and can't tell you, our guide to cold email metrics covers it.

It also helps to decide who reads the report. One written for yourself can be a few lines. One written for a client needs plain language and a clear recommendation, because clients care about results rather than bounce rates.

The Endpoints You'll Use

Three endpoints do all of the work. The campaigns endpoint lists your campaigns. Shows their send stats. It paginates results using page and limit parameters and the limit can go up to 100. The analytics endpoint returns figures for a period, between 1 and 90 days and it also gives a daily series that you can chart. The account endpoint returns your plan, your credit balance, monthly usage and overall totals.

curl "https://postpalmail.com/api/v1/campaigns?limit=20" \

  -H "Authorization: Bearer YOUR_API_KEY"


curl "https://postpalmail.com/api/v1/analytics?days=7" \

  -H "Authorization: Bearer YOUR_API_KEY"

Authentication works the way as everywhere else in the API. Authentication uses a Bearer key from your API settings page. Authentication gives each 1,000 requests, per day. A weekly report needs a handful of calls so the limit will not get in your way. If you have read the walkthrough of the verification API, you will find this familiar.

Turning Raw Counts into Rates

Each campaign, in the response has a stats object that lists how many were sent, opened, clicked, bounced replied to and unsubscribed from. It already shows the open rate and click rate. The other rates are yours to calculate. Those are the ones that matter the most.

Rate

How to get it

Documentation example

Open rate

Provided (opens divided by sent)

68.4%

Click rate

Provided (clicks divided by sent)

18.8%

Reply rate

Replies divided by sent

1.8%

Bounce rate

Bounces divided by sent

0.6%

Unsubscribe rate

Unsubscribes divided by sent

0.3%

The final column comes from the example campaign in the documentation that sent 2,140 emails so it shows the math than an actual outcome. One point is easy to overlook: in that example the click rate is 402 clicks out of 2,140 emails sent which equals 18.8 percent. Many tools calculate clicks based on opens so make sure to look at the denominator before you compare numbers, between different systems.

What Goes in the Report

Resist the urge to include everything. These six items cover most weeks.

•       Volume: emails sent this week, next to your monthly usage from the account endpoint.

•       Reply rate, with last week's figure beside it. This is the headline number.

•       Bounce rate, flagged if it rose.

•       Unsubscribe rate, as a quick check on targeting.

•       The strongest and weakest campaign of the week, with one honest guess about why.

•       One decision for next week, written as a sentence rather than a hope.

Opens are missing from that list on purpose. They're still worth a line as context. Making them the headline invites, over-reading, which the metrics guide explains.

Putting It Together

The documented campaigns endpoint accepts page and limit; therefore, there is no date filter to lean on. The simple approach is to fetch campaigns and keep the campaigns whose sent at date is, within the week you are reporting on. After that call analytics with days set to 7 to obtain the totals and the daily series. Then call the account endpoint to retrieve usage.

From there it's math. Figure out the three rates check them against the numbers from the week that you have saved and put the results where your team looks for information whether that’s a row in a spreadsheet, a message in a chat or an email. Run it every week using whatever scheduler you already use. In total that's three to five requests each time, below the daily limit.

Keeping a history

The analytics endpoint can show data for up to 90 days at once. If you want to compare this quarter to the quarter you will need to record the numbers from each week yourself. A simple spreadsheet with one row for each week will do. Put the date the number of emails sent the reply rate, the bounce rates the unsubscribe rate and a short note, in that row.

After ten weeks you can see trends that no single report shows. For example, you may notice a rise, in bounces that never seemed alarming in any single week. That slow drift is exactly the kind of problem a screenshot habit miss.

A Sample Report, With Invented Numbers

Here is what the finished product might look like. Every number below is made up to show the format.

Metric

Last week

This week

Note

Emails sent

420

480

Volume up about 14%

Reply rate

1.9%

2.3%

Tighter targeting on two campaigns

Bounce rate

0.9%

0.7%

List cleaned before the send

Unsubscribe rate

0.4%

0.3%

No change worth acting on

The decision line for next week might read: keep the new targeting, and test a softer closing line on the weakest campaign, using the ideas in our piece on cold email CTAs. That is the whole report. It takes a minute to read, which is exactly why it gets read.

A Note on Small Numbers

Weekly volumes for freelancers and small teams are not high and small changes in numbers can make big differences. For example, with 480 emails sent 11 replies give a 2.3 percent reply rate while 12 replies jump to 2.5 percent. That one extra reply moved the number. Nothing in the strategy changed.

Don’t rush to conclusions based on one week. Instead look at the trend, over three or four weeks. Let a week’s change be a signal to investigate, not a final judgment.

When the Numbers Look Wrong

A report is only helpful if it shows something. A growing bounce rate usually means the list needs checking and making sure addresses are correct before sending is the thing to try. If replies go down but opens stay the same the message or the request probably needs improvement. If unsubscribes go up it shows the targeting is the problem more, than the writing. In every situation change one thing then look at what weeks report says.

If You'd Rather Skip the API

The dashboard already shows opens, clicks and bounces. So, none of this is needed for use. The API route earns its place when you report to clients every week run accounts or want a history that you control. The features page lists the tracking tools.

Conclusion

Weekly report works best when it stays short. Weekly report stays comparable, from one week to the next. Ends with a decision. API takes care of collecting numbers. API leaves me with the part: deciding what to change.

Want to build your own? Create your PostPalMail account, read the developer documentation for the full reference, and see which plan fits your volume on the pricing page.

Disclaimer

This article is for info only. It talks about the PostPalMail API as it was documented when this was written. Things like endpoints, limits and what the responses include might change over time. Always check the official developer docs for the info. The numbers and examples, in the report are made up. Taken from sample docs. They’re not performance benchmarks.

Frequently Asked Questions
Yes. The campaigns endpoint shows each campaign with sent opens, clicks, bounces, replies and unsubscribes. It also includes open. Click rates. The analytics endpoint adds numbers and a daily breakdown for, up to 90 days.
The documented response includes open rate and click rate. Reply, bounce and unsubscribe rates can be calculated from the counts, for example replies divided by emails sent.
The analytics endpoint accepts a window of 1 to 90 days and returns totals along with a daily chart series.
Usually a few: one or two for campaigns one for analytics and one for the account. The limit is 1,000 requests per day, per key so a weekly report falls below requests.
The API route needs some scripting or a tool that can send web requests. The dashboard shows opens, clicks and bounces without any setup.
Mudassir Ali
Written by
Mudassir Ali

Mudassir Ali is the Founder & CEO of PostPalMail and PostPal Solution, with experience in SaaS, web development and digital outreach.

LinkedIn Profile