JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/mailcheer-com/json-schema/mailcheer-com-email-detail-schema.json",
"title": "EmailDetail",
"x-generated": "2026-10-31",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/mailcheer-com-openapi.json#/components/schemas/EmailDetail",
"allOf": [
{
"$ref": "#/$defs/Email"
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"queued",
"sent",
"delivered",
"opened",
"bounced",
"complained",
"failed"
],
"description": "`queued` on acceptance, then `sent`, `delivered`, `opened`, `bounced`, `complained` or `failed` as our provider reports back. Expect a few seconds before `delivered`. With several addresses, it follows the recipients in `to` only: a copy (`cc`, `bcc`) that bounces does not change it — read `recipients` for each address."
},
"error": {
"type": [
"string",
"null"
],
"description": "The reason for the refusal, when `status` is `bounced`, `complained` or `failed`. `null` otherwise."
},
"tags": {
"type": [
"object",
"null"
],
"description": "The send's tags, after forbidden characters were rewritten.",
"additionalProperties": {
"type": "string"
}
},
"sent_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"delivered_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"opened_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "The first open, bots included."
},
"open_count": {
"type": "integer",
"description": "How many times the tracking pixel was loaded. Apple and Gmail preload images: this says attention, not readings."
},
"human_opened_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "The first open by a person — `null` as long as only bots have opened."
},
"track_opens": {
"type": "boolean",
"description": "Whether this email carried an open-tracking pixel. `false`: `opened_at` stays `null` because opens are not tracked, not because nobody opened."
},
"track_clicks": {
"type": "boolean",
"description": "Whether this email's links were tracked (`track_clicks`)."
},
"click_count": {
"type": "integer",
"description": "How many times a tracked link was clicked, bots included."
},
"clicked_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "The first click, bots included."
},
"human_clicked_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "The first click by a person — `null` as long as only bots have clicked."
},
"recipients": {
"type": "array",
"description": "Every address of the email — `to`, then `cc`, then `bcc` — with what Amazon reported for it. `status` above follows `to` only; here each copy has its own state. Opens are not per address: the tracking pixel is the same in every copy.",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"to",
"cc",
"bcc"
]
},
"status": {
"type": "string",
"enum": [
"queued",
"sent",
"delivered",
"bounced",
"complained",
"failed"
],
"description": "`sent` until Amazon reports on this address, then `delivered`, `bounced` or `complained`. `queued` or `failed` while the email itself is."
},
"reason": {
"type": [
"string",
"null"
],
"description": "The bounce type Amazon reports (`Permanent`, `Transient`, `Undetermined`) when `status` is `bounced`. `null` otherwise."
}
}
}
}
}
}
],
"$defs": {
"Email": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier to pass back to `GET /api/v1/emails/{id}` to learn about delivery."
},
"object": {
"type": "string",
"const": "email"
},
"from": {
"type": "string"
},
"to": {
"type": "array",
"items": {
"type": "string"
},
"description": "Always an array in the response, even if you passed a single address."
},
"subject": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/mailcheer-com-email-detail"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.