*REST API › Endpoint reference*

# OpenAPI specification

> The contract of the API as an OpenAPI 3.1 document, with the index of every schema by its source name.

| Version | Snapshot of | Checksum (SHA-256) |
| --- | --- | --- |
| `1.0.0` | 2026-10-25 | `893a69c7b04211fa8b937884400c97fac2707b0251724300cf7be4bb2c44952a` |

Download: [`https://docs.filmo.io/openapi.json`](https://docs.filmo.io/openapi.json).

Live document: `https://app.filmo.io/api/v1/openapi.json`

## Schema index

Every schema of the document with the page that documents it. Client generators name types after these.

| Schema | Kind | Documented in |
| --- | --- | --- |
| `AccountDto` | Object | `account` |
| `AccountResponse` | Response envelope | — |
| `AiAskBody` | Request body | `POST /api/v1/ai/ask` |
| `AiAskDto` | Result of an action | `POST /api/v1/ai/ask` |
| `AiAskResponse` | Response envelope | — |
| `ApiWarning` | Shared | — |
| `AvailabilityCheckBody` | Request body | `POST /api/v1/availability/check` |
| `AvailabilityCheckEntryDto` | Result of an action | `POST /api/v1/availability/check` |
| `AvailabilityCheckEntryItems` | Response envelope | — |
| `AvailabilityCommitment` | Shared | — |
| `AvailabilityItemError` | Shared | — |
| `AvailabilityItemErrorEntry` | Shared | — |
| `AvailabilityResult` | Shared | — |
| `CancelOrderResponse` | Response envelope | — |
| `CollectionCreateBody` | Request body | `POST /api/v1/collections` |
| `CollectionCreatedDto` | Result of an action | `POST /api/v1/collections` |
| `CollectionCreatedResponse` | Response envelope | — |
| `CollectionDto` | Object | `collection` |
| `CollectionList` | Response envelope | — |
| `CollectionUpdateBody` | Request body | `PATCH /api/v1/collections/{collectionId}` |
| `CollectionUpdateResultDto` | Result of an action | `PATCH /api/v1/collections/{collectionId}` |
| `CollectionUpdateResultResponse` | Response envelope | — |
| `ContactAddressCreateBody` | Request body | `POST /api/v1/contacts/{contactId}/addresses` |
| `ContactAddressUpdateBody` | Request body | `PATCH /api/v1/contacts/{contactId}/addresses/{addressId}` |
| `ContactCreateBody` | Request body | `POST /api/v1/contacts` |
| `ContactDetailDto` | Object (detail) | `contact` |
| `ContactDetailResponse` | Response envelope | — |
| `ContactDto` | Object | `contact` |
| `ContactList` | Response envelope | — |
| `ContactPreferencesBody` | Request body | `PATCH /api/v1/contacts/{contactId}/preferences` |
| `ContactUpdateBody` | Request body | `PATCH /api/v1/contacts/{contactId}` |
| `ContactsLookupBody` | Request body | `POST /api/v1/contacts/lookup` |
| `ContactsLookupResultDto` | Result of an action | `POST /api/v1/contacts/lookup` |
| `ContactsLookupResultResponse` | Response envelope | — |
| `ContractCancelBody` | Request body | `POST /api/v1/contracts/{contractId}/cancel` |
| `ContractDto` | Object | `contract` |
| `ContractList` | Response envelope | — |
| `ContractResponse` | Response envelope | — |
| `ContractSignBody` | Request body | `POST /api/v1/contracts/{contractId}/sign` |
| `ContractVoidBody` | Request body | `POST /api/v1/contracts/{contractId}/void` |
| `CreditNoteDto` | Object | `credit note` |
| `CreditNoteList` | Response envelope | — |
| `CreditNoteResponse` | Response envelope | — |
| `CreditNoteVoidBody` | Request body | `POST /api/v1/credit-notes/{creditNoteId}/void` |
| `CustomFieldDefinitionDto` | Object | `custom field definition` |
| `CustomFieldDefinitionItems` | Response envelope | — |
| `DocumentLineDto` | Object | `document line` |
| `DocumentLineList` | Response envelope | — |
| `IncidentCommentBody` | Request body | `POST /api/v1/incidents/{incidentId}/comments` |
| `IncidentCreateBody` | Request body | `POST /api/v1/incidents` |
| `IncidentDto` | Object | `incident` |
| `IncidentList` | Response envelope | — |
| `IncidentResponse` | Response envelope | — |
| `IncidentStatusCountsDto` | Result of an action | `GET /api/v1/incidents/status-counts` |
| `IncidentStatusCountsResponse` | Response envelope | — |
| `IncidentUpdateBody` | Request body | `PATCH /api/v1/incidents/{incidentId}` |
| `InternalServiceCreateBody` | Request body | `POST /api/v1/internal-services` |
| `InternalServiceDto` | Object | `internal service` |
| `InternalServiceList` | Response envelope | — |
| `InternalServiceResponse` | Response envelope | — |
| `InternalServiceUpdateBody` | Request body | `PATCH /api/v1/internal-services/{internalServiceId}` |
| `InvoiceDetailDto` | Object (detail) | `invoice` |
| `InvoiceDetailResponse` | Response envelope | — |
| `InvoiceDto` | Object | `invoice` |
| `InvoiceExternalUpsertBody` | Request body | `PUT /api/v1/invoices/external/{originSystem}/{originExternalId}` |
| `InvoiceList` | Response envelope | — |
| `InvoiceVoidBody` | Request body | `POST /api/v1/invoices/{invoiceId}/void` |
| `ItemAccessoriesBody` | Request body | `PUT /api/v1/items/{itemId}/accessories` |
| `ItemAlternativesBody` | Request body | `PUT /api/v1/items/{itemId}/alternatives` |
| `ItemCreateBody` | Request body | `POST /api/v1/items` |
| `ItemDetailDto` | Object (detail) | `item` |
| `ItemDetailResponse` | Response envelope | — |
| `ItemDto` | Object | `item` |
| `ItemList` | Response envelope | — |
| `ItemPhysicalPropertiesBody` | Request body | `PATCH /api/v1/items/{itemId}/physical-properties` |
| `ItemPricingBody` | Request body | `PATCH /api/v1/items/{itemId}/pricing` |
| `ItemUpdateBody` | Request body | `PATCH /api/v1/items/{itemId}` |
| `ItemVariantUpdateBody` | Request body | `PATCH /api/v1/items/{itemId}/variants/{variantId}` |
| `KitCreateBody` | Request body | `POST /api/v1/kits` |
| `KitDto` | Object | `kit` |
| `KitList` | Response envelope | — |
| `KitResponse` | Response envelope | — |
| `KitUpdateBody` | Request body | `PATCH /api/v1/kits/{kitId}` |
| `LinkOpportunityRecordResponse` | Response envelope | — |
| `NoteCreateBody` | Request body | `POST /api/v1/notes` |
| `NoteDto` | Object | `note` |
| `NoteList` | Response envelope | — |
| `NoteResponse` | Response envelope | — |
| `OpportunityCloseBody` | Request body | `POST /api/v1/crm/opportunities/{opportunityId}/close` |
| `OpportunityCreateBody` | Request body | `POST /api/v1/crm/opportunities` |
| `OpportunityDetailDto` | Object (detail) | `opportunity` |
| `OpportunityDetailResponse` | Response envelope | — |
| `OpportunityDto` | Object | `opportunity` |
| `OpportunityLinkBody` | Request body | `POST /api/v1/crm/opportunities/{opportunityId}/links` |
| `OpportunityLinkMeta` | Response metadata | `POST /api/v1/crm/opportunities/{opportunityId}/links` |
| `OpportunityList` | Response envelope | — |
| `OpportunityMoveStageBody` | Request body | `PATCH /api/v1/crm/opportunities/{opportunityId}/stage` |
| `OpportunityUpdateBody` | Request body | `PATCH /api/v1/crm/opportunities/{opportunityId}` |
| `OrderArchiveBody` | Request body | `PUT /api/v1/orders/{orderId}/archive` |
| `OrderCancelMeta` | Response metadata | `POST /api/v1/orders/{orderId}/cancel` |
| `OrderCreateBody` | Request body | `POST /api/v1/orders` |
| `OrderDetailDto` | Object (detail) | `order` |
| `OrderDetailResponse` | Response envelope | — |
| `OrderDto` | Object | `order` |
| `OrderLineDto` | Object | `order line` |
| `OrderLineItemsReturnBody` | Request body | `POST /api/v1/orders/line-items/returns` |
| `OrderLineList` | Response envelope | — |
| `OrderLineReturnResultDto` | Result of an action | `POST /api/v1/orders/line-items/returns` |
| `OrderLineReturnResultItems` | Response envelope | — |
| `OrderList` | Response envelope | — |
| `OrderReserveMeta` | Response metadata | `POST /api/v1/orders/{orderId}/reserve` |
| `OrderUnreserveMeta` | Response metadata | `POST /api/v1/orders/{orderId}/unreserve` |
| `OrderUpdateBody` | Request body | `PATCH /api/v1/orders/{orderId}` |
| `Pagination` | Shared | `GET /api/v1/contacts` |
| `PaymentCreateBody` | Request body | `POST /api/v1/treasury/payments` |
| `PaymentDto` | Object | `payment` |
| `PaymentLinkBody` | Request body | `POST /api/v1/treasury/payments/{paymentId}/links` |
| `PaymentList` | Response envelope | — |
| `PaymentMethodDto` | Object | `payment method` |
| `PaymentMethodList` | Response envelope | — |
| `PaymentResponse` | Response envelope | — |
| `PaymentUpdateBody` | Request body | `PATCH /api/v1/treasury/payments/{paymentId}` |
| `PipelineDto` | Object | `pipeline` |
| `PipelineItems` | Response envelope | — |
| `PipelineResponse` | Response envelope | — |
| `PlannerAssignResultDto` | Result of an action | `POST /api/v1/planner/assignments` |
| `PlannerAssignResultResponse` | Response envelope | — |
| `PlannerAssignmentCreateBody` | Request body | `POST /api/v1/planner/assignments` |
| `PlannerAssignmentRemoveBody` | Request body | `POST /api/v1/planner/assignments/remove` |
| `PlannerResourceDto` | Object | `planner resource` |
| `PlannerResourceItems` | Response envelope | — |
| `PlannerServiceDto` | Object | `planner service` |
| `PlannerServiceItems` | Response envelope | — |
| `PlannerUnassignResultDto` | Result of an action | `POST /api/v1/planner/assignments/remove` |
| `PlannerUnassignResultResponse` | Response envelope | — |
| `ProblemDetails` | Shared | `GET /api/v1/contacts` |
| `ProformaDto` | Object | `proforma` |
| `ProformaList` | Response envelope | — |
| `ProformaResponse` | Response envelope | — |
| `ProformaStatusBody` | Request body | `PATCH /api/v1/proformas/{proformaId}/status` |
| `ProjectArchiveBody` | Request body | `PUT /api/v1/projects/{projectId}/archive` |
| `ProjectCreateBody` | Request body | `POST /api/v1/projects` |
| `ProjectDetailDto` | Object (detail) | `project` |
| `ProjectDetailResponse` | Response envelope | — |
| `ProjectDto` | Object | `project` |
| `ProjectList` | Response envelope | — |
| `ProjectTypeDto` | Object | `project type` |
| `ProjectTypeItems` | Response envelope | — |
| `ProjectUpdateBody` | Request body | `PATCH /api/v1/projects/{projectId}` |
| `PurchaseOrderDto` | Object | `purchase order` |
| `PurchaseOrderList` | Response envelope | — |
| `PurchaseOrderReceiveBody` | Request body | `POST /api/v1/purchase-orders/{purchaseOrderId}/receive` |
| `PurchaseOrderReceiveMeta` | Response metadata | `POST /api/v1/purchase-orders/{purchaseOrderId}/receive` |
| `PurchaseOrderResponse` | Response envelope | — |
| `PurchaseOrderUpdateBody` | Request body | `PATCH /api/v1/purchase-orders/{purchaseOrderId}` |
| `QuoteDetailDto` | Object (detail) | `quote` |
| `QuoteDetailResponse` | Response envelope | — |
| `QuoteDto` | Object | `quote` |
| `QuoteList` | Response envelope | — |
| `QuoteStatusBody` | Request body | `PATCH /api/v1/quotes/{quoteId}/status` |
| `ReceivePurchaseOrderResponse` | Response envelope | — |
| `RelatedContactCreateBody` | Request body | `POST /api/v1/contacts/{contactId}/related-contacts` |
| `RelatedContactDto` | Object | `related contact` |
| `RelatedContactItems` | Response envelope | — |
| `RelatedContactUpdateBody` | Request body | `PATCH /api/v1/contacts/{contactId}/related-contacts/{relatedContactId}` |
| `RepairTicketCreateBody` | Request body | `POST /api/v1/repair-tickets` |
| `RepairTicketDetailDto` | Object (detail) | `repair ticket` |
| `RepairTicketDetailResponse` | Response envelope | — |
| `RepairTicketDto` | Object | `repair ticket` |
| `RepairTicketList` | Response envelope | — |
| `RepairTicketUpdateBody` | Request body | `PATCH /api/v1/repair-tickets/{ticketId}` |
| `ReserveOrderResponse` | Response envelope | — |
| `ResourceAvailability` | Shared | — |
| `ResourceAvailabilityEntryDto` | Result of an action | `POST /api/v1/staff/availability` |
| `ResourceAvailabilityEntryItems` | Response envelope | — |
| `ResourceAvailabilityErrorEntry` | Shared | — |
| `ResponseMeta` | Response metadata | `GET /api/v1/contacts` |
| `ScheduleDto` | Object | `schedule` |
| `ScheduleResponse` | Response envelope | — |
| `SerializedItemDetailDto` | Object (detail) | `serialized item` |
| `SerializedItemDetailResponse` | Response envelope | — |
| `SerializedItemDto` | Object | `serialized item` |
| `SerializedItemList` | Response envelope | — |
| `SerializedItemUpdateBody` | Request body | `PATCH /api/v1/serialized-items/{serializedItemId}` |
| `ServiceCreateBody` | Request body | `POST /api/v1/services` |
| `ServiceDto` | Object | `service` |
| `ServiceList` | Response envelope | — |
| `ServiceResponse` | Response envelope | — |
| `ServiceUpdateBody` | Request body | `PATCH /api/v1/services/{serviceId}` |
| `SpaceAmenitiesBody` | Request body | `PUT /api/v1/spaces/{spaceId}/amenities` |
| `SpaceDetailDto` | Object (detail) | `space` |
| `SpaceDetailResponse` | Response envelope | — |
| `SpaceDto` | Object | `space` |
| `SpaceList` | Response envelope | — |
| `SpacePricingBody` | Request body | `PATCH /api/v1/spaces/{spaceId}/pricing` |
| `SpaceUpdateBody` | Request body | `PATCH /api/v1/spaces/{spaceId}` |
| `StaffAvailabilityBody` | Request body | `POST /api/v1/staff/availability` |
| `StaffMemberCreateBody` | Request body | `POST /api/v1/staff` |
| `StaffMemberDto` | Object | `staff member` |
| `StaffMemberList` | Response envelope | — |
| `StaffMemberResponse` | Response envelope | — |
| `StaffUpdateBody` | Request body | `PATCH /api/v1/staff/{staffId}` |
| `SubrentDto` | Object | `subrent` |
| `SubrentList` | Response envelope | — |
| `SubrentResponse` | Response envelope | — |
| `SubrentUpdateBody` | Request body | `PATCH /api/v1/subrents/{subrentId}` |
| `SupplierInvoiceDto` | Object | `supplier invoice` |
| `SupplierInvoiceList` | Response envelope | — |
| `SupplierInvoiceResponse` | Response envelope | — |
| `SupplierInvoiceVoidBody` | Request body | `POST /api/v1/supplier-invoices/{supplierInvoiceId}/void` |
| `TagAssignmentBody` | Request body | `POST /api/v1/tags/{tagId}/assignments` |
| `TagAssignmentResultDto` | Result of an action | `POST /api/v1/tags/{tagId}/assignments` |
| `TagAssignmentResultResponse` | Response envelope | — |
| `TagCreateBody` | Request body | `POST /api/v1/tags` |
| `TagCreateResultDto` | Result of an action | `POST /api/v1/tags` |
| `TagCreateResultResponse` | Response envelope | — |
| `TagDto` | Object | `tag` |
| `TagItems` | Response envelope | — |
| `TaskCreateBody` | Request body | `POST /api/v1/tasks` |
| `TaskDto` | Object | `task` |
| `TaskList` | Response envelope | — |
| `TaskResponse` | Response envelope | — |
| `TaskTypeDto` | Object | `task type` |
| `TaskTypeItems` | Response envelope | — |
| `TaskUpdateBody` | Request body | `PATCH /api/v1/tasks/{taskId}` |
| `TreasuryAccountDto` | Object | `treasury account` |
| `TreasuryAccountList` | Response envelope | — |
| `TreasuryAccountResponse` | Response envelope | — |
| `UnavailabilityCreateBody` | Request body | `POST /api/v1/availability/unavailabilities` |
| `UnavailabilityDto` | Object | `unavailability` |
| `UnavailabilityList` | Response envelope | — |
| `UnavailabilityResultDto` | Result of an action | `POST /api/v1/availability/unavailabilities` |
| `UnavailabilityResultResponse` | Response envelope | — |
| `UnavailabilityUpdateBody` | Request body | `PATCH /api/v1/availability/unavailabilities/{unavailabilityId}` |
| `UnreserveOrderResponse` | Response envelope | — |
| `UserDto` | Object | `user` |
| `UserList` | Response envelope | — |
| `VehicleAvailabilityBody` | Request body | `POST /api/v1/vehicles/availability` |
| `VehicleCreateBody` | Request body | `POST /api/v1/vehicles` |
| `VehicleDto` | Object | `vehicle` |
| `VehicleList` | Response envelope | — |
| `VehicleResponse` | Response envelope | — |
| `VehicleUpdateBody` | Request body | `PATCH /api/v1/vehicles/{vehicleId}` |
| `WorkflowDto` | Object | `workflow` |
| `WorkflowList` | Response envelope | — |
| `WorkflowRunCreateBody` | Request body | `POST /api/v1/workflows/{workflowId}/runs` |
| `WorkflowRunCreatedDto` | Result of an action | `POST /api/v1/workflows/{workflowId}/runs` |
| `WorkflowRunCreatedResponse` | Response envelope | — |

---

Canonical URL: https://docs.filmo.io/rest-api/openapi  
Last updated: 2026-10-25