{"openapi":"3.0.0","paths":{"/records/{objectName}":{"get":{"operationId":"RecordsOperationsController_records.listGet","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"deleted","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","required":false,"schema":{"type":"string"}},{"name":"countMode","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"summary":"List (GET)"},"post":{"operationId":"RecordsOperationsController_records.create","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Records"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRecordDto"}}}},"summary":"Create"}},"/records/{objectName}/list":{"post":{"operationId":"RecordsOperationsController_records.list","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-timezone","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListQueryDto"}}}},"summary":"List"}},"/records/{objectName}/aggregate":{"post":{"operationId":"RecordsOperationsController_records.aggregate","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-timezone","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AggregateRecordsDto"}}}},"summary":"Aggregate"}},"/records/{objectName}/search":{"post":{"operationId":"RecordsOperationsController_records.search","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-timezone","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchQueryDto"}}}},"summary":"Search"}},"/records/{objectName}/bulk-delete":{"post":{"operationId":"RecordsOperationsController_records.bulkDelete","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteRecordsDto"}}}},"summary":"Bulk delete"}},"/records/{objectName}/bulk-create":{"post":{"operationId":"RecordsOperationsController_records.bulkCreate","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Records"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateRecordsDto"}}}},"summary":"Bulk create"}},"/records/{objectName}/bulk-update":{"post":{"operationId":"RecordsOperationsController_records.bulkUpdate","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUpdateRecordsDto"}}}},"summary":"Bulk update"}},"/records/{objectName}/{recordId}/visibility":{"patch":{"operationId":"RecordsOperationsController_records.setVisibility","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"recordId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetRecordVisibilityDto"}}}},"summary":"Set visibility"}},"/records/{objectName}/{recordId}/appearance":{"put":{"operationId":"RecordsOperationsController_records.setIcon","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"recordId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"icon":{"type":"string","description":"Icon name; replaces the record's image."}},"required":["icon"]}}}},"summary":"Set icon"},"delete":{"operationId":"RecordsOperationsController_records.clearAppearance","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"recordId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"summary":"Clear appearance"}},"/records/{objectName}/{recordId}/image":{"put":{"operationId":"RecordsOperationsController_records.setImage","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"recordId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"Public PNG, JPEG, GIF, WebP or AVIF image (max 5 MiB); replaces the record's icon and previous image."}},"required":["file"]}}}},"summary":"Set image"}},"/records/{objectName}/{id}":{"get":{"operationId":"RecordsOperationsController_records.get","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"includeDeleted","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"summary":"Get"},"put":{"operationId":"RecordsOperationsController_records.update","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"if-match","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"minProperties":1,"description":"Partial record data: attribute name → value, sent directly as the body (no `data` wrapper). Must contain at least one key."}}}},"summary":"Update"},"delete":{"operationId":"RecordsOperationsController_records.delete","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["Records"],"summary":"Delete"}},"/records/{objectName}/{id}/restore":{"post":{"operationId":"RecordsOperationsController_records.restore","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"summary":"Restore"}},"/records/{objectName}/{id}/purge":{"post":{"operationId":"RecordsOperationsController_records.purge","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"summary":"Purge"}},"/records/{objectName}/{id}/documents/attach":{"post":{"operationId":"RecordsOperationsController_records.attachDocument","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Records"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"files":{"type":"string","format":"binary","description":"File to attach (single file, max 200 MB)."},"title":{"type":"string","description":"Document title; defaults to the file name."},"attributeName":{"type":"string","default":"attachments","description":"Document attribute of the record to attach under."},"documentId":{"type":"string","format":"uuid","description":"Attach into an existing document instead of creating one."},"parentId":{"type":"string","description":"Parent folder ID; an empty string targets the drive root."},"properties":{"type":"string","description":"Qualified edge properties of the record → document link, as a JSON-encoded object."},"position":{"type":"number","description":"Sort position among siblings."}},"required":["files"]}}}},"summary":"Attach document"}},"/records/{objectName}/{id}/documents":{"get":{"operationId":"RecordsOperationsController_records.documents","parameters":[{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Records"],"summary":"List documents"}},"/files/upload":{"post":{"operationId":"FilesOperationsController_files.upload","parameters":[],"responses":{"201":{"description":""}},"tags":["Files"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"files":{"type":"array","maxItems":10,"items":{"type":"string","format":"binary"},"description":"Files to upload (up to 10, max 50 MB each). The declared MIME type is verified against the file's magic numbers."},"folderPath":{"type":"string","description":"Destination folder path."},"public":{"type":"string","enum":["true","false"],"description":"\"true\" uploads every file of the request as public."}},"required":["files"]}}}},"summary":"Upload"}},"/files":{"get":{"operationId":"FilesOperationsController_files.list","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"number"}},{"name":"offset","in":"query","required":false,"schema":{"type":"number"}},{"name":"folderPath","in":"query","required":false,"schema":{"type":"string"}},{"name":"mimeType","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Files"],"summary":"List"}},"/files/public-files-url":{"get":{"operationId":"FilesOperationsController_files.publicFilesUrl","parameters":[],"responses":{"200":{"description":""}},"tags":["Files"],"summary":"Public files url"}},"/files/urls":{"post":{"operationId":"FilesOperationsController_files.signedUrls","parameters":[],"responses":{"201":{"description":""}},"tags":["Files"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","minItems":1,"maxItems":200,"items":{"type":"string"},"description":"File IDs; an ID the caller cannot read is absent from the answer."},"variant":{"type":"string","enum":["original","thumbnail"],"description":"`thumbnail` resizes inline images."}},"required":["ids"]}}}},"summary":"Get signed URLs"}},"/files/{id}":{"get":{"operationId":"FilesOperationsController_files.get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Files"],"summary":"Get"},"put":{"operationId":"FilesOperationsController_files.update","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Files"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFileDto"}}}},"summary":"Update"}},"/files/{id}/url":{"get":{"operationId":"FilesOperationsController_files.signedUrl","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Files"],"summary":"Get signed URL"}},"/documents":{"get":{"operationId":"DocumentsOperationsController_documents.list","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"number"}},{"name":"offset","in":"query","required":false,"schema":{"type":"number"}}],"responses":{"200":{"description":""}},"tags":["Documents"],"summary":"List"},"post":{"operationId":"DocumentsOperationsController_documents.create","parameters":[],"responses":{"201":{"description":""}},"tags":["Documents"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDocumentDto"}}}},"summary":"Create"}},"/documents/record-owners":{"get":{"operationId":"DocumentsOperationsController_documents.recordOwners","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"number"}},{"name":"offset","in":"query","required":false,"schema":{"type":"number"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"includeDrives","in":"query","required":false,"schema":{"type":"string"}},{"name":"ids","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Documents"],"summary":"List record owners"}},"/documents/{id}":{"get":{"operationId":"DocumentsOperationsController_documents.get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Documents"],"summary":"Get"},"delete":{"operationId":"DocumentsOperationsController_documents.delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["Documents"],"summary":"Delete"}},"/documents/{id}/restore":{"post":{"operationId":"DocumentsOperationsController_documents.restore","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Documents"],"summary":"Restore"}},"/documents/{id}/files":{"get":{"operationId":"DocumentsOperationsController_documents.files","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Documents"],"summary":"Get files"},"post":{"operationId":"DocumentsOperationsController_documents.addFile","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Documents"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{"type":"string","format":"uuid","description":"Already-uploaded file to append to the document's pack."}},"required":["fileId"]}}}},"summary":"Add file"}},"/documents/{id}/files/{fileId}":{"delete":{"operationId":"DocumentsOperationsController_documents.removeFile","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"fileId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["Documents"],"summary":"Remove file"}},"/documents/{id}/files/{fileId}/content":{"get":{"operationId":"DocumentsOperationsController_documents.fileContent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"fileId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Documents"],"summary":"Get file content"}},"/documents/{id}/preview":{"get":{"operationId":"DocumentsOperationsController_documents.preview","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Documents"],"summary":"Get preview"}},"/documents/{id}/rename":{"post":{"operationId":"DocumentsOperationsController_documents.rename","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Documents"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"New document name."}},"required":["name"]}}}},"summary":"Rename"}},"/documents/{id}/content":{"get":{"operationId":"DocumentsOperationsController_documents.content","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Documents"],"summary":"Get slot content"}},"/schema/objects":{"get":{"operationId":"SchemaObjectsOperationsController_schemaObjects.list","parameters":[{"name":"systemOnly","in":"query","required":false,"schema":{"type":"string"}},{"name":"customOnly","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Schema"],"summary":"List objects"},"post":{"operationId":"SchemaObjectsOperationsController_schemaObjects.create","parameters":[],"responses":{"201":{"description":""}},"tags":["Schema"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomObjectInput"}}}},"summary":"Create object"}},"/schema/objects/{objectIdOrName}":{"get":{"operationId":"SchemaObjectsOperationsController_schemaObjects.get","parameters":[{"name":"objectIdOrName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Schema"],"summary":"Get object"}},"/schema/objects/{objectId}":{"put":{"operationId":"SchemaObjectsOperationsController_schemaObjects.update","parameters":[{"name":"objectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Schema"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateObjectInput"}}}},"summary":"Update object"},"delete":{"operationId":"SchemaObjectsOperationsController_schemaObjects.delete","parameters":[{"name":"objectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["Schema"],"summary":"Delete object"}},"/schema/objects/{objectId}/attributes":{"get":{"operationId":"SchemaObjectsOperationsController_schemaObjects.attributes","parameters":[{"name":"objectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"systemOnly","in":"query","required":false,"schema":{"type":"string"}},{"name":"customOnly","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Schema"],"summary":"List attributes"},"post":{"operationId":"SchemaObjectsOperationsController_schemaObjects.addAttribute","parameters":[{"name":"objectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Schema"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddAttributeInput"}}}},"summary":"Add attribute"}},"/schema/objects/{objectId}/attributes/{id}":{"put":{"operationId":"SchemaObjectsOperationsController_schemaObjects.updateAttribute","parameters":[{"name":"objectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Schema"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAttributeInput"}}}},"summary":"Update attribute"},"delete":{"operationId":"SchemaObjectsOperationsController_schemaObjects.deleteAttribute","parameters":[{"name":"objectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["Schema"],"summary":"Delete attribute"}}},"info":{"title":"API Standards","description":"Public API of Standards","version":"v1","contact":{}},"tags":[],"servers":[{"url":"https://api.standards.new/v1"}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"SortRule":{"type":"object","description":"A single sort rule.","properties":{"attribute":{"type":"string","description":"Attribute name to sort by."},"direction":{"type":"string","enum":["asc","desc"],"description":"Sort direction."}},"required":["attribute","direction"]},"FilterRule":{"type":"object","description":"A single filter rule. The operator must be valid for the attribute's type.","properties":{"attribute":{"type":"string","description":"Root attribute name (a scalar attribute, or a reference attribute when `property` is set)."},"property":{"type":"string","description":"When set, the rule filters on a qualified edge property of a reference attribute (relation or document). The operator then applies to the property's type."},"quantifier":{"type":"string","enum":["any","none"],"description":"Existence quantifier for qualified edge rules (\"at least one\" vs \"none\"). Only valid when `property` is set; defaults to the operator-derived polarity."},"operator":{"type":"string","enum":["is","is_not","contains","not_contains","starts_with","ends_with","is_empty","is_not_empty","eq","neq","lt","gt","lte","gte","is_checked","is_not_checked","before","after","on_or_before","on_or_after","is_within","day_month_eq","any_of","none_of"],"description":"Filter operator. The valid subset depends on the attribute type (text, number, checkbox, date, select, multiselect, relation)."},"value":{"description":"Filter value. The type depends on the attribute and operator: string, number, boolean, array of strings, a relative date object ({ amount, unit, direction }) for `is_within`, a dynamic value such as @me ({ dynamic: \"actor\", ref: \"current\" }) or @today ({ dynamic: \"date\", anchor: \"today\" }), or null for operators like `is_empty`."}},"required":["attribute","operator","value"]},"FilterState":{"type":"object","description":"Filter configuration: a combinator plus a flat list of rules.","properties":{"combinator":{"type":"string","enum":["and","or"],"description":"How to combine rules."},"rules":{"type":"array","items":{"$ref":"#/components/schemas/FilterRule"}}},"required":["combinator","rules"]},"ListQueryDto":{"type":"object","description":"Query for listing records with filters, sorts and pagination.","properties":{"limit":{"type":"integer","minimum":0,"maximum":100,"default":20,"description":"Page size. Values above 100 are clamped to 100."},"offset":{"type":"integer","minimum":0,"default":0,"description":"Number of records to skip."},"countMode":{"type":"string","enum":["none","estimated","exact"],"default":"estimated","description":"Total-count strategy for the response."},"sorts":{"type":"array","items":{"$ref":"#/components/schemas/SortRule"},"description":"Sort rules, applied in order."},"filters":{"$ref":"#/components/schemas/FilterState"},"relationScope":{"type":"object","properties":{"objectName":{"type":"string"},"recordId":{"type":"string"},"attribute":{"type":"string"}},"required":["objectName","recordId","attribute"],"description":"Scope the collection through a relation attribute on its owner record."},"group":{"type":"object","properties":{"attribute":{"type":"string"},"value":{"type":"string","nullable":true}},"required":["attribute","value"],"description":"Select one Kanban partition, combined with the complete filter predicates."},"userFilters":{"$ref":"#/components/schemas/FilterState"},"visibility":{"type":"string","enum":["workspace","private"],"description":"Narrow the result to a record visibility scope without widening access."},"timezone":{"type":"string","example":"Europe/Paris","description":"IANA timezone for resolving @today dynamic filter values."},"fields":{"type":"array","items":{"type":"string"},"description":"Attribute names to hydrate from reference edges. Omitted → all reference attributes are hydrated. An empty array disables reference hydration entirely (reference keys are absent from the response). Unknown names are ignored."}}},"SearchQueryDto":{"type":"object","description":"Full-text search query with the same filtering options as list.","properties":{"q":{"type":"string","description":"Full-text search query."},"limit":{"type":"integer","minimum":0,"maximum":100,"default":20,"description":"Page size. Values above 100 are clamped to 100."},"offset":{"type":"integer","minimum":0,"default":0,"description":"Number of records to skip."},"countMode":{"type":"string","enum":["none","estimated","exact"],"default":"estimated","description":"Total-count strategy for the response."},"sorts":{"type":"array","items":{"$ref":"#/components/schemas/SortRule"},"description":"Sort rules, applied in order."},"filters":{"$ref":"#/components/schemas/FilterState"},"relationScope":{"type":"object","properties":{"objectName":{"type":"string"},"recordId":{"type":"string"},"attribute":{"type":"string"}},"required":["objectName","recordId","attribute"],"description":"Scope the collection through a relation attribute on its owner record."},"group":{"type":"object","properties":{"attribute":{"type":"string"},"value":{"type":"string","nullable":true}},"required":["attribute","value"],"description":"Select one Kanban partition, combined with the complete filter predicates."},"userFilters":{"$ref":"#/components/schemas/FilterState"},"visibility":{"type":"string","enum":["workspace","private"],"description":"Narrow the result to a record visibility scope without widening access."},"timezone":{"type":"string","example":"Europe/Paris","description":"IANA timezone for resolving @today dynamic filter values."},"fields":{"type":"array","items":{"type":"string"},"description":"Attribute names to hydrate from reference edges. Omitted → all reference attributes are hydrated. An empty array disables reference hydration entirely (reference keys are absent from the response). Unknown names are ignored."}},"required":["q"]},"BulkCreateRecordsDto":{"type":"object","properties":{"records":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","additionalProperties":true,"description":"Record data as an attribute name → value map. Available attributes are defined by the object's schema."},"description":"Array of record data to create (min 1, max 100). Larger imports must be split client-side."},"options":{"type":"object","description":"Options applied to the operation.","properties":{"allowDraft":{"type":"boolean","default":false,"description":"Allow creating records with missing required fields."}}}},"required":["records"]},"BulkUpdateRecordsDto":{"type":"object","properties":{"updates":{"type":"array","minItems":1,"maxItems":100,"description":"Array of { id, data } pairs (min 1, max 100).","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Record ID to update."},"data":{"type":"object","additionalProperties":true,"description":"Partial record data: attribute name → value."}},"required":["id","data"]}}},"required":["updates"]},"BulkDeleteRecordsDto":{"type":"object","properties":{"ids":{"type":"array","maxItems":100,"items":{"type":"string","format":"uuid"},"description":"Record IDs to delete (max 100)."}},"required":["ids"]},"SetRecordVisibilityDto":{"type":"object","properties":{"visibility":{"type":"string","enum":["workspace","private"],"description":"Record visibility: shared with the workspace, or private."}},"required":["visibility"]},"UpdateFileDto":{"type":"object","properties":{"name":{"type":"string","description":"New display name."},"folderPath":{"type":"string","description":"New folder path."}}},"AddAttributeInput":{"type":"object","additionalProperties":true,"description":"Definition of a new attribute. Type-specific configuration (e.g. options for select, decimals for number, target object for relation) is passed as additional top-level keys.","properties":{"name":{"type":"string","description":"Unique machine name within the object."},"label":{"type":"string","description":"Human-readable label."},"type":{"type":"string","enum":["text","richtext","number","checkbox","date","phone","currency","status","location","select","multiselect","file","user","relation","formula","rollup","document"],"description":"Attribute type."},"required":{"type":"boolean"},"unique":{"type":"boolean"},"description":{"type":"string"},"placeholder":{"type":"string"},"icon":{"type":"string","description":"Icon name."},"defaultValue":{"description":"Default value; the shape depends on the attribute type."},"metadata":{"type":"object","additionalProperties":true}},"required":["name","label","type"]},"UpdateAttributeInput":{"type":"object","additionalProperties":true,"description":"Partial attribute update — every field of AddAttributeInput, all optional.","properties":{"name":{"type":"string"},"label":{"type":"string"},"type":{"type":"string","enum":["text","richtext","number","checkbox","date","phone","currency","status","location","select","multiselect","file","user","relation","formula","rollup","document"]},"required":{"type":"boolean"},"unique":{"type":"boolean"},"description":{"type":"string"},"placeholder":{"type":"string"},"icon":{"type":"string"},"defaultValue":{"description":"Default value; the shape depends on the attribute type."},"metadata":{"type":"object","additionalProperties":true}}},"CreateCustomObjectInput":{"type":"object","description":"Definition of a new custom object.","properties":{"name":{"type":"string","description":"Unique machine name (snake_case)."},"label":{"type":"string","description":"Human-readable singular label."},"pluralLabel":{"type":"string"},"labelExpression":{"type":"string","description":"Expression that computes a record's display label (e.g. \"{first_name} {last_name}\")."},"embeddingExpression":{"type":"string","description":"Expression that builds the text embedded for semantic search."},"description":{"type":"string"},"icon":{"type":"string","description":"Icon name."},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/AddAttributeInput"},"description":"Initial attributes to create with the object."},"metadata":{"type":"object","additionalProperties":true}},"required":["name","label","labelExpression"]},"UpdateObjectInput":{"type":"object","description":"Partial object update — only the provided fields change.","properties":{"label":{"type":"string"},"pluralLabel":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string","description":"Icon name."},"labelExpression":{"type":"string"},"embeddingExpression":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}}},"CreateRecordDto":{"type":"object","properties":{"data":{"type":"object","additionalProperties":true,"description":"Record data as an attribute name → value map. Available attributes are defined by the object's schema."},"options":{"type":"object","description":"Options applied to the operation.","properties":{"allowDraft":{"type":"boolean","default":false,"description":"Allow creating records with missing required fields."}}}},"required":["data"]},"CreateDocumentDto":{"type":"object","properties":{"title":{"type":"string","description":"Document title."},"objectName":{"type":"string","description":"Object the source record belongs to."},"sourceRecordId":{"type":"string","format":"uuid","description":"Record the document is attached to."},"attributeName":{"type":"string","description":"Document attribute of the record the document lives under."},"parentId":{"type":"string","nullable":true,"description":"Parent folder ID; null for the drive root."},"kind":{"type":"string","enum":["file","folder"],"default":"file"},"description":{"type":"string"},"position":{"type":"number","description":"Sort position among siblings."}},"required":["title","objectName","sourceRecordId","attributeName"]},"AggregateGroupBy":{"description":"A grouping: a status, select, single user or single relation attribute by name, or a date attribute cut into buckets.","oneOf":[{"type":"string","description":"Attribute name."},{"type":"object","properties":{"attribute":{"type":"string","description":"Date attribute (createdAt/updatedAt included)."},"bucket":{"type":"string","enum":["day","week","month","quarter","year"]}},"required":["attribute","bucket"]}]},"AggregateRecordsDto":{"type":"object","description":"A measure over the records a query selects, optionally grouped (twice) and compared with the previous period. Keys outside this list are refused.","properties":{"query":{"type":"object","description":"The records measured. `sorts` and `limit` are ignored.","properties":{"source":{"type":"object","additionalProperties":true,"description":"The collection the query reads (an object, or a relation of a host record)."},"filters":{"$ref":"#/components/schemas/FilterState"},"sorts":{"type":"array","items":{"$ref":"#/components/schemas/SortRule"}},"limit":{"type":"integer","minimum":0}},"required":["source"]},"measure":{"type":"string","enum":["count","sum","avg","min","max"]},"attribute":{"type":"string","description":"The number or currency attribute measured; required unless `measure` is `count`."},"groupBy":{"$ref":"#/components/schemas/AggregateGroupBy"},"groupBy2":{"$ref":"#/components/schemas/AggregateGroupBy"},"compare":{"type":"object","description":"Restricts the measure to the current period on a date attribute and answers the previous one in `previous`.","properties":{"attribute":{"type":"string"},"period":{"type":"string","enum":["day","week","month","quarter","year","7d","30d"]}},"required":["attribute","period"]},"userFilters":{"$ref":"#/components/schemas/FilterState"},"timezone":{"type":"string","description":"IANA timezone of the date buckets, the comparison windows and `@today`; defaults to UTC."},"hostRecordId":{"type":"string","description":"The host record a relation-sourced query reads from."}},"required":["query","measure"]}}}}