Demiton · Schema

site_diary contract v1

Daily site diaries: delays, weather, productivity, variations.

CompanyConstructionCivil EngineeringProject ManagementComplianceMCPArtificial IntelligenceOpen Contracting

Properties

Name Type Description
asset integer The plant or vehicle the diary records. Declared an INTEGER because Assignar's asset_id is numeric where it is populated at all.
tasks array The task(s) selected for the day.
delays array Delay reasons and their stated duration.
worker integer The worker who authored / is the subject of the diary. Declared an INTEGER because Assignar's worker_id is numeric.
content string The composed Q&A narrative - the semantic-search payload.
project integer The project the diary scopes. Optional because many live diaries carry no linked project. Declared an INTEGER because Assignar's project_id is numeric where populated.
weather string Site weather conditions for the day.
progress string What progressed, and where the crew worked.
headcount integer Number of people on site for the day.
external_id integer The source system's own identifier for this diary record; substrate source identity and idempotency key. Declared an INTEGER because that is what the source carries - the identity is a string concept
hired_plant string Hired plant/equipment on site for the day.
occurred_on string The diary's project-day (ISO 8601 date), distinct from when it was filed. One diary is one project-day.
legal_entity string The contracting entity the diary belongs to.
submitted_at string When the form was submitted, distinct from the diary day.
subcontractor string Subcontractor present on site.
financial_period string The claim/accounting period the diary day falls in.
form_template_id integer Which form template produced the row. Declared an INTEGER because Assignar's form_id is numeric.
odometer_reading number Vehicle odometer at the diary. Unit unverified (km vs miles).
tenant_questions object The tenant's own form questions, keyed by the slugified question label. Tenant-specific by construction - the same question does not exist for another tenant.
incident_reported boolean Whether an incident report was submitted for this day. The diary is evidence, not the incident record.
source_modified_at string Last modification at source; the incremental harvest cursor.
estimated_completion_date string Forecast completion for the linked project.
View JSON Schema on GitHub

JSON Schema

demiton-io-site_diary-v1-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/site_diary/v1.json",
  "title": "site_diary contract v1",
  "type": "object",
  "required": [
    "content",
    "external_id",
    "occurred_on"
  ],
  "properties": {
    "asset": {
      "type": "integer",
      "description": "The plant or vehicle the diary records. Declared an INTEGER because Assignar's asset_id is numeric where it is populated at all."
    },
    "tasks": {
      "type": "array",
      "description": "The task(s) selected for the day.",
      "items": {
        "type": "string"
      }
    },
    "delays": {
      "type": "array",
      "description": "Delay reasons and their stated duration.",
      "items": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string"
          },
          "duration": {
            "type": "string"
          }
        }
      }
    },
    "worker": {
      "type": "integer",
      "description": "The worker who authored / is the subject of the diary. Declared an INTEGER because Assignar's worker_id is numeric."
    },
    "content": {
      "type": "string",
      "description": "The composed Q&A narrative - the semantic-search payload."
    },
    "project": {
      "type": "integer",
      "description": "The project the diary scopes. Optional because many live diaries carry no linked project. Declared an INTEGER because Assignar's project_id is numeric where populated."
    },
    "weather": {
      "type": "string",
      "description": "Site weather conditions for the day."
    },
    "progress": {
      "type": "string",
      "description": "What progressed, and where the crew worked."
    },
    "headcount": {
      "type": "integer",
      "description": "Number of people on site for the day."
    },
    "external_id": {
      "type": "integer",
      "description": "The source system's own identifier for this diary record; substrate source identity and idempotency key. Declared an INTEGER because that is what the source carries - the identity is a string concept but the adapter does not render it as one."
    },
    "hired_plant": {
      "type": "string",
      "description": "Hired plant/equipment on site for the day."
    },
    "occurred_on": {
      "type": "string",
      "description": "The diary's project-day (ISO 8601 date), distinct from when it was filed. One diary is one project-day.",
      "format": "date",
      "x-demiton-type": "date"
    },
    "legal_entity": {
      "type": "string",
      "description": "The contracting entity the diary belongs to."
    },
    "submitted_at": {
      "type": "string",
      "description": "When the form was submitted, distinct from the diary day.",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "subcontractor": {
      "type": "string",
      "description": "Subcontractor present on site."
    },
    "financial_period": {
      "type": "string",
      "description": "The claim/accounting period the diary day falls in.",
      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
    },
    "form_template_id": {
      "type": "integer",
      "description": "Which form template produced the row. Declared an INTEGER because Assignar's form_id is numeric."
    },
    "odometer_reading": {
      "type": "number",
      "description": "Vehicle odometer at the diary. Unit unverified (km vs miles)."
    },
    "tenant_questions": {
      "type": "object",
      "description": "The tenant's own form questions, keyed by the slugified question label. Tenant-specific by construction - the same question does not exist for another tenant."
    },
    "incident_reported": {
      "type": "boolean",
      "description": "Whether an incident report was submitted for this day. The diary is evidence, not the incident record."
    },
    "source_modified_at": {
      "type": "string",
      "description": "Last modification at source; the incremental harvest cursor.",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "estimated_completion_date": {
      "type": "string",
      "description": "Forecast completion for the linked project.",
      "format": "date",
      "x-demiton-type": "date"
    }
  },
  "x-demiton-register-type": "site_diary",
  "x-demiton-contract-version": "1.0.2",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [
    {
      "axis": "project",
      "requirement": "optional",
      "role": "subject"
    },
    {
      "axis": "asset",
      "requirement": "optional",
      "role": "subject"
    },
    {
      "axis": "legal_entity",
      "requirement": "optional",
      "role": "context"
    },
    {
      "axis": "financial_period",
      "requirement": "required",
      "role": "context"
    }
  ],
  "x-demiton-measures": [],
  "x-demiton-provenance": {
    "standards": [
      {
        "code": "AS 3798-2007",
        "title": "Guidelines on earthworks for commercial and residential developments",
        "access": "public_summary",
        "clause": "3.5 Site records; Appendix B",
        "region": "Australia",
        "edition": "2007 incl. Amd 1:2008",
        "checked_on": "2026-09-14"
      },
      {
        "code": "AS 4000:2025",
        "title": "General Conditions of Contract (construct only)",
        "access": "paywalled_secondary",
        "region": "Australia",
        "edition": "2025",
        "checked_on": "2026-09-14"
      },
      {
        "code": "AS/NZS ISO 45001:2018",
        "title": "Occupational health and safety management systems",
        "access": "paywalled_secondary",
        "clause": "7.5",
        "region": "Australia",
        "edition": "2018 incl. Amd 1:2024",
        "checked_on": "2026-09-14"
      },
      {
        "code": "AS/NZS ISO 9001:2016",
        "title": "Quality management systems - Requirements",
        "access": "paywalled_secondary",
        "clause": "7.5",
        "region": "Australia",
        "edition": "2016 (adopts ISO 9001:2015)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Fair Work Act 2009 (Cth)",
        "title": "Fair Work Act 2009",
        "access": "full_text_verified",
        "clause": "s 535",
        "region": "Australia",
        "edition": "compilation 2026-07-07",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Work Health and Safety Act 2011 (Cth)",
        "title": "Model WHS Act Part 3 - notifiable incidents",
        "access": "public_summary",
        "clause": "ss 35-39",
        "region": "Australia",
        "edition": "2011 (as enacted in each harmonised jurisdiction)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "ISO 45001:2018",
        "title": "Occupational health and safety management systems",
        "access": "paywalled_secondary",
        "clause": "7.5",
        "region": "International",
        "edition": "2018 incl. Amd 1:2024",
        "checked_on": "2026-09-14"
      },
      {
        "code": "ISO 9001:2015",
        "title": "Quality management systems - Requirements",
        "access": "paywalled_secondary",
        "clause": "7.5",
        "region": "International",
        "edition": "2015 (ISO 9001:2026 successor expected; unverified)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Health and Safety at Work Act 2015 (NZ)",
        "title": "HSWA 2015 - records of notifiable events",
        "access": "public_summary",
        "region": "New Zealand",
        "edition": "as amended",
        "checked_on": "2026-09-14"
      },
      {
        "code": "29 CFR Part 1904",
        "title": "OSHA Recording and Reporting Occupational Injuries and Illnesses",
        "access": "full_text_verified",
        "clause": "1904.33 (5-year retention)",
        "region": "United States",
        "edition": "as amended 2026-09-09",
        "checked_on": "2026-09-14"
      }
    ]
  },
  "description": "Daily site diaries: delays, weather, productivity, variations.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/site_diary/",
  "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-site_diary-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.