openapi: 3.1.0 info: title: API Key accounts properties API version: 1.0.0 servers: - url: https://api.coperniq.io/v1 description: Production server tags: - name: properties paths: /properties: get: operationId: list-properties summary: List Properties description: 'Retrieve list of properties organized by record type. When `record_type` is **omitted**, the response includes all keys: `account`, `opportunity`, `project`, `vendor`, and `ahj` — plus the deprecated alias keys `client` and `request`. When `record_type` is **provided**, the response contains only the requested key(s). Filtering by `account` or `client` returns both `account` and `client` (identical data); filtering by `opportunity` or `request` returns both `opportunity` and `request` (identical data). > **Note:** `client` and `request` are deprecated aliases for `account` and `opportunity` respectively. They will continue to be returned until all users have migrated. > **AHJ:** The `ahj` key returns only customer-defined custom properties (`isCustom: true`). Standard built-in AHJ fields are not included here — they are exposed directly on the AHJ object instead, and are not updatable via the public API. ' tags: - properties parameters: - name: record_type in: query description: 'Filter by record type. Can also be supplied as a comma-separated list (`?record_type=project,vendor`) or repeated (`?record_type=project&record_type=vendor`) to request multiple types in one call. When omitted, the response includes every record-type key. When supplied, the response includes only the requested key(s) — plus the matching deprecated alias key where applicable (`account` ↔ `client`, `opportunity` ↔ `request`). > **Note:** `client` and `request` are deprecated aliases for `account` and `opportunity` respectively. They are still accepted as input. ' required: false schema: $ref: '#/components/schemas/PropertiesGetParametersRecordType' - name: x-api-key in: header required: true schema: type: string responses: '200': description: List of properties content: application/json: schema: $ref: '#/components/schemas/Properties_listProperties_Response_200' components: schemas: Property: type: object properties: name: type: string description: Property name type: type: string description: Property type keyName: type: string description: Property key name isMultiple: type: boolean description: Whether the property is a multiple value property options: type: array items: type: string description: Property options defaultValue: type: array items: description: Any type description: Default value isCustom: type: boolean description: True for customer-defined custom columns, false for built-in standard properties. title: Property Properties_listProperties_Response_200: type: object properties: account: type: array items: $ref: '#/components/schemas/Property' opportunity: type: array items: $ref: '#/components/schemas/Property' project: type: array items: $ref: '#/components/schemas/Property' vendor: type: array items: $ref: '#/components/schemas/Property' ahj: type: array items: $ref: '#/components/schemas/Property' description: 'Customer-defined custom AHJ properties only (`isCustom: true`). Standard built-in AHJ fields are not included.' client: type: array items: $ref: '#/components/schemas/Property' description: Deprecated alias for `account`. Contains identical data. request: type: array items: $ref: '#/components/schemas/Property' description: Deprecated alias for `opportunity`. Contains identical data. title: Properties_listProperties_Response_200 PropertiesGetParametersRecordType: type: string enum: - account - opportunity - project - vendor - ahj title: PropertiesGetParametersRecordType securitySchemes: BasicAuth: type: http scheme: basic