{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/sendgrid/main/json-schema/sendgrid-singlesends-response-schema.json", "title": "SinglesendsResponse", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/sendgrid-stats-api-openapi.yml#/components/schemas/SinglesendsResponse", "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "This is the ID of the Single Send you require stats for.", "format": "uuid" }, "ab_variation": { "type": "string", "default": "a14dcc63-d651-4c57-9826-4a3705f5c78d", "description": "This is the A/B variation of the Single Send stat returned. If the `group_by` parameter doesn't include `ab_variation` in the request, then the value is \"all\".", "format": "uuid" }, "ab_phase": { "type": "string", "default": "all", "description": "This is the A/B phase of the Single Send stat returned. If the `group_by` parameter doesn't include `ab_phase` in the request, then the value is \"all\".", "$ref": "#/$defs/AbPhase" }, "aggregation": { "type": "string", "description": "This describes the time unit to which the stat is rolled up. It is based on the `aggregated_by` parameter included in the request. It can be \"total\" or the date (in YYYY-MM-DD format) the stats are for.", "default": "total" }, "stats": { "$ref": "#/$defs/Metrics" } }, "required": [ "id", "ab_variation", "ab_phase" ] } }, "_metadata": { "$ref": "#/$defs/Metadata" } }, "required": [ "results", "_metadata" ], "$defs": { "AbPhase": { "type": "string", "enum": [ "send", "test", "all" ] }, "Metadata": { "title": "metadata", "type": "object", "properties": { "prev": { "type": "string", "format": "uri", "description": "The URL of the previous page of results. If this field isn't present, you're at the start of the list." }, "self": { "type": "string", "format": "uri", "description": "The URL of the current page of results." }, "next": { "type": "string", "format": "uri", "description": "The URL of the next page of results. If this field isn't present, you're at the end of the list." }, "count": { "type": "number", "description": "The number of items in the entire list, i.e., across all pages." } } }, "Metrics": { "title": "metrics", "type": "object", "properties": { "bounce_drops": { "type": "integer" }, "bounces": { "type": "integer" }, "clicks": { "type": "integer" }, "delivered": { "type": "integer" }, "invalid_emails": { "type": "integer" }, "opens": { "type": "integer" }, "requests": { "type": "integer" }, "spam_report_drops": { "type": "integer" }, "spam_reports": { "type": "integer" }, "unique_clicks": { "type": "integer" }, "unique_opens": { "type": "integer" }, "unsubscribes": { "type": "integer" } }, "required": [ "bounce_drops", "bounces", "clicks", "delivered", "invalid_emails", "opens", "requests", "spam_report_drops", "spam_reports", "unique_clicks", "unique_opens", "unsubscribes" ] } } }