> ## Documentation Index
> Fetch the complete documentation index at: https://docs.photon.codes/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use Stable documentation by default. Honor an explicit Beta request or a URL under /docs/beta/. If the requested version conflicts with the installed CLI package or API origin, clarify the target before writing integration code.
> Pages under /docs/beta/ document Beta; other product pages document Stable. Keep the CLI package, commands, API origin, and credentials within the selected version. State the documentation version in your answer.
> For MCP search, always pass version: Stable or version: Beta. Unfiltered search mixes both versions. For filesystem reads, keep Beta queries under /beta/ and exclude /beta/ from Stable queries; discover paths before reading them.
> The public docs base is https://photon.codes/docs. Convert MCP page paths to public URLs under that base, preserving /beta/ when present. Read https://photon.codes/docs/skill.md for version selection and https://photon.codes/docs/llms.txt for the version indexes.

# Get email delivery metrics

> Get email delivery metrics: getEmailDeliveryMetrics in the TypeScript, Python, Rust and Go clients.

`GET /v1/projects/{id}/platforms/email/metrics`

Reads cached supplementary email series for the exact Project and rolling day or week. Coverage is eligible single-recipient messages; multi-recipient and simulator traffic is excluded. Observed complaints include reported feedback only. Missing data is distinct from zero. Original timestamps and availability are preserved; freshness describes retrieval, not complete event coverage. These series are not complete recipient totals, billing totals or Photon reputation rates. This read never queries the delivery provider or authorizes sending. Requires platforms:read for the path Project.

**TypeScript**

```typescript TypeScript theme={null}
photon.projects.platforms.getEmailDeliveryMetrics(input: GetEmailDeliveryMetricsInput, options?: RequestOptions): Promise<GetEmailDeliveryMetricsOutput>
```

**Python**

```python Python theme={null}
photon.projects.platforms.get_email_delivery_metrics(input: GetEmailDeliveryMetricsInput) -> models.EmailDeliveryMetrics
```

**Rust**

```rust Rust theme={null}
client.get_email_delivery_metrics(id: String, params: Option<GetEmailDeliveryMetricsParams>).await -> Result<ResponseValue<types::EmailDeliveryMetrics>, Error<GetEmailDeliveryMetricsError>>
```

**Go**

```go Go theme={null}
client.Projects.Platforms.GetEmailDeliveryMetrics(ctx context.Context, params *GetEmailDeliveryMetricsParams, opts ...RequestOption) (*EmailDeliveryMetrics, error)
```

```typescript TypeScript theme={null}
import { Photon } from "@photon-ai/api";

const photon = new Photon({
  headers: { Authorization: `Bearer ${process.env.PHOTON_API_TOKEN}` },
});
const result = await photon.projects.platforms.getEmailDeliveryMetrics({
  path: {
    id: "id",
  },
});
```

```python Python theme={null}
import os

from photon_api import Photon
from photon_api.rpc_generated import GetEmailDeliveryMetricsInput

photon = Photon(headers={"Authorization": f"Bearer {os.environ['PHOTON_API_TOKEN']}"})
result = photon.projects.platforms.get_email_delivery_metrics(
    GetEmailDeliveryMetricsInput.model_validate({
        "path": {
            "id": "id",
        },
    })
)
```

```rust Rust theme={null}
use photon_ai_api::{Credential, PhotonClientBuilder, SecretString};

let token = std::env::var("PHOTON_API_TOKEN")?;
let client = PhotonClientBuilder::new()
    .credential("accountServiceKey", Credential::Bearer(SecretString::from(token)))
    .build()?;
let result = client
    .get_email_delivery_metrics("id".to_owned(), None)
    .await
    .map_err(|error| format!("{error:?}"))?
    .into_inner();
```

```go Go theme={null}
import (
	"context"
	"os"

	photonapi "github.com/photon-hq/api/packages/go"
)

ctx := context.Background()
client := photonapi.NewClient(photonapi.WithAPIKey(os.Getenv("PHOTON_API_TOKEN")))
result, err := client.Projects.Platforms.GetEmailDeliveryMetrics(ctx, &photonapi.GetEmailDeliveryMetricsParams{
	ID: "id",
})
if err != nil {
	return err
}
_ = result
```

```json 200 theme={null}
{
  "availability": "available",
  "collectedAt": "2026-01-01T00:00:00Z",
  "complaintVisibility": "reported_feedback_only",
  "coverage": "eligible_single_recipient_messages",
  "freshness": "current",
  "interval": {
    "end": "2026-01-01T00:00:00Z",
    "start": "2026-01-01T00:00:00Z"
  },
  "period": "day",
  "readAt": "2026-01-01T00:00:00Z",
  "series": [
    {
      "metric": "sent",
      "points": [
        {
          "at": "2026-01-01T00:00:00Z",
          "count": 0
        }
      ],
      "status": "available",
      "unit": "messages"
    }
  ],
  "source": "supplementary_delivery"
}
```

## Parameters

**id** `string` *required*

**period** `EmailDeliveryMetricsPeriodParameter`

## Returns

**`200`** Cached supplementary metrics with explicit coverage and freshness. EmailDeliveryMetrics

**availability** `EmailDeliveryMetricsAvailability` *required*

**collectedAt** `string (date-time)`

**complaintVisibility** `"reported_feedback_only"` *required*

**coverage** `"eligible_single_recipient_messages"` *required*

**freshness** `EmailDeliveryMetricsFreshness` *required*

**interval** `EmailDeliveryMetricsInterval`

**period** `EmailDeliveryMetricsPeriod` *required*

**readAt** `string (date-time)` *required*

**series** `array of EmailDeliveryMetricsSeries` *required*

**source** `"supplementary_delivery"` *required*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.