openapi: 3.0.2 info: description: Endpoints to create or update meters in bulk through Leap's API. title: Create Meters version: 1.1.0 servers: - description: Leap staging API url: https://api.staging.leap.energy - description: Leap production API url: https://api.leap.energy security: - Bearer: [] tags: - name: create meters - name: provisional assets paths: /v1.1/jobs/meters: get: description: List all meter upload jobs and their status. operationId: listMeterBatchJobs parameters: - description: "One or more filters to apply. Uses the `AND` approach, so all\ \ filters should match for meter jobs to show up. Use the `/v1.1/jobs/meter-job-filters`\ \ endpoint to retrieve all available filters that can be applied when querying\ \ meter jobs. When you provide multiple values for a key (e.g. transmission_region),\ \ the IN operator is used. Combine multiple filters like this: `?filter=file_name:Test&filter=status:FAILED`" explode: true in: query name: filter required: false schema: example: - file_name:Test - status:FAILED items: type: string type: array style: form - description: "If there are more meter jobs to fetch, this token will be populated\ \ as `next_page_token` in the response. Use it to fetch the next page of\ \ meter jobs." explode: true in: query name: page_token required: false schema: type: string style: form - description: Amount of results to return. Defaults to 100. explode: true in: query name: page_size required: false schema: default: 100 type: integer style: form - description: Search query to apply. Comma-separate multiple values. This is a free-text search that will be applied when searching through the meter jobs. Define the fields to search through in the `search_fields` parameter. example: partner123 explode: true in: query name: search_query required: false schema: type: string style: form - description: "Fields to search through. Required if `search_query` is provided.\ \ If the string from `search_query` is found in any of these fields, the\ \ meter jobs will be included in the results." example: - partner_reference - file_name explode: true in: query name: search_fields required: false schema: items: type: string minItems: 0 type: array style: form responses: "200": content: application/json: example: jobs: - job_id: 5961a37f-6325-431c-97cb-82f35e3c09cf status: COMPLETED file_name: meters_upload.csv assets_count: 10 assets_created_count: 8 assets_updated_count: 2 assets_failed_count: 0 transmission_regions: - CAISO created_at: 2024-03-21T09:43:51.186Z updated_at: 2024-03-21T09:50:51.186Z next_page_token: abc123 schema: $ref: "#/components/schemas/PagedJobs" description: List of jobs summary: List meter jobs tags: - create meters post: deprecated: false description: Create meters on the Leap platform individually or in bulk. Endpoint accepts both CSV and JSON input. Returns job ID. operationId: createMeterBatchJob parameters: - description: "If set to true, the API will update existing meters with the\ \ same partner reference. If set to false or parameter is omitted, the API\ \ will create new meters and return a duplicate error for existing meters\ \ with the same partner reference." explode: true in: query name: update_existing required: false schema: default: false type: boolean style: form - description: "If set, the API will use this file_name when uploading the file\ \ to the API. If not set, the API will use the job_id and file_extension\ \ to create a file_name as fallback. The file_name must be a valid string\ \ up to 255 characters matching the file naming pattern." explode: true in: query name: file_name required: false schema: example: 5961a37f-6325-431c-97cb-82f35e3c09cf.csv maxLength: 255 pattern: "^[a-zA-Z0-9._\\s-]+.[a-zA-Z0-9]+$" type: string style: form requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateMeterBatchJobRequest" description: Meter batch job request body required: true responses: "201": content: application/json: schema: $ref: "#/components/schemas/CreateMeterBatchJobResponse" text/csv: schema: type: string description: "The job ID that got created, which you can use to poll the\ \ status of the job." "400": content: application/json: example: title: Meter id is not a UUID status: 400 details: - message: Missing required parameter json_index: 1 problem_field: partner_reference - message: Invalid format json_index: 3 problem_field: transmission_region schema: $ref: "#/components/schemas/ErrorResponse" description: "Failed to create meter batch job, because the meter batch\ \ job request sent was invalid" "403": content: application/json: examples: Forbidden: value: title: You do not have the necessary permissions for this operation status: 403 details: {} schema: $ref: "#/components/schemas/ErrorResponse" description: You do not have the necessary permissions for this operation. "500": content: application/json: examples: Internal Error: value: An error happened whilst processing your request schema: type: string description: Internal server error security: - Bearer: [] summary: Create meters tags: - create meters /v1.1/jobs/meter-job-filters: get: description: "[Leap frontend only] lists filters that can be used to filter\ \ meter jobs." operationId: listMeterBatchJobsFilters responses: "200": content: application/json: example: filter_options: - key: status values: - PROCESSING - FAILED - COMPLETED - COMPLETED_WITH_ERRORS - key: transmission_region values: - CAISO - NYISO - ISONE schema: $ref: "#/components/schemas/MeterJobFiltersResponse" description: Meter upload filters summary: List meter upload filters tags: - create meters /v1.1/jobs/meters/{job_id}: get: description: Get meters job status and associated meter IDs for successfully uploaded assets. operationId: getMeterBatchJob parameters: - description: The job ID returned when running a create meters batch job. example: f1080382-ec33-48ed-a511-528af08f747e explode: false in: path name: job_id required: true schema: format: uuid type: string style: simple responses: "200": content: application/json: example: assets: - partner_reference: test-device-123 status: COMPLETED status_detail: name: METER_CREATED description: A new meter was created. created_at: 2024-03-21T09:43:51.186Z meter_id: 87654321-4321-8888-6666-2c963f66afa3 job_id: 638451c8-4b81-4b91-ab43-c0ba0c5a0336 status: COMPLETED created_at: 2024-03-21T09:43:51.186Z updated_at: 2024-03-21T09:43:51.186Z schema: $ref: "#/components/schemas/JobAndAssets" description: Job details summary: Get meters job status tags: - create meters /v1.1/meters: post: description: "Create a single meter on the Leap platform. Endpoint accepts\ \ only JSON input, and returns a synchronous response. For batch CSV uploads,\ \ use the asynchronous endpoint. The meter data needs to be accompanied by\ \ a token obtained from the onboarding service. This token is needed to associate\ \ the created meter with a partner. The token also contains any default values\ \ associated with this specific flow." operationId: createSingleMeter parameters: - description: "If set to true, the API will update existing meters with the\ \ same partner reference. If set to false or parameter is omitted, the API\ \ will create new meters and return a duplicate error for existing meters\ \ with the same partner reference." explode: true in: query name: update_existing required: false schema: default: false type: boolean style: form requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateAssetRequest" description: Provisional asset request body required: true responses: "200": content: application/json: schema: $ref: "#/components/schemas/ProvisionalAsset" description: "A provisional asset. Processing this asset successfully results\ \ in a meter being created or updated, whereas a failure does not create\ \ or update a meter." "400": content: application/json: schema: $ref: "#/components/schemas/CreateMeterErrorResponse" description: "Something went wrong, and the API could not create the provisional\ \ asset. The API will return a 200 if a provisional asset is created,\ \ but the meter creation fails. In that case, the response body will contain\ \ details on the failure." summary: Create a single meter tags: - create meters /v1.1/provisional-assets: get: description: Lists all provisional assets that were created through Meter Batch Jobs. Especially handy if you create multiple smaller jobs and just want to have an overview of all provisional assets that were created through those. operationId: listProvisionalAssets parameters: - description: "One or more filters to apply. Uses the `AND` approach, so all\ \ filters should match for provisional assets to show up. Use the `/v1.1/provisional-assets-filters`\ \ endpoint to retrieve all available filters that can be applied when querying\ \ provisional assets. When you provide multiple values for a key (e.g. transmission_region),\ \ the IN operator is used. Combine multiple filters like this: `?filter=transmission_region:CAISO,NYISO&filter=partner_reference:123`" example: - "transmission_region:CAISO,NYISO" - partner_reference:123 explode: true in: query name: filter required: false schema: items: type: string type: array style: form - description: "If there are more provisional assets to fetch, this token will\ \ be populated as `next_page_token` in the response. Use it to fetch the\ \ next page of provisional assets." explode: true in: query name: page_token required: false schema: type: string style: form - description: Amount of results to return. Defaults to 100. explode: true in: query name: page_size required: false schema: default: 100 type: integer style: form - description: Search query to apply. Comma-separate multiple values. This is a free-text search that will be applied when searching through the provisional assets. Define the fields to search through in the `search_fields` parameter. example: serial-001 explode: true in: query name: search_query required: false schema: type: string style: form - description: "Fields to search through. Required if `search_query` is provided.\ \ If the string from `search_query` is found in any of these fields, the\ \ provisional asset will be included in the results." example: - partner_reference - device_serial_number explode: true in: query name: search_fields required: false schema: items: type: string minItems: 0 type: array style: form responses: "200": content: application/json: example: provisional_assets: - job_id: 514dc8d0-7dff-4bd3-9737-f1f49a6e99ed partner_reference: my-caiso-device-serial-2 status: DUPLICATE status_detail: name: DUPLICATE_REF_ID description: Partner reference ID already exists. created_at: 2024-03-12T10:15:00Z - job_id: e21fb44f-ecd9-49e4-bade-067f5abf7ded partner_reference: my-caiso-device-serial-1 status: PROCESSING status_detail: {} created_at: 2024-03-12T09:00:00Z next_page_token: token123 schema: $ref: "#/components/schemas/ListProvisionalAssetsResponse" text/csv: example: |- job_id,partner_reference,status,status_detail.description,data.partner_reference,data.transmission_region,data.customer_classification,data.load_types.0,data.load_types.1,data.meter_type,data.customer.street_1,data.customer.postal_code,data.customer.city,data.customer.state_or_province_code,data.customer.country_code,data.customer.street_2,data.customer.end_customer_name,data.customer.end_customer_title,data.customer.end_customer_email,data.customer.end_customer_phone_number,data.customer.end_customer_company_name,data.customer.partner_offering_name,data.customer.partner_offering_date,data.customer.dispatch_option,data.customer.billing.street_1,data.customer.billing.postal_code,data.customer.billing.city,data.customer.billing.state_or_province_code,data.customer.billing.country_code,data.customer.billing.street_2,data.device.device_serial_number,data.device.device_model,data.device.device_manufacturer,data.device.install_date,data.device.permission_to_operate_date,data.site.load_zone,data.site.generator_manufacturer,data.site.generator_fuel_type,data.site.generator_serial_number,data.nyiso.existing_nyiso_resource_id,data.utility.utility_name,data.utility.load_serving_entity,data.utility.electric_service_account_number,data.utility.tariff,data.utility.voltage,data.utility.utility_meter_serial_number,created_at,status_detail.failed_fields.0.key,status_detail.failed_fields.0.value "514dc8d0-7dff-4bd3-9737-f1f49a6e99ed",my-caiso-device-serial-2,DUPLICATE,Partner reference ID found on meter ID 72c06683-ca85-43b7-9a6a-dc72d2bf6244. A unique reference ID is required.,my-caiso-device-serial-2,ISONE,COMMERCIAL,BATTERY_STORAGE,MANUFACTURING,DEVICE,ST Main Av 2,90002,Los Angeles,CA,US,Main ST Av 2,Audrey,Mrs.,audrey@dummyemail.com,(206) 342-8631,Audrey John Ltd.,partnerOfferingName,2024-03-12,TARGETED,billing street 1,54321,Atlanta,GA,US,billing street 2,serial-1,model-1,manufacturer-1,2024-03-12,2024-03-12,Load Zone,Gen Manufacturer,DUAL_FUEL,generator serial number,existing resource id,SCE,loadServingEntity,electricServiceAgreementNumber,tariff,voltage,utility-meter-serial-number,2023-02-13T14:29:51Z,, "e21fb44f-ecd9-49e4-bade-067f5abf7ded",my-caiso-device-serial-1,PROCESSING,,my-caiso-device-serial-1,ISONE,COMMERCIAL,BATTERY_STORAGE,MANUFACTURING,DEVICE,ST Main Av 1,90001,Los Angeles,CA,US,Main ST Av 1,Audrey,Mrs.,audrey@dummyemail.com,(206) 342-8631,Audrey John Ltd.,partnerOfferingName,2024-03-12,TARGETED,billing street 1,54321,Atlanta,GA,US,billing street 2,serial-1,model-1,manufacturer-1,2024-03-12,2024-03-12,Load Zone,Gen Manufacturer,DUAL_FUEL,generator serial number,existing resource id,SCE,loadServingEntity,electricServiceAgreementNumber,tariff,voltage,utility-meter-serial-number,2023-02-13T14:29:51Z,, "e21fb44f-ecd9-49e4-bade-067f5abf7ded",my-caiso-device-serial-2,FAILED,,my-caiso-device-serial-2,ISONE,COMMERCIAL,BATTERY_STORAGE,MANUFACTURING,DEVICE,ST Main Av 2,90002,Los Angeles,CA,US,Main ST Av 2,Audrey,Mrs.,audrey@dummyemail.com,(206) 342-8631,Audrey John Ltd.,partnerOfferingName,2024-03-12,TARGETED,billing street 1,54321,Atlanta,GA,US,billing street 2,serial-1,model-1,manufacturer-1,2024-03-12,2024-03-12,Load Zone,Gen Manufacturer,DUAL_FUEL,generator serial number,existing resource id,SCE,loadServingEntity,electricServiceAgreementNumber,tariff,voltage,utility-meter-serial-number,2023-02-06T10:15:00Z,field,message schema: type: string description: Provisional assets "400": content: application/json: schema: $ref: "#/components/schemas/ValidationError" description: Validation error if invalid filters are provided summary: List provisional assets tags: - provisional assets /v1.1/provisional-assets-filters: get: description: "[Leap frontend only] lists filters that can be used to filter\ \ provisional assets." operationId: listProvisionalAssetsFilters responses: "200": content: application/json: example: filter_options: - key: status values: - PROCESSING - FAILED - DUPLICATE - COMPLETED - MULTIPLE_PARTNER_REFERENCE - key: transmission_region values: - CAISO - NYISO - ISONE schema: $ref: "#/components/schemas/ListProvisionalAssetsFiltersResponse" description: Provisional assets filters summary: List provisional assets filters tags: - provisional assets components: responses: "403": content: application/json: examples: Forbidden: value: title: You do not have the necessary permissions for this operation status: 403 details: {} schema: $ref: "#/components/schemas/ErrorResponse" description: You do not have the necessary permissions for this operation. "500": content: application/json: examples: Internal Error: value: An error happened whilst processing your request schema: type: string description: Internal server error schemas: PagedJobs: example: jobs: - job_id: 5961a37f-6325-431c-97cb-82f35e3c09cf status: PROCESSING file_name: file_name assets_count: 0 assets_created_count: 6 assets_updated_count: 1 assets_failed_count: 5 transmission_regions: - CAISO - CAISO created_at: 2024-03-21T09:43:51.186Z updated_at: 2024-03-22T09:43:51.186Z - job_id: 5961a37f-6325-431c-97cb-82f35e3c09cf status: PROCESSING file_name: file_name assets_count: 0 assets_created_count: 6 assets_updated_count: 1 assets_failed_count: 5 transmission_regions: - CAISO - CAISO created_at: 2024-03-21T09:43:51.186Z updated_at: 2024-03-22T09:43:51.186Z next_page_token: next_page_token properties: jobs: items: $ref: "#/components/schemas/Job" type: array next_page_token: description: "If there are more provisional assets to fetch, this token\ \ will be populated. Use it to fetch the next page of provisional assets." type: string required: - jobs type: object Job: example: job_id: 5961a37f-6325-431c-97cb-82f35e3c09cf status: PROCESSING file_name: file_name assets_count: 0 assets_created_count: 6 assets_updated_count: 1 assets_failed_count: 5 transmission_regions: - CAISO - CAISO created_at: 2024-03-21T09:43:51.186Z updated_at: 2024-03-22T09:43:51.186Z properties: job_id: description: The id of the create meters job example: 5961a37f-6325-431c-97cb-82f35e3c09cf format: uuid type: string status: $ref: "#/components/schemas/JobStatus" file_name: description: "The original name of the file uploaded to the Job. If the\ \ file was uploaded before this field was introduced, this value will\ \ be null as the original file name was not available at that time." type: string assets_count: description: "The number of assets that were created, updated, or failed\ \ as a result of the API call." type: integer assets_created_count: description: The number of assets that were created as a result of the API call. type: integer assets_updated_count: description: The number of assets that were updated as a result of the API call. type: integer assets_failed_count: description: The number of assets that failed as a result of the API call. type: integer transmission_regions: items: $ref: "#/components/schemas/transmission_region" type: array created_at: example: 2024-03-21T09:43:51.186Z format: date-time type: string updated_at: example: 2024-03-22T09:43:51.186Z format: date-time type: string required: - created_at - job_id - status - updated_at type: object CreateMeterBatchJobRequest: example: assets: - partner_reference: unique-reference-id-12345 transmission_region: CAISO customer_classification: RESIDENTIAL load_types: - HVAC meter_type: UTILITY_METER customer: street_1: 132 My Street street_2: Apartment 32 postal_code: "10001" city: New York state_or_province_code: NY country_code: US end_customer_name: Customer Name end_customer_title: Mrs. end_customer_email: email@address.com end_customer_phone_number: (123) 123-4567 end_customer_company_name: Company Name Inc. partner_offering_name: Offering Name partner_offering_date: 2000-01-23 is_in_wholesale_capacity_market: true dispatch_option: DAILY billing: street_1: 132 My Billing Street street_2: Apartment 32 postal_code: "90210" city: Los Angeles state_or_province_code: CA country_code: US partner_customer_reference: partner-customer-reference-1 device: device_type: BATTERY device_serial_number: device-serial-number device_model: device-model device_manufacturer: device-manufacturer install_date: 2000-01-23 battery_power_capacity_kw: 1.233 battery_energy_capacity_kwh: 9.876 battery_duration_hours: 4 permission_to_operate_date: 2000-01-23 battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true site: load_zone: load-zone number_of_devices: 1 on_site_fossil_generator: true renewable_generator: true generator_capacity_kw: 1.234 generator_model_year: 2020 generator_manufacturer: Manufacturer of the generator generator_fuel_type: "" generator_serial_number: generator-serial-number site_devices: - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true caiso: is_receiving_sgip_funding: true nem_type: NEM2 isone: in_connected_solutions: true nyiso: cbl_method: AVERAGE_DAY company_type: INDIVIDUAL_OR_SOLE_PROPRIETOR existing_nyiso_resource_id: "666266" partner_nyiso_resource_name: "666266" utility: utility_name: PGE load_serving_entity: PGE electric_service_account_number: 12243243-121 tariff: tariff code voltage: '>= 600 V' utility_meter_serial_number: utility-meter-serial-number customer_group: customer_group - partner_reference: unique-reference-id-12345 transmission_region: CAISO customer_classification: RESIDENTIAL load_types: - HVAC meter_type: UTILITY_METER customer: street_1: 132 My Street street_2: Apartment 32 postal_code: "10001" city: New York state_or_province_code: NY country_code: US end_customer_name: Customer Name end_customer_title: Mrs. end_customer_email: email@address.com end_customer_phone_number: (123) 123-4567 end_customer_company_name: Company Name Inc. partner_offering_name: Offering Name partner_offering_date: 2000-01-23 is_in_wholesale_capacity_market: true dispatch_option: DAILY billing: street_1: 132 My Billing Street street_2: Apartment 32 postal_code: "90210" city: Los Angeles state_or_province_code: CA country_code: US partner_customer_reference: partner-customer-reference-1 device: device_type: BATTERY device_serial_number: device-serial-number device_model: device-model device_manufacturer: device-manufacturer install_date: 2000-01-23 battery_power_capacity_kw: 1.233 battery_energy_capacity_kwh: 9.876 battery_duration_hours: 4 permission_to_operate_date: 2000-01-23 battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true site: load_zone: load-zone number_of_devices: 1 on_site_fossil_generator: true renewable_generator: true generator_capacity_kw: 1.234 generator_model_year: 2020 generator_manufacturer: Manufacturer of the generator generator_fuel_type: "" generator_serial_number: generator-serial-number site_devices: - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true caiso: is_receiving_sgip_funding: true nem_type: NEM2 isone: in_connected_solutions: true nyiso: cbl_method: AVERAGE_DAY company_type: INDIVIDUAL_OR_SOLE_PROPRIETOR existing_nyiso_resource_id: "666266" partner_nyiso_resource_name: "666266" utility: utility_name: PGE load_serving_entity: PGE electric_service_account_number: 12243243-121 tariff: tariff code voltage: '>= 600 V' utility_meter_serial_number: utility-meter-serial-number customer_group: customer_group properties: assets: items: $ref: "#/components/schemas/CreateMeter" type: array required: - assets type: object CreateMeter: allOf: - $ref: "#/components/schemas/AssetIdentifiers" - $ref: "#/components/schemas/CommonMeter" - $ref: "#/components/schemas/CreateMeterUtility" - $ref: "#/components/schemas/CreateMeterCustomerGroup" example: partner_reference: unique-reference-id-12345 transmission_region: CAISO customer_classification: RESIDENTIAL load_types: - HVAC meter_type: UTILITY_METER customer: street_1: 132 My Street street_2: Apartment 32 postal_code: "10001" city: New York state_or_province_code: NY country_code: US end_customer_name: Customer Name end_customer_title: Mrs. end_customer_email: email@address.com end_customer_phone_number: (123) 123-4567 end_customer_company_name: Company Name Inc. partner_offering_name: Offering Name partner_offering_date: 2000-01-23 is_in_wholesale_capacity_market: true dispatch_option: DAILY billing: street_1: 132 My Billing Street street_2: Apartment 32 postal_code: "90210" city: Los Angeles state_or_province_code: CA country_code: US partner_customer_reference: partner-customer-reference-1 device: device_type: BATTERY device_serial_number: device-serial-number device_model: device-model device_manufacturer: device-manufacturer install_date: 2000-01-23 battery_power_capacity_kw: 1.233 battery_energy_capacity_kwh: 9.876 battery_duration_hours: 4 permission_to_operate_date: 2000-01-23 battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true site: load_zone: load-zone number_of_devices: 1 on_site_fossil_generator: true renewable_generator: true generator_capacity_kw: 1.234 generator_model_year: 2020 generator_manufacturer: Manufacturer of the generator generator_fuel_type: "" generator_serial_number: generator-serial-number site_devices: - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true caiso: is_receiving_sgip_funding: true nem_type: NEM2 isone: in_connected_solutions: true nyiso: cbl_method: AVERAGE_DAY company_type: INDIVIDUAL_OR_SOLE_PROPRIETOR existing_nyiso_resource_id: "666266" partner_nyiso_resource_name: "666266" utility: utility_name: PGE load_serving_entity: PGE electric_service_account_number: 12243243-121 tariff: tariff code voltage: '>= 600 V' utility_meter_serial_number: utility-meter-serial-number customer_group: customer_group required: - customer - customer_classification - load_types - meter_type - partner_reference - transmission_region type: object AssetIdentifiers: properties: partner_reference: allOf: - $ref: "#/components/schemas/PartnerReference" description: The partner-supplied reference ID to help identify the customer or site that a Leap meter correlates to a partner’s internal systems. example: unique-reference-id-12345 type: string transmission_region: $ref: "#/components/schemas/transmission_region" customer_classification: $ref: "#/components/schemas/CustomerClassification" load_types: description: The partner-controlled and curtailable assets associated with the meter. Multiple load types per meter are supported. example: - HVAC items: $ref: "#/components/schemas/load_type" minItems: 1 type: array meter_type: $ref: "#/components/schemas/MeterType" CommonMeter: properties: customer: $ref: "#/components/schemas/Customer" device: $ref: "#/components/schemas/Device" site: $ref: "#/components/schemas/Site" caiso: $ref: "#/components/schemas/Caiso" isone: $ref: "#/components/schemas/Isone" nyiso: $ref: "#/components/schemas/Nyiso" required: - customer - meter_type - transmission_region type: object Customer: example: street_1: 132 My Street street_2: Apartment 32 postal_code: "10001" city: New York state_or_province_code: NY country_code: US end_customer_name: Customer Name end_customer_title: Mrs. end_customer_email: email@address.com end_customer_phone_number: (123) 123-4567 end_customer_company_name: Company Name Inc. partner_offering_name: Offering Name partner_offering_date: 2000-01-23 is_in_wholesale_capacity_market: true dispatch_option: DAILY billing: street_1: 132 My Billing Street street_2: Apartment 32 postal_code: "90210" city: Los Angeles state_or_province_code: CA country_code: US partner_customer_reference: partner-customer-reference-1 properties: street_1: description: "Physical street this asset is located in. If you need to provide\ \ extensions like apartment or unit number, please add those to the 'street2'\ \ field." example: 132 My Street maxLength: 128 minLength: 1 pattern: "^[’'+#\"@()/&.,;\\sA-Za-zÀ-ɏḀ-ỿ0-9\\-|\\\\]{1,128}$" type: string street_2: description: Provide extensions like apartment or unit number here. example: Apartment 32 maxLength: 128 minLength: 1 pattern: "^[’'+#\"@()/&.,;\\sA-Za-zÀ-ɏḀ-ỿ0-9\\-|\\\\]{1,128}$" type: string postal_code: description: Postal code of the location this asset is located in. example: "10001" pattern: "^[0-9]{5}(?:-[0-9]{4})?$" type: string city: description: City this asset is located in. example: New York maxLength: 128 minLength: 1 pattern: "^[’'+#\"@()/&.,;\\sA-Za-zÀ-ɏḀ-ỿ0-9\\-]{1,128}$" type: string state_or_province_code: description: State or province this asset is located in. example: NY maxLength: 2 minLength: 2 type: string country_code: default: US description: ISO 3166-1 alpha-2 country code of the country this asset is located in. example: US maxLength: 2 minLength: 2 type: string end_customer_name: description: End customer name or contact name example: Customer Name maxLength: 128 minLength: 1 pattern: "^(?!.*[�\\u00A0\\uFFFD?])[\\s\\S]{1,128}$" type: string end_customer_title: description: Title of the primary contact for the end customer; only applicable for Commercial & Industrial customers example: Mrs. maxLength: 15 minLength: 1 pattern: "^[’'+#\"@()/&.,;\\sA-Za-zÀ-ɏḀ-ỿ0-9\\-]{1,128}$" type: string end_customer_email: description: The customer email address example: email@address.com format: email maxLength: 128 minLength: 3 type: string end_customer_phone_number: description: "This would ideally be the phone number on file with the LSE;\ \ it may be used by the CEC and/or Utility Distribution Company (UDC)\ \ for verification purposes; please do not use any special characters\ \ for this column, and do not include a \"1\" at the front of the phone\ \ number." example: (123) 123-4567 maxLength: 32 minLength: 3 type: string end_customer_company_name: description: Legal company name of the end customer site; only applicable for Commercial & Industrial customers example: Company Name Inc. maxLength: 128 minLength: 1 pattern: "^[’'+#\"@()/&.,;\\sA-Za-zÀ-ɏḀ-ỿ0-9\\-]{1,128}$" type: string partner_offering_name: description: 'The name of Partner''s program/offering in which the end-customer enrolled/contracted. ' example: Offering Name maxLength: 128 minLength: 1 type: string partner_offering_date: description: Date in which the end customer enrolled in Partner's offering format: date type: string is_in_wholesale_capacity_market: description: Forward Capacity Market in ISONE type: boolean dispatch_option: $ref: "#/components/schemas/DispatchOption" billing: $ref: "#/components/schemas/Customer_billing" partner_customer_reference: description: Partner identifier for customer or site. This should match the refId used in Leap Connect when combining customer-supplied data in Leap Connect with partner-supplied data in Create Meters/Meter Uploads. example: partner-customer-reference-1 maxLength: 256 minLength: 3 pattern: "^[^\\/\\\\?\\]\\[{}!#$%^&*()<>|]{3,256}$" type: string required: - city - country_code - postal_code - state_or_province_code - street_1 type: object Device: example: device_type: BATTERY device_serial_number: device-serial-number device_model: device-model device_manufacturer: device-manufacturer install_date: 2000-01-23 battery_power_capacity_kw: 1.233 battery_energy_capacity_kwh: 9.876 battery_duration_hours: 4 permission_to_operate_date: 2000-01-23 battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true properties: device_type: $ref: "#/components/schemas/DeviceType" device_serial_number: description: The serial number of the device example: device-serial-number maxLength: 256 minLength: 1 type: string device_model: description: The model of the device example: device-model maxLength: 128 minLength: 1 type: string device_manufacturer: description: The manufacturer of the device example: device-manufacturer maxLength: 128 minLength: 1 type: string install_date: description: Could also be the activation date for the device format: date type: string battery_power_capacity_kw: description: The lower value between the inverter maximum output OR the nameplate maximum battery output according to battery specification sheet in kilowatts. example: 1.233 maximum: 999999 minimum: 0 type: number battery_energy_capacity_kwh: description: Total battery energy capacity according to battery specification sheet in kilowatt-hours. example: 9.876 maximum: 999999 minimum: 0 type: number battery_duration_hours: description: "Leap's default approach will be to determine duration based\ \ on Battery Capacity and Battery Energy Capacity, but Leap Partner can\ \ recommend an alternative nomination as they see fit. Measured in hours" example: 4 format: int32 maximum: 100 minimum: 0 type: integer permission_to_operate_date: description: This data should be found on the Utility or Electric Distribution Company Permission to Operate (PTO) letter that the battery installer received at the conclusion of the interconnection process. format: date type: string battery_max_discharge_rate_kw: description: "Max rate at which the battery can discharge in kilowatts,\ \ as configured on the device." example: 7.5 maximum: 999999 minimum: 0 type: number battery_max_charge_rate_kw: description: "Max rate at which the battery can charge in kilowatts, as\ \ configured on the device." example: 7.5 maximum: 999999 minimum: 0 type: number battery_max_state_of_charge_percentage: description: "Max state of charge allowed/configured for the battery, as\ \ a percentage between 2 and 100 (e.g. 95 = 95%). 2 is the lower bound\ \ so people don't accidentally fill in 0.95 if they mean 95%." example: 95 maximum: 100 minimum: 2 type: number battery_min_state_of_charge_percentage: description: "Min state of charge allowed/configured for the battery, as\ \ a percentage between 0 and 100 (e.g. 10 = 10%)." example: 10 maximum: 100 minimum: 0 type: number installer: description: Name of the company or person that installed the device. example: Acme Installations Inc. maxLength: 256 minLength: 1 type: string is_connected_to_solar: description: Whether solar panels are connected to the device. example: true type: boolean type: object Site: example: load_zone: load-zone number_of_devices: 1 on_site_fossil_generator: true renewable_generator: true generator_capacity_kw: 1.234 generator_model_year: 2020 generator_manufacturer: Manufacturer of the generator generator_fuel_type: "" generator_serial_number: generator-serial-number site_devices: - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true properties: load_zone: description: Sub region of the transmission region that the meter is located example: load-zone maxLength: 128 minLength: 1 type: string number_of_devices: description: "Refers to the total number of devices available for dispatch\ \ behind this Leap meter. For CA DSGS Option 3, this field is required\ \ to indicate if multiple batteries are being stacked behind a single\ \ inverter." example: 1 format: int32 maximum: 99 minimum: 0 type: integer on_site_fossil_generator: description: Is there a fossil fuel powered generator on site type: boolean renewable_generator: description: Is there a behind the meter renewable generator on site type: boolean generator_capacity_kw: deprecated: true description: Deprecated. Use site_devices.power_capacity_kw for the capacity in kW of the generator on site. example: 1.234 maximum: 999999 minimum: 0 type: number generator_model_year: deprecated: true description: Deprecated. Use site_devices.model_year for the year in which the generator was manufactured. example: 2020 format: int32 maximum: 2100 minimum: 1900 type: integer generator_manufacturer: deprecated: true description: Deprecated. Use site_devices.manufacturer for generator manufacturer’s name. example: Manufacturer of the generator maxLength: 128 minLength: 1 type: string generator_fuel_type: allOf: - $ref: "#/components/schemas/FuelType" deprecated: true description: Deprecated. Use site_devices.fuel_type for the fuel source of the generator. generator_serial_number: deprecated: true description: Deprecated. Use site_devices.serial_number for the serial number on the generator. example: generator-serial-number maxLength: 256 minLength: 1 type: string site_devices: description: List of additional information about devices on the premise items: $ref: "#/components/schemas/DeviceInfo" minItems: 0 type: array type: object DeviceInfo: example: device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true properties: device_type: $ref: "#/components/schemas/DeviceType" model: description: The model of the device example: device-model maxLength: 128 minLength: 1 type: string manufacturer: description: The manufacturer of the device example: device-manufacturer maxLength: 128 minLength: 1 type: string serial_number: description: The serial number of the device example: device-serial-number maxLength: 256 minLength: 1 type: string energy_capacity_kwh: description: Total device energy capacity according to device specification sheet in kilowatt-hours. example: 39.504 maximum: 999999 minimum: 0 type: number power_capacity_kw: description: The lower value between the inverter maximum output OR the nameplate maximum device output according to device specification sheet in kilowatts. example: 9.876 maximum: 999999 minimum: 0 type: number energy_capacity_duration_hours: description: "Leap's default approach will be to determine duration based\ \ on Battery Capacity and Battery Energy Capacity, but Leap Partner can\ \ recommend an alternative nomination as they see fit. Measured in hours" example: 4 format: int32 maximum: 100 minimum: 0 type: integer voltage_level: description: Device voltage level enum: - EVSE_LEVEL_1 - EVSE_LEVEL_2 type: string model_year: description: Year in which the device was manufactured example: 2020 format: int32 maximum: 2100 minimum: 1900 type: integer fuel_type: $ref: "#/components/schemas/FuelType" battery_max_discharge_rate_kw: description: "Max rate at which the battery can discharge in kilowatts,\ \ as configured on the device." example: 7.5 maximum: 999999 minimum: 0 type: number battery_max_charge_rate_kw: description: "Max rate at which the battery can charge in kilowatts, as\ \ configured on the device." example: 7.5 maximum: 999999 minimum: 0 type: number battery_max_state_of_charge_percentage: description: "Max state of charge allowed/configured for the battery, as\ \ a percentage between 2 and 100 (e.g. 95 = 95%). 2 is the lower bound\ \ so people don't accidentally fill in 0.95 if they mean 95%." example: 95 maximum: 100 minimum: 2 type: number battery_min_state_of_charge_percentage: description: "Min state of charge allowed/configured for the battery, as\ \ a percentage between 0 and 100 (e.g. 10 = 10%)." example: 10 maximum: 100 minimum: 0 type: number installer: description: Name of the company or person that installed the device. example: Acme Installations Inc. maxLength: 256 minLength: 1 type: string is_connected_to_solar: description: Whether solar panels are connected to the device. example: true type: boolean required: - device_type type: object Caiso: example: is_receiving_sgip_funding: true nem_type: NEM2 properties: is_receiving_sgip_funding: description: "Only needed if the battery is installed after June 30, 2023\ \ to verify eligibility for no baseline." type: boolean nem_type: $ref: "#/components/schemas/NemType" type: object Isone: example: in_connected_solutions: true properties: in_connected_solutions: description: Is the meter also participating in ConnectedSolutions; used for CPS type: boolean type: object Nyiso: example: cbl_method: AVERAGE_DAY company_type: INDIVIDUAL_OR_SOLE_PROPRIETOR existing_nyiso_resource_id: "666266" partner_nyiso_resource_name: "666266" properties: cbl_method: $ref: "#/components/schemas/customer_baseline_load_verification_methodology" company_type: $ref: "#/components/schemas/company_type" existing_nyiso_resource_id: description: "If the meter has previously been enrolled in SCR, they have\ \ had a resource_id assigned to it by NYISO" example: "666266" type: string partner_nyiso_resource_name: description: "If the meter has previously been enrolled in SCR, they have\ \ had a resource_id assigned to it by partner" example: "666266" type: string type: object CreateMeterUtility: properties: utility: $ref: "#/components/schemas/CommonUtility" CommonUtility: example: utility_name: PGE load_serving_entity: PGE electric_service_account_number: 12243243-121 tariff: tariff code voltage: '>= 600 V' utility_meter_serial_number: utility-meter-serial-number properties: utility_name: $ref: "#/components/schemas/utility" load_serving_entity: description: The utility or community choice aggregator that the customer buys electricity from example: PGE maxLength: 128 minLength: 1 type: string electric_service_account_number: description: "This is also known as Service Agreement ID or Service Account\ \ Number, depending on utility in CAISO, Electric Account Number in ISO-NE,\ \ ESIID in ERCOT, or TO Account Number in NYISO." example: 12243243-121 maxLength: 128 minLength: 1 type: string tariff: description: "The tariff or electric rate code can be found on the electric\ \ bill. For California DSGS, virtual net energy metering storage assets\ \ must indicate 'VNEM'." example: tariff code maxLength: 128 minLength: 1 type: string voltage: description: "Transmission Owner voltage service level description (e.g.,\ \ High tension, Transmission, Primary) or range (e.g., >= 600 V, < 35kV).While\ \ this information is required for customers enrolling in NYISO SCR, Leap\ \ is usually able to identify the TO service voltage level for the site." example: '>= 600 V' maxLength: 128 minLength: 1 type: string utility_meter_serial_number: description: Serial number of the electricity meter example: utility-meter-serial-number maxLength: 256 minLength: 1 type: string type: object CreateMeterCustomerGroup: properties: customer_group: description: The customer group associated with the meter. pattern: "^[’'+#\\\"@()/&.,;A-Za-z\\u00C0-\\u024F\\u1E00-\\u1EFF0-9\\s_\\\ -]{0,128}$" type: string customer_group: description: The customer group associated with the meter. pattern: "^[’'+#\\\"@()/&.,;A-Za-z\\u00C0-\\u024F\\u1E00-\\u1EFF0-9\\s_\\-]{0,128}$" type: string CreateMeterBatchJobResponse: example: job_id: 5961a37f-6325-431c-97cb-82f35e3c09cf properties: job_id: description: The id of the create meters job example: 5961a37f-6325-431c-97cb-82f35e3c09cf format: uuid type: string required: - job_id type: object ErrorResponse: example: title: Bad Request status: 400 details: error: Meter id is not a UUID properties: title: description: Summary of what went wrong example: Bad Request maxLength: 2000 minLength: 1 type: string status: description: "An error code indicating what went wrong, usually the same\ \ as the HTTP Status Code" example: 400 type: integer details: description: Extra information about the error. example: error: Meter id is not a UUID type: object type: object MeterJobFiltersResponse: example: filter_options: - key: key values: - values - values - key: key values: - values - values properties: filter_options: items: $ref: "#/components/schemas/KeyValueFilter" type: array required: - filter_options type: object KeyValueFilter: example: key: key values: - values - values properties: key: type: string values: items: type: string type: array required: - key - values type: object JobAndAssets: allOf: - $ref: "#/components/schemas/Job" - properties: assets: description: Statuses of individual assets in the job queue. items: $ref: "#/components/schemas/AssetUploadStatus" type: array type: object example: job_id: 5961a37f-6325-431c-97cb-82f35e3c09cf status: PROCESSING file_name: file_name assets_count: 0 assets_created_count: 6 assets_updated_count: 1 assets_failed_count: 5 transmission_regions: - CAISO - CAISO created_at: 2024-03-21T09:43:51.186Z updated_at: 2024-03-22T09:43:51.186Z assets: - partner_reference: "" status: PROCESSING status_detail: name: ACCOUNT_MISMATCH description: description failed_fields: key: failed_fields created_at: 2000-01-23T04:56:07.000+00:00 meter_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - partner_reference: "" status: PROCESSING status_detail: name: ACCOUNT_MISMATCH description: description failed_fields: key: failed_fields created_at: 2000-01-23T04:56:07.000+00:00 meter_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 AssetUploadStatus: description: This is a temporary entity that is created to give you a way to track the status of the asset creation process. example: partner_reference: "" status: PROCESSING status_detail: name: ACCOUNT_MISMATCH description: description failed_fields: key: failed_fields created_at: 2000-01-23T04:56:07.000+00:00 meter_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: partner_reference: allOf: - $ref: "#/components/schemas/PartnerReference" description: "Reference ID on your end. This ID can be used to link the\ \ asset to your internal systems, and can be changed/updated during the\ \ lifetime of a resulting Leap Meter." status: $ref: "#/components/schemas/ProvisionalAssetStatus" status_detail: $ref: "#/components/schemas/AssetUploadStatus_status_detail" created_at: format: date-time type: string meter_id: description: "If a meter got created or updated on Leap's platform successfully\ \ (status = `COMPLETED`), the meter ID will be populated in this field,\ \ so you can use it to do API calls in other parts of Leap's system." format: uuid type: string required: - partner_reference - status - status_detail type: object CreateAssetRequest: example: onboarding_token: eyJleGFtcGxlIjoiWW91IHNwZW50IHdheSB0b28gbXVjaCB0aW1lIGludG8gdGhpcyIsImluZm8iOiJMZWFwIHdpbGwgcHJvdmlkZSB0aGUgdG9rZW4ifQ.eyJleGFtcGxlIjoiWW91IHNwZW50IHdheSB0b28gbXVjaCB0aW1lIGludG8gdGhpcyIsImluZm8iOiJMZWFwIHdpbGwgcHJvdmlkZSB0aGUgdG9rZW4ifQ.eyJleGFtcGxlIjoiWW91IHNwZW50IHdheSB0b28gbXVjaCB0aW1lIGludG8gdGhpcyIsImluZm8iOiJMZWFwIHdpbGwgcHJvdmlkZSB0aGUgdG9rZW4ifQ provisional_asset: partner_reference: unique-reference-id-12345 transmission_region: CAISO customer_classification: RESIDENTIAL load_types: - HVAC meter_type: UTILITY_METER customer: street_1: 132 My Street street_2: Apartment 32 postal_code: "10001" city: New York state_or_province_code: NY country_code: US end_customer_name: Customer Name end_customer_title: Mrs. end_customer_email: email@address.com end_customer_phone_number: (123) 123-4567 end_customer_company_name: Company Name Inc. partner_offering_name: Offering Name partner_offering_date: 2000-01-23 is_in_wholesale_capacity_market: true dispatch_option: DAILY billing: street_1: 132 My Billing Street street_2: Apartment 32 postal_code: "90210" city: Los Angeles state_or_province_code: CA country_code: US partner_customer_reference: partner-customer-reference-1 device: device_type: BATTERY device_serial_number: device-serial-number device_model: device-model device_manufacturer: device-manufacturer install_date: 2000-01-23 battery_power_capacity_kw: 1.233 battery_energy_capacity_kwh: 9.876 battery_duration_hours: 4 permission_to_operate_date: 2000-01-23 battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true site: load_zone: load-zone number_of_devices: 1 on_site_fossil_generator: true renewable_generator: true generator_capacity_kw: 1.234 generator_model_year: 2020 generator_manufacturer: Manufacturer of the generator generator_fuel_type: "" generator_serial_number: generator-serial-number site_devices: - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true caiso: is_receiving_sgip_funding: true nem_type: NEM2 isone: in_connected_solutions: true nyiso: cbl_method: AVERAGE_DAY company_type: INDIVIDUAL_OR_SOLE_PROPRIETOR existing_nyiso_resource_id: "666266" partner_nyiso_resource_name: "666266" utility: utility_name: PGE load_serving_entity: PGE electric_service_account_number: 12243243-121 tariff: tariff code voltage: '>= 600 V' utility_meter_serial_number: utility-meter-serial-number customer_group: customer_group properties: onboarding_token: description: The token obtained from the onboarding service which contains a unique key to make sure we do not have problems with duplicate submissions as well as the partner to associate any created meter to. Lastly this token contains the default values of the created meter. example: eyJleGFtcGxlIjoiWW91IHNwZW50IHdheSB0b28gbXVjaCB0aW1lIGludG8gdGhpcyIsImluZm8iOiJMZWFwIHdpbGwgcHJvdmlkZSB0aGUgdG9rZW4ifQ.eyJleGFtcGxlIjoiWW91IHNwZW50IHdheSB0b28gbXVjaCB0aW1lIGludG8gdGhpcyIsImluZm8iOiJMZWFwIHdpbGwgcHJvdmlkZSB0aGUgdG9rZW4ifQ.eyJleGFtcGxlIjoiWW91IHNwZW50IHdheSB0b28gbXVjaCB0aW1lIGludG8gdGhpcyIsImluZm8iOiJMZWFwIHdpbGwgcHJvdmlkZSB0aGUgdG9rZW4ifQ type: string provisional_asset: $ref: "#/components/schemas/CreateMeter" required: - onboarding_token - provisional_asset type: object ProvisionalAsset: allOf: - $ref: "#/components/schemas/AssetUploadStatus" - properties: job_id: description: The id of the job where this provisional asset was uploaded example: 5961a37f-6325-431c-97cb-82f35e3c09cf format: uuid type: string data: $ref: "#/components/schemas/CreateMeter" required: - job_id type: object description: "A provisional asset is an asset that was created through a create\ \ meter call or batch job, but is not yet fully processed. It's a temporary\ \ entity that is created to give you a way to track the status of the asset\ \ creation process. The \"data\" property will be populated with the asset\ \ data if the job is completed successfully." example: partner_reference: "" status: PROCESSING status_detail: name: ACCOUNT_MISMATCH description: description failed_fields: key: failed_fields created_at: 2000-01-23T04:56:07.000+00:00 meter_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 job_id: 5961a37f-6325-431c-97cb-82f35e3c09cf data: partner_reference: unique-reference-id-12345 transmission_region: CAISO customer_classification: RESIDENTIAL load_types: - HVAC meter_type: UTILITY_METER customer: street_1: 132 My Street street_2: Apartment 32 postal_code: "10001" city: New York state_or_province_code: NY country_code: US end_customer_name: Customer Name end_customer_title: Mrs. end_customer_email: email@address.com end_customer_phone_number: (123) 123-4567 end_customer_company_name: Company Name Inc. partner_offering_name: Offering Name partner_offering_date: 2000-01-23 is_in_wholesale_capacity_market: true dispatch_option: DAILY billing: street_1: 132 My Billing Street street_2: Apartment 32 postal_code: "90210" city: Los Angeles state_or_province_code: CA country_code: US partner_customer_reference: partner-customer-reference-1 device: device_type: BATTERY device_serial_number: device-serial-number device_model: device-model device_manufacturer: device-manufacturer install_date: 2000-01-23 battery_power_capacity_kw: 1.233 battery_energy_capacity_kwh: 9.876 battery_duration_hours: 4 permission_to_operate_date: 2000-01-23 battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true site: load_zone: load-zone number_of_devices: 1 on_site_fossil_generator: true renewable_generator: true generator_capacity_kw: 1.234 generator_model_year: 2020 generator_manufacturer: Manufacturer of the generator generator_fuel_type: "" generator_serial_number: generator-serial-number site_devices: - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true caiso: is_receiving_sgip_funding: true nem_type: NEM2 isone: in_connected_solutions: true nyiso: cbl_method: AVERAGE_DAY company_type: INDIVIDUAL_OR_SOLE_PROPRIETOR existing_nyiso_resource_id: "666266" partner_nyiso_resource_name: "666266" utility: utility_name: PGE load_serving_entity: PGE electric_service_account_number: 12243243-121 tariff: tariff code voltage: '>= 600 V' utility_meter_serial_number: utility-meter-serial-number customer_group: customer_group CreateMeterErrorResponse: example: errors: - field: field description: description suggestions: - suggestions: - field: field suggestion: "" - field: field suggestion: "" - suggestions: - field: field suggestion: "" - field: field suggestion: "" - field: field description: description suggestions: - suggestions: - field: field suggestion: "" - field: field suggestion: "" - suggestions: - field: field suggestion: "" - field: field suggestion: "" properties: errors: items: $ref: "#/components/schemas/CreateMeterError" type: array required: - errors type: object CreateMeterError: example: field: field description: description suggestions: - suggestions: - field: field suggestion: "" - field: field suggestion: "" - suggestions: - field: field suggestion: "" - field: field suggestion: "" properties: field: description: The field name that was in error type: string description: description: Description of the error type: string suggestions: items: $ref: "#/components/schemas/Suggestion" type: array required: - description type: object Suggestion: example: suggestions: - field: field suggestion: "" - field: field suggestion: "" properties: suggestions: description: The list of suggestions items: $ref: "#/components/schemas/FieldSuggestion" type: array type: object FieldSuggestion: example: field: field suggestion: "" properties: field: description: The field targeting this suggestion type: string suggestion: description: The suggested value for the field type: object ListProvisionalAssetsResponse: example: provisional_assets: - partner_reference: "" status: PROCESSING status_detail: name: ACCOUNT_MISMATCH description: description failed_fields: key: failed_fields created_at: 2000-01-23T04:56:07.000+00:00 meter_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 job_id: 5961a37f-6325-431c-97cb-82f35e3c09cf data: partner_reference: unique-reference-id-12345 transmission_region: CAISO customer_classification: RESIDENTIAL load_types: - HVAC meter_type: UTILITY_METER customer: street_1: 132 My Street street_2: Apartment 32 postal_code: "10001" city: New York state_or_province_code: NY country_code: US end_customer_name: Customer Name end_customer_title: Mrs. end_customer_email: email@address.com end_customer_phone_number: (123) 123-4567 end_customer_company_name: Company Name Inc. partner_offering_name: Offering Name partner_offering_date: 2000-01-23 is_in_wholesale_capacity_market: true dispatch_option: DAILY billing: street_1: 132 My Billing Street street_2: Apartment 32 postal_code: "90210" city: Los Angeles state_or_province_code: CA country_code: US partner_customer_reference: partner-customer-reference-1 device: device_type: BATTERY device_serial_number: device-serial-number device_model: device-model device_manufacturer: device-manufacturer install_date: 2000-01-23 battery_power_capacity_kw: 1.233 battery_energy_capacity_kwh: 9.876 battery_duration_hours: 4 permission_to_operate_date: 2000-01-23 battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true site: load_zone: load-zone number_of_devices: 1 on_site_fossil_generator: true renewable_generator: true generator_capacity_kw: 1.234 generator_model_year: 2020 generator_manufacturer: Manufacturer of the generator generator_fuel_type: "" generator_serial_number: generator-serial-number site_devices: - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true caiso: is_receiving_sgip_funding: true nem_type: NEM2 isone: in_connected_solutions: true nyiso: cbl_method: AVERAGE_DAY company_type: INDIVIDUAL_OR_SOLE_PROPRIETOR existing_nyiso_resource_id: "666266" partner_nyiso_resource_name: "666266" utility: utility_name: PGE load_serving_entity: PGE electric_service_account_number: 12243243-121 tariff: tariff code voltage: '>= 600 V' utility_meter_serial_number: utility-meter-serial-number customer_group: customer_group - partner_reference: "" status: PROCESSING status_detail: name: ACCOUNT_MISMATCH description: description failed_fields: key: failed_fields created_at: 2000-01-23T04:56:07.000+00:00 meter_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 job_id: 5961a37f-6325-431c-97cb-82f35e3c09cf data: partner_reference: unique-reference-id-12345 transmission_region: CAISO customer_classification: RESIDENTIAL load_types: - HVAC meter_type: UTILITY_METER customer: street_1: 132 My Street street_2: Apartment 32 postal_code: "10001" city: New York state_or_province_code: NY country_code: US end_customer_name: Customer Name end_customer_title: Mrs. end_customer_email: email@address.com end_customer_phone_number: (123) 123-4567 end_customer_company_name: Company Name Inc. partner_offering_name: Offering Name partner_offering_date: 2000-01-23 is_in_wholesale_capacity_market: true dispatch_option: DAILY billing: street_1: 132 My Billing Street street_2: Apartment 32 postal_code: "90210" city: Los Angeles state_or_province_code: CA country_code: US partner_customer_reference: partner-customer-reference-1 device: device_type: BATTERY device_serial_number: device-serial-number device_model: device-model device_manufacturer: device-manufacturer install_date: 2000-01-23 battery_power_capacity_kw: 1.233 battery_energy_capacity_kwh: 9.876 battery_duration_hours: 4 permission_to_operate_date: 2000-01-23 battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true site: load_zone: load-zone number_of_devices: 1 on_site_fossil_generator: true renewable_generator: true generator_capacity_kw: 1.234 generator_model_year: 2020 generator_manufacturer: Manufacturer of the generator generator_fuel_type: "" generator_serial_number: generator-serial-number site_devices: - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true - device_type: BATTERY model: device-model manufacturer: device-manufacturer serial_number: device-serial-number energy_capacity_kwh: 39.504 power_capacity_kw: 9.876 energy_capacity_duration_hours: 4 voltage_level: EVSE_LEVEL_1 model_year: 2020 fuel_type: DIESEL battery_max_discharge_rate_kw: 7.5 battery_max_charge_rate_kw: 7.5 battery_max_state_of_charge_percentage: 95 battery_min_state_of_charge_percentage: 10 installer: Acme Installations Inc. is_connected_to_solar: true caiso: is_receiving_sgip_funding: true nem_type: NEM2 isone: in_connected_solutions: true nyiso: cbl_method: AVERAGE_DAY company_type: INDIVIDUAL_OR_SOLE_PROPRIETOR existing_nyiso_resource_id: "666266" partner_nyiso_resource_name: "666266" utility: utility_name: PGE load_serving_entity: PGE electric_service_account_number: 12243243-121 tariff: tariff code voltage: '>= 600 V' utility_meter_serial_number: utility-meter-serial-number customer_group: customer_group next_page_token: next_page_token properties: provisional_assets: items: $ref: "#/components/schemas/ProvisionalAsset" type: array next_page_token: description: "If there are more provisional assets to fetch, this token\ \ will be populated. Use it to fetch the next page of provisional assets." type: string required: - provisional_assets type: object ValidationError: example: message: Missing required parameter json_index: 1 problem_field: partner_reference properties: message: type: string csv_row: description: "If you uploaded a CSV file, and we can identify in which row\ \ the error occurred, the row number from your original file will be shown\ \ here." type: integer json_index: description: "If you submitted data through a JSON payload, and we can identify\ \ in which index of the top level asset array the error occurred, it will\ \ be shown here." type: integer problem_field: description: "The problematic column (CSV) or property (JSON), e.g. partner_reference.\ \ This will be set in most cases, but not if the entire file has a malformed\ \ structure for example. Use in combination with csv_row (CSV) or json_index\ \ (JSON) to find in which row or index the problematic field occurred." type: string required: - message type: object ListProvisionalAssetsFiltersResponse: example: filter_options: - key: key values: - values - values - key: key values: - values - values properties: filter_options: items: $ref: "#/components/schemas/KeyValueFilter" type: array required: - filter_options type: object JobStatus: enum: - PROCESSING - FAILED - COMPLETED - COMPLETED_WITH_ERRORS type: string transmission_region: description: Defines the transmission region of the meter enum: - CAISO - ERCOT - NYISO - ISONE - PJM - SERC - WECC_SW - WECC_PC example: CAISO type: string PartnerReference: description: The partner-supplied reference ID to help identify the customer or site that a Leap meter correlates to a partner’s internal systems. example: partner-reference-1 maxLength: 256 minLength: 3 pattern: "^[^\\/\\\\?\\]\\[{}!#$%^&*()<>|]{3,256}$" type: string CustomerClassification: description: Whether this is a residential (home) asset or a commercial (business) asset. enum: - RESIDENTIAL - COMMERCIAL type: string load_type: description: The load type of the device enum: - HVAC - EV_CHARGING - BATTERY_STORAGE - COLD_STORAGE - PUMPING - WATER_HEATING - BUILDING_AUTOMATION - GENERATION - MANUFACTURING - LIGHTING - OTHER example: HVAC type: string MeterType: description: The type of asset. enum: - UTILITY_METER - SUBMETER - DEVICE type: string DispatchOption: description: Dispatch strategy used in ConnectedSolutions. enum: - DAILY - TARGETED type: string DeviceType: description: Type of device on premise enum: - BATTERY - GENERATOR - EV - EV_CHARGER - BIDIRECTIONAL_EV_CHARGER - SMART_THERMOSTAT - AIR_CONDITIONER - HEAT_PUMP example: BATTERY type: string FuelType: description: The fuel source for a generator. enum: - DIESEL - NATURAL_GAS - DUAL_FUEL - CO_GEN - ENERGY_STORAGE - OTHER type: string NemType: description: Is the battery under NEM2 or NEM3 rules enum: - NEM2 - NEM3 type: string customer_baseline_load_verification_methodology: description: Choice of the Customer Baseline Load (CBL) verification methodology that will be used to calculate load reduction. enum: - AVERAGE_DAY - WEATHER_ADJUSTED type: string company_type: description: Required for customers enrolling in PSEGLI CSRP/DLRP enum: - INDIVIDUAL_OR_SOLE_PROPRIETOR - LIMITED_LIABILITY_COMPANY - PARTNERSHIP - CORPORATION - OTHER - EXEMPT_PAYEE type: string utility: description: The name of the Investor Owned Utility or Publicly Owned Utility whose territory the customer is in. enum: - PGE - SCE - SDGE - SMUD - LADWP - SVP - CECONY - ORU - PSEGLI - NYS - RIE - EVERSOURCE - NATGRID - UNITIL - PPL - CAPELIGHT - UPLIGHT - UNITED_ILLUMINATED - SMT - AEP_CENTRAL - AEP_NORTH - NUECES_ELECTRIC - ONCOR - CENTERPOINT - ENTERGY_GULF - SWEPCO - TNMP - DEMO - DEMO2 - LEAP_TEST_CAISO - LEAP_TEST_NYISO - COMED - BGE - PECO - METED - PENELEC - PSEG - DOMINION - WESTPENN - PENNPOWER - PEPCO - PJM_DEMO - OTHER - NES - MLGW - KUB - NPU - MTEMC - PRECC - HSVU - SRP - PSE - TVA example: PGE type: string ProvisionalAssetStatus: enum: - PROCESSING - FAILED - DUPLICATE - COMPLETED - MULTIPLE_PARTNER_REFERENCE type: string Customer_billing: description: Billing address for the customer. example: street_1: 132 My Billing Street street_2: Apartment 32 postal_code: "90210" city: Los Angeles state_or_province_code: CA country_code: US properties: street_1: description: "Physical street of the billing address. If you need to provide\ \ extensions like apartment or unit number, please add those to the 'street2'\ \ field." example: 132 My Billing Street maxLength: 128 minLength: 1 pattern: "^[’'+#\"@()/&.,;\\sA-Za-zÀ-ɏḀ-ỿ0-9\\-\\\\|]{1,128}$" type: string street_2: description: Provide extensions like apartment or unit number here if needed. example: Apartment 32 maxLength: 128 minLength: 1 pattern: "^[’'+#\"@()/&.,;\\sA-Za-zÀ-ɏḀ-ỿ0-9\\-\\\\|]{1,128}$" type: string postal_code: description: Billing address postal code. example: "90210" pattern: "^[0-9]{5}(?:-[0-9]{4})?$" type: string city: description: Billing address city. example: Los Angeles maxLength: 128 minLength: 1 pattern: "^[’'+#\"@()/&.,;\\sA-Za-zÀ-ɏḀ-ỿ0-9\\-]{1,128}$" type: string state_or_province_code: description: Billing address state or province code. example: CA maxLength: 2 minLength: 2 type: string country_code: default: US description: ISO 3166-1 alpha-2 country code of the billing address country. Defaults to US. example: US maxLength: 2 minLength: 2 type: string required: - city - country_code - postal_code - state_or_province_code - street_1 type: object AssetUploadStatus_status_detail: description: "Key-value map of fields that had errors, warnings or were modified\ \ during upload with additional information about what happened." example: name: ACCOUNT_MISMATCH description: description failed_fields: key: failed_fields properties: name: description: The name of the error. This is unique per error scenario. enum: - ACCOUNT_MISMATCH - ADDRESS_INCOMPLETE - ADDRESS_NOT_FOUND - ADDRESS_NOT_REGISTERED_FOR_ESIID - DUPLICATE_METER - DUPLICATE_REF_ID - METER_CREATED - METER_UPDATED - MULTIPLE_ACCOUNTS - UNSUPPORTED_ADDRESS - UNSUPPORTED_ZIP_CODE - VALIDATION_ERROR - PROCESSING_ERROR type: string description: description: The description of the error. Potentially any (pointers to) specific data can be found over here. type: string failed_fields: additionalProperties: type: string type: object type: object securitySchemes: Bearer: scheme: bearer type: http