{ "@context": { "@vocab": "https://hourtick.com/schema#", "schema": "https://schema.org/", "xsd": "http://www.w3.org/2001/XMLSchema#", "dcterms": "http://purl.org/dc/terms/", "hourtick": "https://hourtick.com/schema#", "TimeEntry": "hourtick:TimeEntry", "id": { "@id": "hourtick:id", "@type": "xsd:string" }, "workspaceId": { "@id": "hourtick:workspaceId", "@type": "xsd:string" }, "userId": { "@id": "hourtick:userId", "@type": "xsd:string" }, "projectId": { "@id": "hourtick:projectId", "@type": "xsd:string" }, "taskId": { "@id": "hourtick:taskId", "@type": "xsd:string" }, "workItemId": { "@id": "hourtick:workItemId", "@type": "xsd:string" }, "notes": { "@id": "hourtick:notes", "@type": "xsd:string" }, "spentDate": { "@id": "hourtick:spentDate", "@type": "xsd:date" }, "timezone": { "@id": "hourtick:timezone", "@type": "xsd:string" }, "accumulatedSeconds": { "@id": "hourtick:accumulatedSeconds", "@type": "xsd:integer" }, "timerStartedAt": { "@id": "hourtick:timerStartedAt", "@type": "xsd:integer" }, "billable": { "@id": "hourtick:billable", "@type": "xsd:boolean" }, "lockedReason": { "@id": "hourtick:lockedReason", "@type": "xsd:string" }, "version": { "@id": "hourtick:version", "@type": "xsd:integer" }, "deletedAt": { "@id": "hourtick:deletedAt", "@type": "xsd:integer" }, "createdAt": { "@id": "hourtick:createdAt", "@type": "xsd:integer" }, "updatedAt": { "@id": "hourtick:updatedAt", "@type": "xsd:integer" }, "WorkItem": "hourtick:WorkItem", "number": { "@id": "hourtick:number", "@type": "xsd:integer" }, "title": { "@id": "hourtick:title", "@type": "xsd:string" }, "status": { "@id": "hourtick:status", "@type": "xsd:string" }, "priority": { "@id": "hourtick:priority", "@type": "xsd:integer" }, "clientId": { "@id": "hourtick:clientId", "@type": "xsd:string" }, "dueDate": { "@id": "hourtick:dueDate", "@type": "xsd:date" }, "estimateSeconds": { "@id": "hourtick:estimateSeconds", "@type": "xsd:integer" }, "labels": { "@id": "hourtick:labels", "@container": "@list" }, "position": { "@id": "hourtick:position", "@type": "xsd:decimal" }, "assigneeIds": { "@id": "hourtick:assigneeIds", "@container": "@list" }, "trackedSeconds": { "@id": "hourtick:trackedSeconds", "@type": "xsd:integer" }, "runningUserIds": { "@id": "hourtick:runningUserIds", "@container": "@list" }, "commentCount": { "@id": "hourtick:commentCount", "@type": "xsd:integer" }, "attachmentCount": { "@id": "hourtick:attachmentCount", "@type": "xsd:integer" }, "checklistDone": { "@id": "hourtick:checklistDone", "@type": "xsd:integer" }, "checklistTotal": { "@id": "hourtick:checklistTotal", "@type": "xsd:integer" }, "Problem": "hourtick:Problem", "type": { "@id": "hourtick:type", "@type": "xsd:string" }, "detail": { "@id": "hourtick:detail", "@type": "xsd:string" }, "entry": { "@id": "hourtick:entry", "@type": "@id" }, "conflicts": { "@id": "hourtick:conflicts", "@container": "@list" } }, "@type": "schema:Dataset", "schema:name": "Hourtick API JSON-LD context", "schema:description": "A JSON-LD @context for the objects Hourtick's own API contract declares: one class per component schema, one property per declared field, typed from the contract. Derived by script (derive-json-ld.py, 2026-10-08) from openapi/_original/hourtick-v1-openapi.json.", "dcterms:created": "2026-10-08", "dcterms:source": [ "openapi/_original/hourtick-v1-openapi.json" ] }