Availability
Check item availability
Checks the availability of a batch of items (1-100) over a common date range, each with the quantity you intend to book (1 by default).
Request examples
curl https://app.filmo.io/api/v1/availability/check \
--request POST \
--header "Authorization: Bearer $FILMO_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"items": [
{
"itemId": "itm_9f3a2b",
"variantId": "var_rojo",
"transactionType": "rental",
"quantity": 4
},
{
"itemId": "itm_camara_a7"
}
],
"startDate": "2026-09-01T08:00:00+02:00",
"endDate": "2026-09-05T20:00:00+02:00"
}'Generated from the schema
Idempotent query (POST because of the structured body). Shares the availability quota of 30 req/min. One entry per requested item, in request order: its availability (available, shortfall, conflictingPeriods for that quantity, and commitments: the orders that hold units of it in the window, with their number, peak quantity and dates) or a per-item error when the item does not exist in the account.
Authorizations
Bearer API key with the scope below. availability:read
Body
Body schema: AvailabilityCheckBody
Batch of items to check (between 1 and 100).
Limits: min 1 items, max 100 items
Show child attributesHide child attributes
Identifier of the item to check. Required.
Limits: min length 1, max length 100
Identifier of the specific variant to check; omit for the base item.
Limits: min length 1, max length 100
Type of transaction to check: rental or sale. Defaults to rental.
Available options: rental, sale
Units you intend to book. Drives available, shortfall, status and conflictingPeriods. Defaults to 1.
Limits: min 1, max 100000
Start of the range to check (ISO 8601 with offset), shared by the whole batch.
End of the range to check (ISO 8601 with offset), shared by the whole batch; must be later than startDate.
Response
Successful response.
Response schema: AvailabilityCheckEntryDto
Envelope: AvailabilityCheckEntryItems. meta. is present only when the operation is deprecated.
Headers: X-Request-Id · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset
One of 1/2: AvailabilityResult
Identifier of the checked item.
Identifier of the checked variant; null if the base item was checked.
Name of the checked item.
Units requested for this item (1 if the request did not say).
true if minRemaining covers quantity at every point of the queried window.
ok (the requested quantity is available), partial (some units are available, fewer than requested) or none (no units available).
Available options: ok, partial, none
Total stock of the item.
Reserved units overlapping the queried window.
Minimum available at any point in the queried window.
Units missing to serve quantity (0 when available).
Additional temporary availability (e.g. borrowed/temporary stock); null if not applicable.
Business days (YYYY-MM-DD, in the account timezone) within the window on which the stock does not cover quantity. Empty when available.
Orders that consume stock of the item within the window (the lines behind reserved), earliest first. Empty when nothing is booked.
Show child attributesHide child attributes
Order that holds units of the item within the window.
Number of that order; null if it has none yet.
Peak units the order holds at the same time within the window.
Start of the period of its lines, in ISO 8601 UTC (not clipped to the window).
End of the period of its lines, in ISO 8601 UTC (not clipped to the window).
Moment the check was performed, in ISO 8601 with offset.
One of 2/2: AvailabilityItemErrorEntry
Identifier the request asked for.
Variant the request asked for; null if none.
Why the item has no result.
Show child attributesHide child attributes
The item does not exist in the account.
Available options: not_found
Human-readable explanation.
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
Resource not found (not_found): it does not exist or is outside the scope of the API key.
Headers: X-Request-Id · Content-Language · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset
Conflict (conflict): the current state of the resource prevents the operation, a request with that Idempotency-Key is already in progress, or another conditional write (If-Match) held the resource for more than five seconds. errors[0]. says which: in_progress and lock_timeout are solved by retrying; invalid_state is not, because the state of the resource forbids the operation.
Headers: X-Request-Id · Content-Language · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset
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. |
| 404 | not_found | It does not exist or is outside the scope of the API key. |
| 409 | conflict | The current state of the resource prevents the operation, a request with that Idempotency-Key is already in progress, or another conditional write (If-Match) held the resource for more than five seconds. errors[0]. says which: in_progress and lock_timeout are solved by retrying; invalid_state is not, because the state of the resource forbids the operation. |
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
Was this page helpful?