Developers API reference Projects Daily logs API REST endpoints for daily logs in ServFlo: 5 operations with parameters, request and response fields, permissions and curl examples.
Base URL: https://app.servflo.ai/api. Every call needs Authorization: Bearer sfk_… (Authentication ); {organizationId} ($ORGANIZATION_ID in the examples) is your business's id .
GET /organizations/{organizationId}/projects/{projectId}/daily-logs
Daily logs, newest day first, with weather, who was on site, work done, delays or issues and photos. Read-only.
Permission projects.read (Owner, Admin, Dispatcher, Technician, Member)Risk read, OAuth scope servflo.read. Read: reads only.MCP tool dailyLogs_list (toolset projects)
Name In Type Required Description projectIdpath string Yes The project (GET /projects). limitquery integer No 1–200. Default 30. offsetquery integer No Default 0.
curl "https://app.servflo.ai/api/organizations/ $ORGANIZATION_ID /projects/{projectId}/daily-logs" \
-H "Authorization: Bearer $SERVFLO_API_KEY "
200: the answer's fields Field Type Description itemsarray of object items[].idstring items[].projectIdstring items[].datestring items[].weatherSummarystring or null items[].workDonestring or null items[].hadDelayboolean items[].issuesstring or null items[].sharedWithCustomerboolean items[].photosarray of object items[].photos[].idstring items[].photos[].categoryenum One of PLAN, PERMIT, CONTRACT, PHOTO, SELECTION, LIEN_WAIVER, OTHER. items[].photos[].fileNamestring items[].photos[].contentTypestring items[].photos[].sharedWithCrewboolean items[].photos[].sharedWithSubsboolean items[].photos[].sharedWithCustomerboolean items[].photos[].urlstring A 10-minute download URL. totalinteger
PUT /organizations/{organizationId}/projects/{projectId}/daily-logs
Creates the project's log for date (default today in the business's calendar) or changes it: one per project per day. A new log takes the day's weather from the forecast at the property unless weatherSummary is given. Only the fields sent change. Add photos with POST …/files (category PHOTO, dailyLogId). Technicians: their own projects.
Permission projects.field (Owner, Admin, Dispatcher, Technician)Risk write, OAuth scope servflo.write. Write: creates or changes records inside the business; nothing leaves it.MCP tool dailyLogs_save (toolset projects)
Name In Type Required Description projectIdpath string Yes The project (GET /projects).
Field Type Required Description datestring No A calendar date in the business's own calendar, YYYY-MM-DD. weatherSummarystring or null No Up to 300 characters. weatherHighFinteger or null No -80–150. weatherLowFinteger or null No -80–150. weatherRainChanceinteger or null No 0–100. weatherWindMphinteger or null No 0–250. crewTechnicianIdsarray of string No Crew on site (GET /technicians). Up to 50 items. vendorIdsarray of string No Subcontractors on site (GET /subcontractors). Up to 50 items. othersOnSitestring or null No Anyone else: inspector, supplier, the owner. Up to 1000 characters. workDonestring or null No hadDelayboolean No issuesstring or null No Delays or issues.
curl -X PUT "https://app.servflo.ai/api/organizations/ $ORGANIZATION_ID /projects/{projectId}/daily-logs" \
-H "Authorization: Bearer $SERVFLO_API_KEY " \
-H "Content-Type: application/json" \
-d '{"date":"2026-11-03","weatherSummary":"string","weatherHighF":1}'
200: the answer's fields Field Type Description idstring projectIdstring datestring weatherSummarystring or null workDonestring or null hadDelayboolean issuesstring or null sharedWithCustomerboolean photosarray of object photos[].idstring photos[].categoryenum One of PLAN, PERMIT, CONTRACT, PHOTO, SELECTION, LIEN_WAIVER, OTHER. photos[].fileNamestring photos[].contentTypestring photos[].sharedWithCrewboolean photos[].sharedWithSubsboolean photos[].sharedWithCustomerboolean photos[].urlstring A 10-minute download URL.
GET /organizations/{organizationId}/daily-logs/{dailyLogId}
One daily log with its photos. Read-only.
Permission projects.read (Owner, Admin, Dispatcher, Technician, Member)Risk read, OAuth scope servflo.read. Read: reads only.MCP tool dailyLogs_get (toolset projects)
Name In Type Required Description dailyLogIdpath string Yes
curl "https://app.servflo.ai/api/organizations/ $ORGANIZATION_ID /daily-logs/{dailyLogId}" \
-H "Authorization: Bearer $SERVFLO_API_KEY "
200: the answer's fields Field Type Description idstring projectIdstring datestring weatherSummarystring or null workDonestring or null hadDelayboolean issuesstring or null sharedWithCustomerboolean photosarray of object photos[].idstring photos[].categoryenum One of PLAN, PERMIT, CONTRACT, PHOTO, SELECTION, LIEN_WAIVER, OTHER. photos[].fileNamestring photos[].contentTypestring photos[].sharedWithCrewboolean photos[].sharedWithSubsboolean photos[].sharedWithCustomerboolean photos[].urlstring A 10-minute download URL.
DELETE /organizations/{organizationId}/daily-logs/{dailyLogId}
Destructive: deletes the log; its photos stay in the project's files.
Permission projects.write (Owner, Admin, Dispatcher)Risk sensitive, OAuth scope servflo.sensitive. Sensitive: moves money, deletes, sends or shows something to a customer, or grants or revokes access.MCP tool dailyLogs_delete (toolset projects)Approval Over MCP, this tool always waits for your approval in ServFlo. See Approvals .
Name In Type Required Description dailyLogIdpath string Yes
curl -X DELETE "https://app.servflo.ai/api/organizations/ $ORGANIZATION_ID /daily-logs/{dailyLogId}" \
-H "Authorization: Bearer $SERVFLO_API_KEY "
200: the answer's fields Field Type Description oktrue
POST /organizations/{organizationId}/daily-logs/{dailyLogId}/share
Exposes to the customer: shared: true shows the log (work done, weather, delays or issues) and its photos on the project in the customer's portal; false hides it again.
Permission projects.write (Owner, Admin, Dispatcher)Risk sensitive, OAuth scope servflo.sensitive. Sensitive: moves money, deletes, sends or shows something to a customer, or grants or revokes access.MCP tool dailyLogs_share (toolset projects)Approval Over MCP, this tool asks for your OK first (in the AI app when it supports it, otherwise in ServFlo). See Approvals .
Name In Type Required Description dailyLogIdpath string Yes
Field Type Required Description sharedboolean Yes
curl -X POST "https://app.servflo.ai/api/organizations/ $ORGANIZATION_ID /daily-logs/{dailyLogId}/share" \
-H "Authorization: Bearer $SERVFLO_API_KEY " \
-H "Content-Type: application/json" \
-d '{"shared":true}'
200: the answer's fields Field Type Description idstring projectIdstring datestring weatherSummarystring or null workDonestring or null hadDelayboolean issuesstring or null sharedWithCustomerboolean photosarray of object photos[].idstring photos[].categoryenum One of PLAN, PERMIT, CONTRACT, PHOTO, SELECTION, LIEN_WAIVER, OTHER. photos[].fileNamestring photos[].contentTypestring photos[].sharedWithCrewboolean photos[].sharedWithSubsboolean photos[].sharedWithCustomerboolean photos[].urlstring A 10-minute download URL.