Demiton · Schema

estimating_email contract v1

Emails in your estimating mailbox, filed against the opportunity they concern.

CompanyConstructionCivil EngineeringProject ManagementComplianceMCPArtificial IntelligenceOpen Contracting

Properties

Name Type Description
id string Graph message id; the shelf's identity and dedup key.
from object Graph sender block (`emailAddress.name`, `emailAddress.address`).
subject string Subject line as received.
user_id number The tenant identity that made the correction.
email_id string The harvested message's `id` the correction is about.
polarity string `suppress`, `promote` or `except`.
confidence number Hand-tuned classifier confidence.
attachments array Attachment metadata only: `id`, `name`, `content_type`, `size`.
auto_create boolean Whether the classification cleared the org's auto-create threshold with a folder name and an attachment.
reason_code string The selected reason, from a per-polarity vocabulary.
received_at string When the mailbox received the message.
company_guess string Best-effort company name from the sender domain; null for public webmail domains.
source_folder string Folder path the message was harvested from (`Inbox`, `Local Council/Tweed Shire`, …).
candidate_kind string The ingress verdict: `new_opportunity`, `chain_update` or `noise`.
conversation_id string Graph conversation/thread key.
has_attachments boolean Whether the message carried attachments.
folder_name_suffix string Proposed folder suffix for a new numbered opportunity folder.
portal_link_detected boolean Whether a procurement-portal link was detected, meaning documents are not attached.
classification_reason string Why the verdict came out that way, in one sentence.
description_candidate string Cleaned subject as the candidate opportunity description.
View JSON Schema on GitHub

JSON Schema

demiton-io-estimating_email-v1-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/estimating_email/v1.json",
  "title": "estimating_email contract v1",
  "type": "object",
  "required": [
    "attachments",
    "conversation_id",
    "email_id",
    "from",
    "has_attachments",
    "id",
    "polarity",
    "reason_code",
    "received_at",
    "subject"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Graph message id; the shelf's identity and dedup key.",
      "x-demiton-requiredness": "required"
    },
    "from": {
      "type": "object",
      "description": "Graph sender block (`emailAddress.name`, `emailAddress.address`).",
      "x-demiton-requiredness": "required"
    },
    "subject": {
      "type": "string",
      "description": "Subject line as received.",
      "x-demiton-requiredness": "required"
    },
    "user_id": {
      "type": "number",
      "description": "The tenant identity that made the correction.",
      "x-demiton-requiredness": "tenant-specific"
    },
    "email_id": {
      "type": "string",
      "description": "The harvested message's `id` the correction is about.",
      "x-demiton-requiredness": "required"
    },
    "polarity": {
      "type": "string",
      "description": "`suppress`, `promote` or `except`.",
      "x-demiton-requiredness": "required"
    },
    "confidence": {
      "type": "number",
      "description": "Hand-tuned classifier confidence.",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "0–1"
    },
    "attachments": {
      "type": "array",
      "description": "Attachment metadata only: `id`, `name`, `content_type`, `size`.",
      "x-demiton-requiredness": "required"
    },
    "auto_create": {
      "type": "boolean",
      "description": "Whether the classification cleared the org's auto-create threshold with a folder name and an attachment.",
      "x-demiton-requiredness": "optional"
    },
    "reason_code": {
      "type": "string",
      "description": "The selected reason, from a per-polarity vocabulary.",
      "x-demiton-requiredness": "required"
    },
    "received_at": {
      "type": "string",
      "description": "When the mailbox received the message.",
      "x-demiton-requiredness": "required",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "company_guess": {
      "type": "string",
      "description": "Best-effort company name from the sender domain; null for public webmail domains.",
      "x-demiton-requiredness": "optional"
    },
    "source_folder": {
      "type": "string",
      "description": "Folder path the message was harvested from (`Inbox`, `Local Council/Tweed Shire`, …).",
      "x-demiton-requiredness": "optional"
    },
    "candidate_kind": {
      "type": "string",
      "description": "The ingress verdict: `new_opportunity`, `chain_update` or `noise`.",
      "x-demiton-requiredness": "optional"
    },
    "conversation_id": {
      "type": "string",
      "description": "Graph conversation/thread key.",
      "x-demiton-requiredness": "required"
    },
    "has_attachments": {
      "type": "boolean",
      "description": "Whether the message carried attachments.",
      "x-demiton-requiredness": "required"
    },
    "folder_name_suffix": {
      "type": "string",
      "description": "Proposed folder suffix for a new numbered opportunity folder.",
      "x-demiton-requiredness": "optional"
    },
    "portal_link_detected": {
      "type": "boolean",
      "description": "Whether a procurement-portal link was detected, meaning documents are not attached.",
      "x-demiton-requiredness": "optional"
    },
    "classification_reason": {
      "type": "string",
      "description": "Why the verdict came out that way, in one sentence.",
      "x-demiton-requiredness": "optional"
    },
    "description_candidate": {
      "type": "string",
      "description": "Cleaned subject as the candidate opportunity description.",
      "x-demiton-requiredness": "optional"
    }
  },
  "x-demiton-register-type": "estimating_email",
  "x-demiton-contract-version": "1.0.3",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [
    {
      "axis": "financial_period",
      "requirement": "required",
      "role": "context"
    },
    {
      "axis": "customer",
      "requirement": "optional",
      "role": "context"
    }
  ],
  "x-demiton-measures": [],
  "x-demiton-provenance": {
    "standards": [
      {
        "code": "AS/NZS ISO 9001:2016",
        "title": "Quality management systems - Requirements (AU/NZ adoption of ISO 9001:2015)",
        "access": "paywalled_secondary",
        "clause": "7.5; 10.2",
        "region": "Australia",
        "edition": "2016 (ISO 9001:2026 expected 16 Sep 2026)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Privacy Act 1988 (Cth)",
        "title": "Privacy Act 1988 and the Australian Privacy Principles",
        "access": "public_summary",
        "region": "Australia",
        "edition": "No. 119, 1988 (as amended)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "ISO 19650-1:2018 / ISO 19650-2:2018",
        "title": "Information management using BIM - Part 1 (AS ISO 19650.1:2019 identical)",
        "access": "paywalled_secondary",
        "region": "International",
        "edition": "2018",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Privacy Act 2020 (NZ)",
        "title": "Privacy Act 2020 and the information privacy principles",
        "access": "public_summary",
        "region": "New Zealand",
        "edition": "2020",
        "checked_on": "2026-09-14"
      },
      {
        "code": "UK GDPR / DPA 2018",
        "title": "UK GDPR and Data Protection Act 2018",
        "access": "public_summary",
        "region": "United Kingdom",
        "edition": "DPA 2018 c. 12 (as amended)",
        "checked_on": "2026-09-14"
      }
    ]
  },
  "description": "Emails in your estimating mailbox, filed against the opportunity they concern.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/estimating_email/",
  "x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}

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/demiton-io-estimating_email-v1"
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.