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. |
JSON Schema
{
"$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.
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.