---
title: "How APRF Helps You Understand Your Email Reputation"
slug: what-is-aprf
description: "APRF is a new specification for mailbox reporting to help you know what happens to your emails after delivery."
image: https://cdn.resend.com/posts/what-is-aprf.jpg
created_at: "2026-08-20"
updated_at: "2026-08-20"
humans: ["phil-nash"]
featured: false
category: "guides"
---

There is a new standard for email deliverability feedback that could help you better understand your sending reputation. It's backed by contributors from Comcast, Google, and Iterable.

It's called *Aggregate Performance Reporting* (APRF) and is [currently a draft specification](https://datatracker.ietf.org/doc/draft-brotman-aggregate-performance-reporting/). If it is adopted it should prove key to understanding how your emails are performing with real users.

## What is APRF?

APRF is an aggregated feedback mechanism that tells senders two things:
1. **Classification:** where do mailbox providers place your emails
2. **Engagement:** how real users interact with your emails
 
Classification details whether your emails arrive in the inbox, the spam folder, or other inbox specific folders like the [Promotions tab](/blog/why-you-should-embrace-promotions-tab-gmail). Engagement is recorded as positive, negative, or neutral.

<Callout type="info">
<span className="font-bold">User engagement</span>
<div>
The spec doesn't define the user actions that are counted as positive, negative, or neutral as they could be considered "secret sauce" for a mailbox provider, but it does provide the following suggestions:

* positive: opening, clicking, or removing from the spam folder.
* negative: sending to spam, deleting without opening, unsubscribing.
* neutral: forwarding, filing into a normal folder.
</div>
</Callout>

Mailbox providers that support APRF will deliver a daily email containing a JSON report to an address that you [configure with DNS records](#how-do-you-set-up-aprf).

If you're already using [DMARC Reporting](/blog/how-to-read-a-dmarc-report), you're familiar with this type of reporting mechanism. APRF reports are similar but focus on classification and engagement.

## An example report

Reports are JSON documents that look like this:

```json
[
  {
    "header": {
      "version": 1,
      "source": "The Happy Mailbox Provider",
      "dkim_domain": "example.com",
      "dkim_selector": "selector",
      "report_start": 1787184000,
      "report_end": 1787270399,
      "contact_info": "reports@example.com",
      "extra_info": "",
      "sdi_used": "N/F"
    },
    "body": [
      {
        "classification": {
          "inbox": 100000,
          "unwanted": 100
        },
        "engagement": {
          "positive": 200,
          "negative": 100,
          "neutral": 20
        }
      }
    ]
  }
]
```

The report contains two basic sections:

- `header`: details about the mailbox provider that sent the report
- `body`: data for the reporting time period

The body further breaks into two sections:

1. `classification`: where the mailbox provider placed your emails  

    In the sample report, 100 emails landed in spam ("unwanted") and the rest were successfully delivered to the inbox.  

    <Callout type="insight">
    The spec suggests that these numbers are buckets defined by the provider and that the upper bound for the buckets is used as the value. In this example, if it says 100,000 emails landed in the inbox, that's the maximum figure it could be. The real number would fall somewhere below 100,000 but above the bucket below, which could be at 50,000. It's intentionally inaccurate, but still useful as a gauge for your email deliverability over time.
    </Callout>

2. `engagement`: what real users did with your emails

    These signals are also bucketed values, showing whether users took positive, negative, or neutral actions with emails. As discussed earlier, the spec doesn't define what those actions mean, but suggests examples as a good start.


**Provider-specific details**

For each of the classification and engagement sections, the provider can add information about the buckets and what they mean in the header's `extra_info` section.

**Key takeaways**

In general, if your emails are classified as "inbox" and getting mostly positive actions, you are doing well. If they are classified as "unwanted" and receiving negative actions, then there is work to do to protect your domain's reputation.

For more on the data and detail you can get from APRF reports check out SH Consulting's report on [setting up APRF for more than 100 domains](https://www.sh.consulting/blog/aprf-aggregate-performance-reporting-deployment-guide).

## How do you set up APRF?

APRF reports are sent to an email address that you configure with DNS.

In order to receive APRF reports, set up a DNS `TXT` record. The record name is derived from the DKIM signature used to sign your emails. The spec offers this example:

```text
DKIM-Signature: v=1;a=rsa-sha256;c=relaxed/relaxed;s=sel1;d=foo.example.org;...
```

The name of the TXT record is then generated from the `s=` and `d=` sections of the signature using this template: `<s>._aprf._domainkey.<d>`. With the example signature above, the TXT record would be named `sel1._aprf._domainkey.foo.example.org`.

The content of the TXT record should consist of a version and the address the report will be sent to, e.g. `v=APRFv1;rua=mailto:reports@example.org;`.

You can also add an `sdi` attribute which stands for "Signer-Defined Identifier". This defines a header name that will be used to segment the data in the report and a separator that will allow you to drill down into more fine-grained segments. 

With `sdi` included, your TXT record might look like:

```text
v=APRFv1;rua=mailto:reports@example.org;sdi=Segmentation,^
```

You can then include a `Segmentation` header in your email like `Segmentation:BusinessName^Region^Campaign`. The `^` character is used to split the segmentation options and the daily reports will then provide details for the segments. 

If you sent one email with the `Segmentation` header `BusinessName^Marketing` and another with the header `BusinessName^Transactional`, then for supporting mailboxes, your reports would include sections in the body for both segments:

```json
"body": [
  {
    "segment": ["BusinessName", "Marketing"],
    "classification": { "inbox": 10000, "unwanted": 500 },
    "engagement": { "positive": 300, "negative": 200, "neutral": 50 }
  },
  {
    "segment": ["BusinessName", "Transactional"],
    "classification": { "inbox": 200, "unwanted": 50 },
    "engagement": { "positive": 50, "negative": 20, "neutral": 0 }
  }
]
```

Segmenting the results like this is a useful addition and can help you to go deeper into the analysis, from comparing transactional and marketing emails to examining specific marketing campaigns.

## What this means for you

The reporting prioritizes bulk senders and provides an overall picture of the reception for your sending. 

As of writing, APRF is an [Internet-Draft specification](https://www.ietf.org/participate/ids/); it hasn't yet been adopted by an IETF working group. Comcast is already sending out APRF reports, however, so there is a live implementation and hope for more. While Google is also an author of this specification, Gmail isn't delivering reports yet. 

As the specification matures, that is something you could hope to see though. You can read more about the proposed standard in the [IETF draft specification](https://datatracker.ietf.org/doc/draft-brotman-aggregate-performance-reporting/).

**APRF is definitely worth watching.** Receiving reports of how users engage with your emails directly from the mailbox provider is invaluable, even if it is intentionally fuzzy. 

If you care about your email deliverability, getting these signals will help you to understand and maintain your reputation. While you wait for this to roll out further, we have plenty of other [tips to help improve your deliverability](https://resend.com/blog/top-10-email-deliverability-tips).
