Cherami · Schema

SentDetail

CompanyEmailAI AgentsMCPWebhookMessagingEmail API

Properties

Name Type Description
id string Cherami resource ID.
inbox_id string Cherami resource ID.
created_at string UTC timestamp with milliseconds.
recipient_count integer
status string
provider_message_id object Message-ID the provider assigned when it accepted the message.
error_code object Reason code for a rejected or unknown outcome, such as E_RECIPIENT_SUPPRESSED or acceptance_unknown.
thread_id object
in_reply_to object
labels array
reply_text object New text without quoted history. Empty: there is none. Null: it couldn't be extracted; read submission.
submission object
View JSON Schema on GitHub

JSON Schema

cherami-to-sent-detail-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/cherami-to/json-schema/cherami-to-sent-detail-schema.json",
  "title": "SentDetail",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/cherami-to-sending-api-openapi.yml#/components/schemas/SentDetail",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Cherami resource ID."
    },
    "inbox_id": {
      "type": "string",
      "description": "Cherami resource ID."
    },
    "created_at": {
      "type": "string",
      "description": "UTC timestamp with milliseconds.",
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
    },
    "recipient_count": {
      "type": "integer",
      "minimum": 0
    },
    "status": {
      "type": "string",
      "enum": [
        "accepted",
        "rejected",
        "unknown"
      ]
    },
    "provider_message_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Message-ID the provider assigned when it accepted the message."
    },
    "error_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Reason code for a rejected or unknown outcome, such as E_RECIPIENT_SUPPRESSED or acceptance_unknown."
    },
    "thread_id": {
      "anyOf": [
        {
          "type": "string",
          "description": "Cherami resource ID."
        },
        {
          "type": "null"
        }
      ]
    },
    "in_reply_to": {
      "anyOf": [
        {
          "type": "string",
          "description": "Cherami resource ID."
        },
        {
          "type": "null"
        }
      ]
    },
    "labels": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "reply_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "New text without quoted history. Empty: there is none. Null: it couldn't be extracted; read submission."
    },
    "submission": {
      "$ref": "#/$defs/Submission"
    }
  },
  "required": [
    "id",
    "inbox_id",
    "created_at",
    "recipient_count",
    "status",
    "provider_message_id",
    "error_code",
    "thread_id",
    "in_reply_to",
    "labels",
    "reply_text",
    "submission"
  ],
  "$defs": {
    "Mailbox": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "description": "Bare address such as alex@example.com: ASCII, at most 254 characters and 64 before the @.",
          "maxLength": 254
        },
        "name": {
          "type": "string",
          "description": "Optional name; blank means none. At most 256 UTF-8 bytes after trimming, without control characters.",
          "x-max-utf8-bytes": 256
        }
      },
      "required": [
        "address"
      ],
      "additionalProperties": false
    },
    "StoredAttachment": {
      "type": "object",
      "properties": {
        "filename": {
          "type": "string",
          "description": "At most 255 UTF-8 bytes, without control characters, slashes or backslashes.",
          "minLength": 1,
          "x-max-utf8-bytes": 255
        },
        "type": {
          "type": "string",
          "description": "MIME type without parameters.",
          "maxLength": 127,
          "pattern": "^[A-Za-z0-9!#$&^_.+-]+/[A-Za-z0-9!#$&^_.+-]+$"
        },
        "content": {
          "type": "string",
          "description": "The file's bytes as padded base64, without line breaks.",
          "contentEncoding": "base64",
          "pattern": "^[A-Za-z0-9+/]*={0,2}$"
        },
        "disposition": {
          "type": "string",
          "enum": [
            "attachment",
            "inline"
          ]
        },
        "contentId": {
          "type": "string",
          "description": "Content-ID of an inline file carried over from a forwarded message."
        }
      },
      "required": [
        "filename",
        "type",
        "content",
        "disposition"
      ]
    },
    "Submission": {
      "type": "object",
      "properties": {
        "to": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "#/$defs/Mailbox"
              },
              {
                "type": "string",
                "description": "Plain address string, as some older messages store it."
              }
            ]
          }
        },
        "cc": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "#/$defs/Mailbox"
              },
              {
                "type": "string",
                "description": "Plain address string, as some older messages store it."
              }
            ]
          }
        },
        "bcc": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "#/$defs/Mailbox"
              },
              {
                "type": "string",
                "description": "Plain address string, as some older messages store it."
              }
            ]
          }
        },
        "subject": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "html": {
          "type": "string"
        },
        "attachments": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/StoredAttachment"
          }
        },
        "from": {
          "oneOf": [
            {
              "$ref": "#/$defs/Mailbox"
            },
            {
              "type": "string",
              "description": "Plain address string, as some older messages store it."
            }
          ]
        },
        "headers": {
          "type": "object",
          "properties": {
            "In-Reply-To": {
              "type": "string"
            },
            "References": {
              "type": "string"
            }
          },
          "required": [
            "In-Reply-To",
            "References"
          ]
        }
      },
      "required": [
        "from",
        "to",
        "cc",
        "bcc",
        "subject",
        "text",
        "attachments"
      ],
      "description": "What was sent, including the Sent via Cherami line."
    }
  }
}

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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/cherami-to-sent-detail"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.