Esc

↑↓ move↵ openIndex · Pagefind
API preview · design draft
API reference · Field

Daily logs

What happened on site today: crews, hours, weather, notes, photos. Where most RFIs and change orders start.

Design draftSubject to changeobject: daily_logid prefix: dl_
  1. OBJECT The daily_log object
  2. GET /v1/daily-logsList daily logs
  3. POST /v1/daily-logsCreate a daily log

The daily_log object

Every object carries an id, timestamps, and an audit_trail. Money is integer cents. Expand any node in the explorer to see how it links to the rest of the record.

  • id
    string
    Unique, stable identifier. Prefixed by object type.
  • object
    string
    String naming the object type.
  • project
    string
    Project ID.
  • date
    date
    Log date (site local).
  • author
    string
    User ID.
  • weather
    object
    condition, high_f.
  • crew
    array
    vendor, headcount, hours.
  • notes
    string
    Free text.
  • photos
    array
    File IDs.
  • linked
    array
    IDs of objects raised from this log.
  • created_at
    timestamp
    ISO 8601, UTC.
  • updated_at
    timestamp
    ISO 8601, UTC. Changes on every write.
  • audit_trail
    string
    Path to the append-only history of who changed what, and when.
daily_log · sample data
object{13}
  • id"dl_20260918"id
  • object"daily_log"string
  • project"prj_24118"id
  • date"2026-09-18"date
  • author"usr_mike_super"id
  • weatherobject{2}
    • condition"clear"string
    • high_f78integer
  • crewarray[2]
    • 0object{3}
      • vendor"vnd_volt_electric"id
      • headcount9integer
      • hours72integer
    • 1object{3}
      • vendor"vnd_apex_steel"id
      • headcount6integer
      • hours48integer
  • notes"Opened L3 corridor ceiling. No fire dampers at duct penetrations through rated wall. Photos attached. RFI to follow."string
  • photosarray[2]
    • 0"file_ph_3391"id
    • 1"file_ph_3392"id
  • linkedarray[1]
    • 0"rfi_212"id
  • created_at"2026-09-18T23:40:00Z"timestamp
  • updated_at"2026-09-18T23:40:00Z"timestamp
  • audit_trail"/v1/daily-logs/dl_20260918/audit"string
GET /v1/daily-logs

List daily logs

Filter by project and date range.

Parameters

  • project
    stringquery
    ID of the project, e.g. prj_24118.
  • from
    datequery
    Start date.
  • to
    datequery
    End date.
  • limit
    integerquery
    Page size, 1 to 100. Default 25.
  • cursor
    stringquery
    Cursor from a previous page’s next_cursor.

Returns

A paginated list of daily_log objects. Errors use the standard error shape.

Request
curl https://api.os.construction/v1/daily-logs \
  -H "Authorization: Bearer $OS_API_KEY"
Response · 200
{
  "object": "list",
  "url": "/v1/daily-logs",
  "has_more": true,
  "next_cursor": "cur_9f2c",
  "data": [
    {
      "id": "dl_20260918",
      "object": "daily_log",
      "project": "prj_24118",
      "date": "2026-09-18",
      "author": "usr_mike_super",
      "weather": {
        "condition": "clear",
        "high_f": 78
      },
      "crew": [
        {
          "vendor": "vnd_volt_electric",
          "headcount": 9,
          "hours": 72
        },
        {
          "vendor": "vnd_apex_steel",
          "headcount": 6,
          "hours": 48
        }
      ],
      "notes": "Opened L3 corridor ceiling. No fire dampers at duct penetrations through rated wall. Photos attached. RFI to follow.",
      "photos": [
        "file_ph_3391",
        "file_ph_3392"
      ],
      "linked": [
        "rfi_212"
      ],
      "created_at": "2026-09-18T23:40:00Z",
      "updated_at": "2026-09-18T23:40:00Z",
      "audit_trail": "/v1/daily-logs/dl_20260918/audit"
    }
  ]
}
POST /v1/daily-logs

Create a daily log

One per project per day; a second POST for the same date returns 409.

Idempotent. Send an Idempotency-Key; retries within 24 hours return the original result and never write twice.

Parameters

  • Idempotency-Key
    stringheaderrequired
    Any unique string. Replays return the first result instead of writing twice.
  • project
    stringbodyrequired
    Project ID.
  • date
    datebodyrequired
    Date.
  • notes
    stringbody
    Notes.

Returns

The daily_log object. Errors use the standard error shape.

Request
curl -X POST https://api.os.construction/v1/daily-logs \
  -H "Authorization: Bearer $OS_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "project": "prj_24118",
    "date": "2026-09-18",
    "notes": "Opened L3 corridor ceiling. No fire dampers at duct penetrations through rated wall. Photos attached. RFI to follow.",
    "crew": [
      {
        "vendor": "vnd_volt_electric",
        "headcount": 9,
        "hours": 72
      },
      {
        "vendor": "vnd_apex_steel",
        "headcount": 6,
        "hours": 48
      }
    ]
  }'
Response · 201
{
  "id": "dl_20260918",
  "object": "daily_log",
  "project": "prj_24118",
  "date": "2026-09-18",
  "author": "usr_mike_super",
  "weather": {
    "condition": "clear",
    "high_f": 78
  },
  "crew": [
    {
      "vendor": "vnd_volt_electric",
      "headcount": 9,
      "hours": 72
    },
    {
      "vendor": "vnd_apex_steel",
      "headcount": 6,
      "hours": 48
    }
  ],
  "notes": "Opened L3 corridor ceiling. No fire dampers at duct penetrations through rated wall. Photos attached. RFI to follow.",
  "photos": [
    "file_ph_3391",
    "file_ph_3392"
  ],
  "linked": [
    "rfi_212"
  ],
  "created_at": "2026-09-18T23:40:00Z",
  "updated_at": "2026-09-18T23:40:00Z",
  "audit_trail": "/v1/daily-logs/dl_20260918/audit"
}

Events

Webhooks fire on every state change of a daily_log.