Planner
List the services to cover
Returns the staff and fleet services of a date window, with who covers them and which resources are needed.
Request examples
curl 'https://app.filmo.io/api/v1/planner/services?startDate=2026-09-01T08%3A00%3A00Z&endDate=2026-09-01T08%3A00%3A00Z' \
--header "Authorization: Bearer $FILMO_API_KEY"Generated from the schema
It returns ROWS, not services: each service comes as one summary row (rowKind: summary, with staffMemberId and vehicleId always null) and one detail row per person or vehicle assigned to it, all sharing the same orderServiceId. Group by orderServiceId: a service is uncovered when it only has its summary row, and covered when it has detail rows with an assignee, so a null on the summary row does not mean "uncovered". Internal services (not tied to an order) come with orderId and orderNumber empty and a serviceId that starts with is_. The identifier used to assign is orderServiceId.
Authorizations
Bearer API key with the scope below. planner:read
Query parameters
Window start, in ISO 8601 with offset.
Window end, in ISO 8601 with offset.
Which services to fetch. Defaults to both.
Available options: crew, fleet, both
Filter by status of the order they are attached to.
Available options: draft, reserved, all
Limit to one project.
Limits: min length 1, max length 100
Response
Successful response.
Response schema: PlannerServiceDto
Envelope: PlannerServiceItems. meta. is present only when the operation is deprecated.
Headers: X-Request-Id · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset
Show child attributesHide child attributes
Service line identifier. It is the one passed when assigning.
Which row this is. A service comes as ONE summary row (the service itself, with staffMemberId and vehicleId always null) plus one detail row per person or vehicle assigned to it, all with the same orderServiceId. A service is covered when it has detail rows with an assignee, and uncovered when it only has the summary row.
Available options: summary, detail
Order the service is attached to; an empty string on internal services, which belong to no order.
Human-readable number of that order; an empty string on internal services.
Order status.
Customer of the order; null if not recorded.
Associated project; null if not applicable.
Project name; null if not applicable.
Catalogue service it comes from.
Service name.
Type: crew, fleet or general.
Assigned staff member. Only detail rows carry it; it is null on the summary row even when the service is covered.
Assigned vehicle. Only detail rows carry it; it is null on the summary row even when the service is covered.
Service start in ISO 8601 UTC.
Service end in ISO 8601 UTC.
Service line status.
How many units of the service are requested.
Linked schedule task; null if there is none.
Resources needed to cover it.
Show child attributesHide child attributes
What is needed: personnel or vehicle.
Available options: personnel, vehicle
How many are needed.
Additional information about the response.
Show child attributesHide child attributes
Lifecycle warnings; present only when the operation is deprecated.
Show child attributesHide child attributes
Stable warning code.
Available options: deprecated
For people: what is deprecated, until when, and what to use.
Day (YYYY-MM-DD) the operation stops being served.
operationId of the operation to use instead, or null if there is none.
Where the deprecation is documented (the changelog).
Invalid request (validation_error): malformed query or body. errors[] lists every offending field with its stable code.
Headers: X-Request-Id · Content-Language · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset
Authentication failed (unauthorized, api_key_invalid, api_key_revoked, api_key_expired, api_key_owner_inactive, api_key_owner_not_admin).
Headers: X-Request-Id · Content-Language
Not allowed (insufficient_scope: the API key does not have the required scope, named in requiredScope; forbidden: the owner of the key lacks the permission the operation requires). insufficient_scope is answered before the request counts against the rate limit, so it carries no RateLimit-* headers; forbidden does.
Headers: X-Request-Id · Content-Language
Rate limit exceeded (rate_limited): retry after Retry-After seconds; RateLimit-* says which quota ran out.
Headers: X-Request-Id · Content-Language · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset · Retry-After
Internal error (internal_error).
Headers: X-Request-Id · Content-Language · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset
Errors
| Status | Codes | Meaning |
|---|---|---|
| 400 | validation_error | Malformed query or body. errors[] lists every offending field with its stable code. |
401, 403, 429, 500 can be returned by any operation. Errors
Deprecation
This operation is not deprecated. Deprecations are announced with a Deprecation header and a sunset date. Versioning policy
Related pages
Link to this section: Related pagesOperations
Planner service
Staff or fleet service pending coverage, or already covered.
Was this page helpful?