openapi: 3.2.0 info: title: Eliq Intelligence Location Segmentation API description: '# API Reference The Eliq Intelligence API is organized around REST.' contact: name: Support email: support_b2b@eliq.com version: 1.0.0 security: - Bearer: [] tags: - name: LocationSegmentation paths: /locations/segmentation/filter: post: tags: - LocationSegmentation summary: Filters Location Segmentation data requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/PagedFilterRequest' application/json: schema: $ref: '#/components/schemas/PagedFilterRequest' text/json: schema: $ref: '#/components/schemas/PagedFilterRequest' application/*+json: schema: $ref: '#/components/schemas/PagedFilterRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FilterResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorDetails' operationId: postLocationsSegmentationFilter x-operation-id-source: derived /locations/segmentation/export/create: post: tags: - LocationSegmentation summary: Creates an export job to export all segments to a CSV file requestBody: description: '' content: application/json-patch+json: schema: $ref: '#/components/schemas/FilterRequest' application/json: schema: $ref: '#/components/schemas/FilterRequest' text/json: schema: $ref: '#/components/schemas/FilterRequest' application/*+json: schema: $ref: '#/components/schemas/FilterRequest' responses: '201': description: Returns the newly created export job '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorDetails' operationId: postLocationsSegmentationExportCreate x-operation-id-source: derived /locations/segmentation/export/{jobId}: get: tags: - LocationSegmentation summary: Gets the export job parameters: - name: jobId in: path description: The ID of the export job. required: true schema: type: string format: uuid responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ExportJob' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorDetails' operationId: getLocationsSegmentationExportByJobId x-operation-id-source: derived /locations/segmentation/export/{jobId}/download: get: tags: - LocationSegmentation summary: Downloads the file containing exported locations parameters: - name: jobId in: path description: The ID of the export job. required: true schema: type: string format: uuid responses: '200': description: OK '400': description: Bad Request content: application/octet-stream: schema: $ref: '#/components/schemas/ErrorDetails' application/json: schema: $ref: '#/components/schemas/ErrorDetails' operationId: getLocationsSegmentationExportByJobIdDownload x-operation-id-source: derived /locations/segmentation/filter/tariffValues: get: tags: - LocationSegmentation summary: Get tariff filter options. responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/TariffFilterOptions' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorDetails' operationId: getLocationsSegmentationFilterTariffValues x-operation-id-source: derived /locations/segmentation/map: post: tags: - LocationSegmentation parameters: - name: limit in: query schema: type: integer format: int32 requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/FilterRequest' application/json: schema: $ref: '#/components/schemas/FilterRequest' text/json: schema: $ref: '#/components/schemas/FilterRequest' application/*+json: schema: $ref: '#/components/schemas/FilterRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/MapSegmentationResponseDto' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorDetails' summary: Create locations segmentation map x-summary-source: derived operationId: postLocationsSegmentationMap x-operation-id-source: derived components: schemas: ExportJob: type: object properties: id: type: string format: uuid status: $ref: '#/components/schemas/ExportJobStatus' additionalProperties: false Summary: type: object properties: totalLocations: type: integer format: int64 filteredLocations: type: integer format: int64 optimalTariffs: type: - array - 'null' items: $ref: '#/components/schemas/TariffCount' electricVehicles: type: integer format: int64 pv: type: integer format: int64 gasHeating: type: integer format: int64 elecHeating: type: integer format: int64 battery: type: integer format: int64 additionalProperties: false PagingRequest: type: object properties: page: type: integer format: int32 pageSize: type: integer format: int32 additionalProperties: false Assets: type: object properties: electricVehicle: $ref: '#/components/schemas/ElectricVehicle' tariff: $ref: '#/components/schemas/Tariffs' pvDetails: $ref: '#/components/schemas/PvDetails' heatingDetails: $ref: '#/components/schemas/HeatingDetails' battery: $ref: '#/components/schemas/Battery' additionalProperties: false HeatingDetails: type: object properties: estimatedGasHeatingKwh: type: - number - 'null' format: double estimatedElecHeatingKwh: type: - number - 'null' format: double primaryHeatingFuel: type: - string - 'null' otherHeatingFuels: $ref: '#/components/schemas/HeatingFuelFlags' additionalProperties: false AssetKind: enum: - ElectricVehicle - Tariff - pv - GasHeating - ElecHeating - battery type: string JsonNode: type: object properties: options: $ref: '#/components/schemas/JsonNodeOptions' parent: $ref: '#/components/schemas/JsonNode' root: $ref: '#/components/schemas/JsonNode' additionalProperties: false TariffSummary: type: object properties: tariffId: type: - string - 'null' tariffName: type: - string - 'null' annualSavings: type: number format: double annualCosts: type: number format: double additionalProperties: false PagedFilterRequest: type: object properties: paging: $ref: '#/components/schemas/PagingRequest' filters: type: - array - 'null' items: $ref: '#/components/schemas/FilterRequestAsset' additionalProperties: false ErrorDetails: required: - code - description type: object properties: code: minLength: 1 type: string description: minLength: 1 type: string additionalProperties: false HeatingFuelFlags: type: object properties: elec: type: - boolean - 'null' gas: type: - boolean - 'null' additionalProperties: false FilterRequestAsset: required: - asset type: object properties: asset: $ref: '#/components/schemas/AssetKind' exists: type: boolean properties: type: - array - 'null' items: $ref: '#/components/schemas/FilterRequestAssetProperty' additionalProperties: false PvDetectionSource: enum: - disaggregation - import_regression type: string MapSegmentationResponseDto: type: object properties: locations: type: - array - 'null' items: $ref: '#/components/schemas/MapLocationDto' additionalProperties: false FilterResponse: type: object properties: summary: $ref: '#/components/schemas/Summary' locations: type: - array - 'null' items: $ref: '#/components/schemas/FilterResponseItem' paging: $ref: '#/components/schemas/Paging' additionalProperties: false Paging: type: object properties: currentPage: type: integer format: int32 pages: type: integer format: int32 pageSize: type: integer format: int32 additionalProperties: false MapLocationDto: type: object properties: id: type: integer format: int32 ev: type: boolean pv: type: boolean elecHeat: type: boolean gasHeat: type: boolean battery: type: boolean lat: type: number format: double lon: type: number format: double additionalProperties: false TariffFilterOptions: type: object properties: tariffId: type: - string - 'null' tariffName: type: - string - 'null' additionalProperties: false FilterRequest: type: object properties: filters: type: - array - 'null' items: $ref: '#/components/schemas/FilterRequestAsset' additionalProperties: false Battery: type: object properties: score: type: number format: double additionalProperties: false FilterRequestAssetProperty: type: object properties: field: type: - string - 'null' operator: $ref: '#/components/schemas/Operator' value: $ref: '#/components/schemas/JsonNode' additionalProperties: false FilterResponseItem: type: object properties: id: type: integer format: int32 assets: $ref: '#/components/schemas/Assets' consumptionKwh: type: - number - 'null' format: double totalGridImportKwh: type: - number - 'null' format: double totalGridExportKwh: type: - number - 'null' format: double locationExtRef: type: - string - 'null' userId: type: - integer - 'null' format: int32 userExtRef: type: - string - 'null' fromDate: type: string format: date toDate: type: string format: date additionalProperties: false TariffCount: type: object properties: tariffId: type: - string - 'null' count: type: integer format: int32 additionalProperties: false ExportJobStatus: enum: - Created - Pending - Complete - Failed type: string Operator: enum: - eq - neq - gt - lt - gte - lte type: string ElectricVehicle: type: object properties: chargedKwh: type: number format: double chargedPowerKw: type: - array - 'null' items: type: number format: double confidence: type: - number - 'null' format: double additionalProperties: false JsonNodeOptions: type: object properties: propertyNameCaseInsensitive: type: boolean additionalProperties: false Tariffs: type: object properties: optimalTariff: $ref: '#/components/schemas/TariffSummary' additionalProperties: false PvDetails: type: object properties: estimatedProductionKwh: type: - number - 'null' format: double selfConsumptionPercentage: type: - number - 'null' format: double detectionSource: $ref: '#/components/schemas/PvDetectionSource' confidence: type: - number - 'null' format: double additionalProperties: false securitySchemes: Bearer: type: http description: Enter JWT Bearer token **_only_** scheme: bearer bearerFormat: JWT