Errors
validation_ error
400. The query or the body is malformed, or it refers to an identifier that does not exist or does not belong to the account (the message is the same in both cases, so it cannot be used to probe other accounts). errors lists every offending field, not only the first, and nothing is written. HTTP 400.
- HTTP status
- 400
- Problem type
- https://docs.filmo.io/errors/validation_error
Example
When it happens
400. The query or the body is malformed, or it refers to an identifier that does not exist or does not belong to the account (the message is the same in both cases, so it cannot be used to probe other accounts). errors lists every offending field, not only the first, and nothing is written.
What to do
Read every entry of errors: path says which field and code says what is wrong. Correct all of them, then send the request again. Branch on code, never on message or detail, which are written for people and change with the language.
Retry
Fix and resendAny validation 4xx
Fix the request and resend it; never in a loop.
Fields of errors[]
Path of the offending field in dot and bracket notation (lines[0].); empty for the whole body. On contact_in_use, address_in_use and insufficient_stock it is one of a closed set, listed by code in x-path-values: the type of record that uses the contact or the address, or the kind of resource that is short (items or spaces).
Stable code of the field error (required, must_not_be_null, invalid_type, invalid_value, too_small, too_big, unknown_field, invalid_format, not_found, must_be_after…). On a 409 conflict it says the cause: in_progress (another request with the same Idempotency-Key is still running), lock_timeout (another conditional write held the resource for more than five seconds) or invalid_state (the state of the resource forbids the operation).
Localized explanation, in the negotiated language.
Returned by
122 operations
GET /api/v1/contacts— List contactsPOST /api/v1/contacts— Create a contactPATCH /api/v1/contacts/{contactId}— Update a contactPATCH /api/v1/contacts/{contactId}/preferences— Update the commercial terms of a contactPOST /api/v1/contacts/{contactId}/addresses— Add an address to a contactPATCH /api/v1/contacts/{contactId}/addresses/{addressId}— Update an address of a contactPOST /api/v1/contacts/{contactId}/related-contacts— Relate two contactsPATCH /api/v1/contacts/{contactId}/related-contacts/{relatedContactId}— Change the role of a relationshipGET /api/v1/items— List itemsPOST /api/v1/items— Create an itemPATCH /api/v1/items/{itemId}— Update an itemPATCH /api/v1/items/{itemId}/physical-properties— Update weight and dimensionsPATCH /api/v1/items/{itemId}/pricing— Update the pricing of an itemPOST /api/v1/availability/check— Check item availabilityGET /api/v1/orders— List ordersPOST /api/v1/orders— Create an orderPATCH /api/v1/orders/{orderId}— Update the header of an orderGET /api/v1/orders/{orderId}/lines— List the lines of an orderGET /api/v1/invoices— List invoicesGET /api/v1/quotes— List quotesGET /api/v1/projects— List projectsPOST /api/v1/projects— Create a projectPUT /api/v1/projects/{projectId}/archive— Archive or restore a projectPATCH /api/v1/projects/{projectId}— Update a projectGET /api/v1/invoices/{invoiceId}/payments— List the payments of an invoiceGET /api/v1/invoices/{invoiceId}/lines— List the lines of an invoiceGET /api/v1/quotes/{quoteId}/lines— List the lines of a quoteGET /api/v1/serialized-items— List serialized itemsPATCH /api/v1/serialized-items/{serializedItemId}— Update a serialized itemGET /api/v1/spaces— List warehouses and spacesPATCH /api/v1/spaces/{spaceId}— Update a warehouse or spacePUT /api/v1/spaces/{spaceId}/amenities— Replace the amenities and equipmentPATCH /api/v1/spaces/{spaceId}/pricing— Update the pricing of a spaceGET /api/v1/repair-tickets— List repair ticketsPOST /api/v1/repair-tickets— Create a repair ticketPATCH /api/v1/repair-tickets/{ticketId}— Update a repair ticketGET /api/v1/vehicles— List vehiclesPOST /api/v1/vehicles— Create a vehiclePATCH /api/v1/vehicles/{vehicleId}— Update a vehicleGET /api/v1/staff— List staffPOST /api/v1/staff— Create a staff memberPATCH /api/v1/staff/{staffId}— Update a staff memberGET /api/v1/subrents— List subrentsPATCH /api/v1/subrents/{subrentId}— Update a subrentGET /api/v1/purchase-orders— List purchase ordersPATCH /api/v1/purchase-orders/{purchaseOrderId}— Update a purchase orderGET /api/v1/contracts— List contractsGET /api/v1/project-types— List project typesPOST /api/v1/staff/availability— Check staff availabilityPOST /api/v1/vehicles/availability— Check fleet availabilityGET /api/v1/custom-fields— List custom field definitionsGET /api/v1/tags— List tagsPOST /api/v1/tags— Create a tagPOST /api/v1/tags/{tagId}/assignments— Assign a tag to an entityDELETE /api/v1/tags/{tagId}/assignments— Remove a tag from an entityGET /api/v1/kits— List kitsPOST /api/v1/kits— Create a kitPATCH /api/v1/kits/{kitId}— Update a kitGET /api/v1/collections— List collectionsPOST /api/v1/collections— Create a collectionPATCH /api/v1/collections/{collectionId}— Update a collectionGET /api/v1/services— List servicesPOST /api/v1/services— Create a servicePATCH /api/v1/services/{serviceId}— Update a serviceGET /api/v1/internal-services— List internal servicesPOST /api/v1/internal-services— Create an internal servicePATCH /api/v1/internal-services/{internalServiceId}— Update an internal serviceGET /api/v1/planner/services— List the services to coverPOST /api/v1/planner/assignments— Assign a resource to a servicePOST /api/v1/planner/assignments/remove— Remove a resource from a serviceGET /api/v1/schedule— Get the schedule for a rangeGET /api/v1/availability/unavailabilities— List the unavailabilities of a resourcePOST /api/v1/availability/unavailabilities— Declare an unavailabilityPATCH /api/v1/availability/unavailabilities/{unavailabilityId}— Correct or close an unavailabilityGET /api/v1/incidents— List incidentsPOST /api/v1/incidents— Open an incidentPATCH /api/v1/incidents/{incidentId}— Update an incidentGET /api/v1/incidents/status-counts— Count incidents by statusPOST /api/v1/incidents/{incidentId}/comments— Comment on an incidentGET /api/v1/notes— List the notes of an entityPOST /api/v1/notes— Write a note on an entityGET /api/v1/tasks— List tasksPOST /api/v1/tasks— Create a taskPATCH /api/v1/tasks/{taskId}— Update a taskGET /api/v1/task-types— List task typesGET /api/v1/crm/opportunities— List opportunitiesPOST /api/v1/crm/opportunities— Create an opportunityPATCH /api/v1/crm/opportunities/{opportunityId}— Update an opportunityPATCH /api/v1/crm/opportunities/{opportunityId}/stage— Move an opportunity to another stagePOST /api/v1/crm/opportunities/{opportunityId}/close— Close an opportunityPOST /api/v1/crm/opportunities/{opportunityId}/links— Link a document to an opportunityGET /api/v1/crm/pipelines— List pipelinesPOST /api/v1/purchase-orders/{purchaseOrderId}/receive— Receive material from a purchase orderGET /api/v1/supplier-invoices— List supplier invoicesGET /api/v1/treasury/accounts— List treasury accountsGET /api/v1/treasury/payments— List treasury paymentsPOST /api/v1/treasury/payments— Record an incoming or outgoing paymentPATCH /api/v1/treasury/payments/{paymentId}— Update a paymentPOST /api/v1/treasury/payments/{paymentId}/links— Link a payment to a documentPUT /api/v1/orders/{orderId}/archive— Archive or restore an orderPUT /api/v1/items/{itemId}/accessories— Update the accessories of an itemPUT /api/v1/items/{itemId}/alternatives— Update the alternatives of an itemPATCH /api/v1/items/{itemId}/variants/{variantId}— Update a variant of an itemGET /api/v1/planner/resources— List the assignable resourcesGET /api/v1/credit-notes— List credit notesGET /api/v1/proformas— List proformasPOST /api/v1/contacts/lookup— Look up contacts by external referencePOST /api/v1/orders/line-items/returns— Return order linesPOST /api/v1/ai/ask— Ask the AI about your dataGET /api/v1/workflows— List workflowsPOST /api/v1/workflows/{workflowId}/runs— Run a workflowPOST /api/v1/invoices/{invoiceId}/void— Void an invoicePUT /api/v1/invoices/external/{originSystem}/{originExternalId}— Create or update the mirror of an externally issued invoicePOST /api/v1/credit-notes/{creditNoteId}/void— Void a credit notePATCH /api/v1/proformas/{proformaId}/status— Change the commercial status of a proformaPATCH /api/v1/quotes/{quoteId}/status— Change the commercial status of a quotePOST /api/v1/contracts/{contractId}/sign— Record the signature of a contractPOST /api/v1/contracts/{contractId}/void— Void a contractPOST /api/v1/contracts/{contractId}/cancel— Cancel a contract operativelyPOST /api/v1/supplier-invoices/{supplierInvoiceId}/void— Void a supplier invoiceGET /api/v1/payment-methods— List payment methodsGET /api/v1/users— List users
Through MCP
A tool call that fails comes back with `isError` set and the problem as structured content, with the same `code`.
Was this page helpful?