# Update a project Update a project by id. This endpoint supports partial updates using PATCH semantics: - Only fields present in the request will be updated - Null values will clear optional fields (note, retentionDays) - Absent fields will remain unchanged - Required fields (name, extractionModelId, ocr, completion, duplicates, isLive, members, schema) cannot be set to null - At least one field must be provided in the request Endpoint: PATCH /projects/{id} Version: 2.51.0 Security: OAuth2 ## Path parameters: - `id` (string, required) Project id Example: "63e6663823b4c1f5287398bb" ## Request fields (application/json): - `name` (string) Project name Example: "My Project" - `note` (string) Project note Example: "My project description note" - `ocr` (any) - `extractionModelId` (string) Extraction Model id Example: "63e6663823b4c1f5287398bb" - `completion` (string) ProjectCompletion type * automatic - Mark documents as completed after succesfull validation * manual - Mark documents to review after succesfull validation Enum: "automatic", "manual" - `duplicates` (string) How duplicates documents show be handle * allow - Allow documents duplicates to be processed * fail - Mark documents duplicates as failed Enum: "allow", "fail" - `retentionDays` (integer) Project document retention in days Example: 180 - `isLive` (boolean) Indicates if a project is live or not - `members` (any) - `schema` (object) - `schema.version` (integer) Example: 1 - `schema.dataPoints` (array) Example: [{"internalName":"type","displayName":"Type","type":"string","source":{"type":"extractor"},"normalization":[],"rules":{}},{"internalName":"number","displayName":"Number","type":"string","source":{"type":"extractor"},"normalization":[],"rules":{}},{"internalName":"issuedAt","displayName":"Issued At","type":"date","preferDayOfMonth":"last","source":{"type":"extractor"},"normalization":[],"rules":{}},{"internalName":"deliveredAt","displayName":"Delivered At","type":"date","preferDayOfMonth":"last","source":{"type":"extractor"},"normalization":[],"rules":{}},{"internalName":"currency","displayName":"Currency","type":"string","source":{"type":"extractor"},"normalization":[],"rules":{}}] - `schema.dataPoints.internalName` (string) - `schema.dataPoints.displayName` (string) - `schema.dataPoints.type` (string) - `schema.dataPoints.normalization` (array) - `schema.dataPoints.rules` (object) - `schema.features` (object) - `schema.features.derivation` (boolean) - `schema.enrichment` (object) - `schema.validation` (object) ## Response 200 fields (application/json): - `id` (string, required) Project ID Example: "63e6663823b4c1f5287398bb" - `createdAt` (string, required) Example: "1990-12-31T15:46:19.384990Z" - `createdBy` (string, required) Project member id Example: "63e6663823b4c1f5287398bb" - `updatedAt` (string, required) Example: "1990-12-31T15:46:19.384990Z" - `updatedBy` (string, required) Project member id Example: "63e6663823b4c1f5287398bb" - `name` (string, required) Project name Example: "My Project" - `note` (string) Project note Example: "My project description note" - `extractionModelId` (string, required) Extraction Model id Example: "63e6663823b4c1f5287398bb" - `ocr` (any, required) - `completion` (string, required) ProjectCompletion type * automatic - Mark documents as completed after succesfull validation * manual - Mark documents to review after succesfull validation Enum: "automatic", "manual" - `duplicates` (string, required) How duplicates documents show be handle * allow - Allow documents duplicates to be processed * fail - Mark documents duplicates as failed Enum: "allow", "fail" - `members` (any, required) - `retentionDays` (integer) Project document retention in days Example: 180 - `isLive` (boolean, required) Indicates if a project is live or not ## Response 400 fields (application/json): - `detail` (string, required) A human readable explanation of the error. - `status` (integer, required) The HTTP status code. - `title` (string, required) A short summary of the error ## Response 401 fields (application/json): - `detail` (string, required) A human readable explanation of the error. - `status` (integer, required) The HTTP status code. - `title` (string, required) A short summary of the error ## Response 403 fields (application/json): - `detail` (string, required) A human readable explanation of the error. - `status` (integer, required) The HTTP status code. - `title` (string, required) A short summary of the error ## Response 404 fields (application/json): - `detail` (string, required) A human readable explanation of the error. - `status` (integer, required) The HTTP status code. - `title` (string, required) A short summary of the error ## Response 422 fields (application/json): - `detail` (string, required) A human readable explanation of the error. - `status` (integer, required) The HTTP status code. - `title` (string, required) A short summary of the error