AttachmentInfo

A file stored for an email. Only offloaded files are listed: attachments delivered inline in the payload, excluded or rejected ones, and a file whose synchronous upload failed have no entry.

CompanyEmailWebhookEUCompliance

Properties

Name Type Description
fileId string
filename string
contentType string
size integer Size in bytes
status string `pending`: still uploading. `completed`: available. `failed`: could not be stored. `expired`: the email reached the end of its retention.
failureReason stringnull Why storing failed. Set only when `status` is `failed`.
storage string Whether the file is in EmailConnect storage or in your own bucket.
storageConnectionName stringnull The name of your storage connection the file was stored through. Null for EmailConnect storage, and when the connection no longer exists.
downloadUrl string The tracked download URL on EmailConnect, as sent in the webhook payload.
createdAt string
expiresAt string When the email, and with it this file and these statistics, is deleted.
downloadCount integer Times the download link was fetched. Counts redirects issued, not files received.
lastDownloadAt stringnull When the download link was last fetched.
View JSON Schema on GitHub

JSON Schema

emailconnect-attachment-info-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/emailconnect/main/json-schema/emailconnect-attachment-info-schema.json",
  "title": "AttachmentInfo",
  "description": "A file stored for an email. Only offloaded files are listed: attachments delivered inline in the payload, excluded or rejected ones, and a file whose synchronous upload failed have no entry.",
  "x-generated": "2026-10-16",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/emailconnect-openapi.json#/components/schemas/AttachmentInfo",
  "type": "object",
  "required": [
    "fileId",
    "filename",
    "contentType",
    "size",
    "status",
    "failureReason",
    "storage",
    "storageConnectionName",
    "downloadUrl",
    "createdAt",
    "expiresAt",
    "downloadCount",
    "lastDownloadAt"
  ],
  "properties": {
    "fileId": {
      "type": "string"
    },
    "filename": {
      "type": "string"
    },
    "contentType": {
      "type": "string"
    },
    "size": {
      "type": "integer",
      "description": "Size in bytes"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "completed",
        "failed",
        "expired"
      ],
      "description": "`pending`: still uploading. `completed`: available. `failed`: could not be stored. `expired`: the email reached the end of its retention."
    },
    "failureReason": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "content-unreadable",
        "storage-unreachable",
        "storage-rejected",
        "internal"
      ],
      "description": "Why storing failed. Set only when `status` is `failed`."
    },
    "storage": {
      "type": "string",
      "enum": [
        "platform",
        "custom"
      ],
      "description": "Whether the file is in EmailConnect storage or in your own bucket."
    },
    "storageConnectionName": {
      "type": [
        "string",
        "null"
      ],
      "description": "The name of your storage connection the file was stored through. Null for EmailConnect storage, and when the connection no longer exists."
    },
    "downloadUrl": {
      "type": "string",
      "description": "The tracked download URL on EmailConnect, as sent in the webhook payload."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "expiresAt": {
      "type": "string",
      "format": "date-time",
      "description": "When the email, and with it this file and these statistics, is deleted."
    },
    "downloadCount": {
      "type": "integer",
      "description": "Times the download link was fetched. Counts redirects issued, not files received."
    },
    "lastDownloadAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "description": "When the download link was last fetched."
    }
  }
}

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/emailconnect-attachment-info"
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.