From 0565d9d3a11df59ae150780456f88f8b71bc1f91 Mon Sep 17 00:00:00 2001 From: dielduarte Date: Fri, 17 Jul 2026 19:19:02 -0300 Subject: [PATCH] docs: add segment contact metrics endpoints --- resend.yaml | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) diff --git a/resend.yaml b/resend.yaml index 1b75d78..55e543b 100644 --- a/resend.yaml +++ b/resend.yaml @@ -2055,6 +2055,69 @@ paths: application/json: schema: $ref: '#/components/schemas/RemoveSuppressionResponseSuccess' + /segments/metrics: + get: + tags: + - Segments + summary: Retrieve contact metrics across all segments + description: >- + Account-wide contact totals (all segments). A cumulative per-week + `timeseries` is opt-in via `include`. + parameters: + - name: include + in: query + required: false + description: >- + Add breakdowns. Repeat to select multiple (currently only + `timeseries`). Defaults to totals only. + schema: + type: array + items: + type: string + enum: + - timeseries + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetAudienceMetricsResponseSuccess' + /segments/{id}/metrics: + get: + tags: + - Segments + summary: Retrieve contact metrics for a segment + description: >- + Contact totals scoped to a single segment. A cumulative per-week + `timeseries` is opt-in via `include`. + parameters: + - name: id + in: path + required: true + schema: + type: string + format: uuid + description: The Segment ID. + - name: include + in: query + required: false + description: >- + Add breakdowns. Repeat to select multiple (currently only + `timeseries`). Defaults to totals only. + schema: + type: array + items: + type: string + enum: + - timeseries + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetSegmentMetricsResponseSuccess' webhooks: email.sent: post: @@ -6489,3 +6552,69 @@ components: format: date-time description: Timestamp indicating when the suppression was created. example: "2023-10-06T23:47:56.678Z" + SegmentMetricsTimeseriesPoint: + type: object + description: >- + Cumulative contact counts keyed by signup week (ISO week-start date). The + unsubscribed count uses the current flag, so it is "contacts by signup + week that are currently unsubscribed", not an unsubscribe timeline. + properties: + period: + type: string + description: ISO week-start date (YYYY-MM-DD). + example: '2026-07-06' + subscribed: + type: integer + example: 90 + unsubscribed: + type: integer + example: 10 + contacts: + type: integer + example: 100 + GetAudienceMetricsResponseSuccess: + type: object + properties: + object: + type: string + const: audience_metrics + description: The response object type. + all_contacts: + type: integer + example: 100 + subscribers: + type: integer + example: 90 + unsubscribers: + type: integer + example: 10 + timeseries: + type: array + description: Included only when `include=timeseries`. + items: + $ref: '#/components/schemas/SegmentMetricsTimeseriesPoint' + GetSegmentMetricsResponseSuccess: + type: object + properties: + object: + type: string + const: segment_metrics + description: The response object type. + segment_id: + type: string + format: uuid + example: e169aa45-1ecf-4183-9955-b1499d5701d3 + all_contacts: + type: integer + example: 100 + subscribers: + type: integer + example: 90 + unsubscribers: + type: integer + example: 10 + timeseries: + type: array + description: Included only when `include=timeseries`. + items: + $ref: '#/components/schemas/SegmentMetricsTimeseriesPoint'