Get Energy Tariff Leads Endpoint

Overview

Retrieves energy tariff leads with structured data extracted from the lead submission form. The response includes contact details, company information, tariff configurations and if relevant the associated solar and wind asset specifications plus the provided production profiles. This makes the endpoint the primary integration point for accessing asset production profiles tied to a lead, in addition to the lead data itself.

Use Cases

  • CRM Integration — Sync lead data to external CRM systems
  • Lead Management — Monitor and process incoming energy tariff inquiries
  • Partner Access — Provide secure, scoped access to lead data for business partners
  • Analytics & Reporting — Extract lead data for analysis and reporting
  • Document Access — Download original and processed production profile files together with attachment metadata such as timezone, unit, coverage, and resolution

Key Features

  • M2M (Machine-to-Machine) authentication support
  • Advanced filtering (company, status, dates, contact info)
  • Pagination support (up to 100 records per request)
  • Rate limiting (100 requests per minute)
  • Structured tariff data with discriminated union pattern
  • S3 presigned URLs for offer documents
  • Asset file attachments (production profiles, certificates, technical specifications, etc.)
  • Secure attachment download via dedicated proxy endpoint (302 redirect)
  • Attachment processing status tracking with profile metadata (coverage/resolution) and metadata suggestions

Authentication

Requires a Bearer token with the read:leads scope and the LeadsAccess policy. See Getting Started → Authentication for how to obtain a token.


Endpoint

Get Energy Tariff Leads

GET /api/crm/leads/energy-tariff

Base URL: https://<YOUR_PROJECT_DOMAIN>/api/crm/leads/energy-tariff

Rate Limiting: 100 requests per minute (M2MPolicy). Response headers: X-RateLimit-Remaining, X-RateLimit-Reset.

Request Headers
Header Required Value Description
Authorization Yes Bearer {access_token} JWT access token from Auth0
Content-Type No application/json Content type for request
Query Parameters

All query parameters are optional and can be combined for advanced filtering.

Parameter Type Description Example
companyId Guid Filter by specific company ID 123e4567-e89b-12d3-a456-426614174000
status LeadsStatusEnum Filter by lead status (0=Pending, 1=Sent, 2=Failed, 3=Processing, 4=Cancelled) 1
leadType LeadsTypeEnum Filter by lead type (0=None, 1=Information, 2=RequestOffer) 2
dateFrom DateTime (ISO 8601) Filter leads created from this date (UTC) 2024-01-01T00:00:00Z
dateTo DateTime (ISO 8601) Filter leads created until this date (UTC) 2024-12-31T23:59:59Z
emailContains string Include only emails containing this text (case-insensitive) @example.com
emailExcludes string Exclude emails containing this text (case-insensitive) test
firstName string Filter by first name (contains, case-insensitive) John
lastName string Filter by last name (contains, case-insensitive) Doe
skip int Number of records to skip (pagination) 0
take int Number of records to return (max 100) 50

Response Structure

Root Response Object

{
  "leads": [...],
  "totalCount": 150,
  "skip": 0,
  "take": 50
}
Field Type Description
leads array Array of EnergyTariffLeadResponse objects
totalCount int Total number of leads matching the filter criteria
skip int Current skip value (pagination)
take int Current take value (pagination)

Lead Object

{
  "id": "guid",
  "companyId": "guid",
  "assetId": "guid | null",
  "offerFileName": "Direct_Marketing_Offer_Trace_2026.pdf",
  "offerUrl": "/api/crm/leads/energy-tariff/{id}/offer/download",
  "contactAndCompanyInfo": {...},
  "leadInfo": {...},
  "tariffData": {...}
}
Field Type Description
id Guid Unique lead identifier
companyId Guid Associated TRACE internal company ID
assetId Guid? Associated energy tariff asset ID (nullable)
offerFileName string? Offer PDF file name (nullable)
offerUrl string? API path returning a 302 redirect to the S3 presigned offer URL (nullable)

Contact and Company Info

Field Type Description
firstName string Contact first name
lastName string Contact last name
email string Contact email address
phoneNumber string? Contact phone number (nullable)
preferredWayOfCommunication PreferredWayOfCommunicationEnum 0=Email, 1=Phone
language string Preferred language code (e.g., "en", "de")
companyName string Company name
companyAddress string Company street address
companyCity string Company city
companyZipCode string Company postal code
companyCountry string Company country
actorRole string Role of company: Producer or Consumer
companyLocation string Coordinates of company address
currentDate string Date of lead creation (formatted)

Lead Metadata

Field Type Description
status LeadsStatusEnum Status of the automated lead notification email sent when a lead is submitted (0–4)
leadType LeadsTypeEnum Type of lead inquiry (0–2)
termsAndConditions bool Terms acceptance status
contactPermission bool Contact permission granted
recipientEmail string Email recipient (internal)
errorMessage string? Error message if status=Failed (nullable)
createdAt DateTime Lead creation timestamp (UTC)
sentAt DateTime? Email sent timestamp (UTC, nullable)
templateName string? Email template name used for the lead notification (nullable)

Tariff Data Object (Discriminated Union)

The tariff data structure varies based on tariffType. Only the field matching the active tariff type will be non-null.

Field Type Description
tariffType TariffTypeEnum Type of tariff (0–6)
fixed FixedTariffConfig? Config for Fixed Tariff type (nullable)
dynamic DynamicTariffConfig? Config for Dynamic Tariff type (nullable)
directMarketing DirectMarketingTariffConfig? Config for DirectMarketing type (nullable)
dynamicMarketAccess DynamicMarketAccessTariffConfig? Config for DynamicMarketAccess type (nullable)
ppaUpstream PPAUpstreamTariffConfig? Config for PPAUpstream type (nullable)
ppaDownstream PPADownstreamTariffConfig? Config for PPADownstream type (nullable)
solarAssets array Associated solar assets (each includes attachments array)
windAssets array Associated wind assets (each includes attachments array)
priceInfo TariffPriceInfo Pricing information

Direct Marketing Configuration (when tariffType = 3)

Field Type Description
directMarketingType DirectMarketingTypeEnum 1=EEG, 10=Other
directMarketingEnumerationType DirectMarketingEnumerationTypeEnum 1=Spot, 2=MarketValue
serviceFeeType ServiceFeeTypeEnum 1=Absolute, 2=Relative
plannedStartDate DateTime? Contract start date (nullable)
contractPeriod string Contract duration descriptor (e.g., "24" or "2026Q4")
guaranteeOfOrigin OriginEnum? 0=None, 1=Customer, 2=Provider (nullable)

Dynamic Market Access Configuration (when tariffType = 4)

Field Type Description
serviceFeeType ServiceFeeTypeEnum? 1=Absolute, 2=Relative (nullable)
contractPeriod string Contract duration descriptor
forecastingOwnership OriginEnum? 1=Customer, 2=Provider (nullable)
intradayAdjustmentByProvider bool? Whether intraday adjustment is handled by provider (nullable)
balancingVolumes BalancingVolumesEnum? 1=FlatRate, 2=ActualCosts (nullable)
downpaymentAccepted bool? Whether downpayment is accepted (nullable)
interestToReceivePPAOffer bool? Customer interest in receiving PPA offers (nullable)
receiveGOsForPurchasedElectricity bool? Whether customer receives GOs for purchased electricity (nullable)
balancingGroupRequired bool? Whether balancing group is required (nullable)
supplyIncludingGridUsage bool? Whether supply includes grid usage (nullable)
meteredLoadProfilesCount int? Number of metered load profiles (nullable)
meteredLoadProfilesOperatorsCount int? Number of metered load profile operators (nullable)
standardLoadProfilesCount int? Number of standard load profiles (nullable)
standardLoadProfilesOperatorsCount int? Number of standard load profile operators (nullable)
energyConsumption EnergyConsumptionConfig? Energy consumption breakdown (nullable)
energyProduction EnergyProductionConfig? Energy production breakdown (nullable)

Energy Consumption fields: annualConsumptionKwh, thirdPartyKwh, futureMarketKwh, spotMarketKwh, ownProductKwh — all decimal?, all in kWh.

Energy Production fields: solarEnergyProductionPA, windEnergyProductionPA, cogenerationEnergyProductionPA, otherEnergyProductionPA — all decimal?, all in kWh per annum.

PPA Upstream Configuration (when tariffType = 5)

Field Type Description
technology Technology 1=Solar, 3=Wind
solarAssetIds Guid[] Array of associated solar asset IDs
windAssetIds Guid[] Array of associated wind asset IDs
ppaStructure PPAStructureEnum? 1=PayAsForecasted, 2=PayAsProduced (nullable)
negativePrices NegativePriceHoursEnum? 1=Included, 2=Excluded (nullable)
plannedStartDate DateTime? Contract start date (nullable)
contractPeriod string Contract duration descriptor
guaranteeOfOrigin OriginEnum? 0=None, 1=Customer, 2=Provider (nullable)
intendedShareOfFixPrice decimal? Intended share of fixed price (0.0–1.0, nullable)

PPA Downstream Configuration (when tariffType = 6)

Field Type Description
technology Technology 1=Solar, 3=Wind
energyVolumePA decimal? Annual energy volume in kWh (nullable)
energyCapacityPA decimal? Annual energy capacity in kW (nullable)
ppaIntegration bool? Whether PPA integration is enabled (nullable)
endOfContractTerm DateTime? End date of contract term (nullable)
ppaStructure PPAStructureEnum? 1=PayAsForecasted, 2=PayAsProduced (nullable)
negativePrices NegativePriceHoursEnum? 1=Included, 2=Excluded (nullable)
plannedStartDate DateTime? Contract start date (nullable)
contractPeriod string Contract duration descriptor
guaranteeOfOrigin OriginEnum? 0=None, 1=Customer, 2=Provider (nullable)
dedicatedAssetCriteria bool? Whether delivery from dedicated asset is intended (nullable)
additionalityCriteria bool? Whether additionality criteria (RE100, RFNBO) need to be fulfilled (nullable)

Solar Assets

Field Type Description
id Guid Solar asset unique identifier
technology string Always "Solar"
installedCapacity decimal? Installed capacity in kWp (nullable)
applicableValue decimal? Applicable power value in kWp (nullable)
installationDate int? Year of installation (nullable)
direction string? Compass orientation (enum description, e.g. "South", "North-East"). See DirectionEnum. Nullable.
angle int? Tilt angle in degrees from horizontal (e.g. 30). See AngleEnum. Nullable.
location SolarAssetLocation Geographic location details
maStREntities array? MaStR registry information (nullable)
attachments array Array of AssetAttachment objects. Empty array if none.

Asset-level vs. MaStR-level orientation: The asset level values i.e.direction and angleare defined by the largest element of the asset and can be manually adopted by the user. The MaStR registry may also report its own orientation values (maStRDirection, maStRAngle) inside maStREntities. These may differ from the asset-level fields.

Solar Asset Location fields: latitude, longitude, address, zipCode, country, state, city, description (string?, free-text location description, nullable).

Solar MaStR Entity fields: maStRId, unitMasterNumber, locationMasterNumber, plantOperatorMasterNumber, eegMasterNumber, powerGenerationUnitName, grossPower (kW), netRatedPower (kW), assignedActivePowerInverter (kW), numberOfModules, latitude, longitude, maStRDirection, maStRAngle, maStRFeedInType, maStRStatus, lastUpdateDate.

Wind Assets

Field Type Description
id Guid Wind asset unique identifier
technology string Always "Wind"
installedCapacity decimal? Installed capacity in kW (nullable)
applicableValue decimal? Applicable power value in kW (nullable)
installationDate int? Year of installation (nullable)
hubHeight decimal Turbine hub height in meters
ratedPower decimal Rated power output in kW
rotorDiameter decimal Rotor diameter in meters
numberOfTurbines int Number of wind turbines
location WindAssetLocation Geographic location details
maStREntities array? MaStR registry information (nullable)
attachments array Array of AssetAttachment objects. Empty array if none.

Wind Asset Location fields: latitude, longitude, address, zipCode, country, state, city, description (string?, free-text location description, nullable).

Wind MaStR Entity fields: maStRId, unitMasterNumber, locationMasterNumber, plantOperatorMasterNumber, eegMasterNumber, powerGenerationUnitName, grossPower (kW), netRatedPower (kW), latitude, longitude, maStRFeedInType, maStRStatus, lastUpdateDate.

Asset Attachment Object

{
  "id": "att-001-uuid",
  "fileName": "production_profile_2025.csv",
  "attachmentType": "ProductionProfile",
  "processingStatus": "Completed",
  "timeZone": "Europe/Berlin",
  "measurementType": "Energy",
  "unit": "KWh",
  "coverageStart": "2025-01-01T00:00:00Z",
  "coverageEnd": "2025-12-31T23:45:00Z",
  "resolution": "PT15M",
  "timeZoneStatus": "UserDefined",
  "measurementTypeStatus": "SystemDefined",
  "unitStatus": "Initial",
  "initialTimeZone": null,
  "initialMeasurementType": "Power",
  "initialUnit": null,
  "originalDownloadUrl": "/api/crm/attachments/att-001-uuid/download?type=original",
  "processedDownloadUrl": "/api/crm/attachments/att-001-uuid/download?type=processed",
  "suggestions": [...]
}
Field Type Description
id Guid Unique attachment identifier. Use in the download endpoint.
fileName string Original file name as uploaded
attachmentType AttachmentTypeEnum (string) "ProductionProfile", "Certificate", "TechnicalSpecification", "MaintenanceReport", "PerformanceData", "Other"
processingStatus ProcessingStatusEnum (string) Current processing status
timeZone string? IANA timezone of the data (e.g. "Europe/Berlin"). Only relevant for ProductionProfile. Nullable.
measurementType MeasurementTypeEnum (string)? "Energy" or "Power". Only relevant for ProductionProfile. Nullable.
unit UnitEnum (string)? Unit of measurement ("KWh", "MWh", "KW", "MW", etc.). Only relevant for ProductionProfile. Nullable.
coverageStart string? (ISO 8601) Start timestamp of the production profile time series. Populated only when processingStatus = "Completed". Nullable.
coverageEnd string? (ISO 8601) End timestamp of the production profile time series. Populated only when processingStatus = "Completed". Nullable.
resolution string? Time resolution in ISO 8601 duration format (e.g. "PT15M", "PT1H", "P1D"). Populated only when processingStatus = "Completed". Nullable.
timeZoneStatus AttachmentMetadataStatusEnum (string) How timeZone was determined
measurementTypeStatus AttachmentMetadataStatusEnum (string) How measurementType was determined
unitStatus AttachmentMetadataStatusEnum (string) How unit was determined
initialTimeZone string? Previous timeZone before user accepted a system suggestion. Non-null only when timeZoneStatus = "SystemDefined".
initialMeasurementType MeasurementTypeEnum (string)? Previous measurementType before user accepted a system suggestion. Non-null only when measurementTypeStatus = "SystemDefined".
initialUnit UnitEnum (string)? Previous unit before user accepted a system suggestion. Non-null only when unitStatus = "SystemDefined".
originalDownloadUrl string API path to download the original uploaded file.
processedDownloadUrl string? API path to download the processed output file. null if processing has not produced output yet.
suggestions array? Metadata suggestions from the processing pipeline. null if no suggestions are available.

Attachment Suggestion Object

Field Type Description
field string Name of the metadata field: "timeZone", "measurementType", or "unit"
suggestedValue string Value detected by the processing pipeline
reason string Human-readable explanation of why this value was suggested

Suggestions are only present for fields still in "Initial" status where the pipeline detected a different value.

AttachmentMetadataStatusEnum Lifecycle

Status Meaning
Initial Not yet confirmed. A suggestions entry may be present.
UserDefined The user explicitly set this value overwriting a system proposal
SystemDefined The user accepted a system-suggested value. Previous value stored in initial* field.
ConfirmedMatch System detected the stored value already matches the file metadata. No user action required.

timeZoneStatus never reaches ConfirmedMatch — timezone cannot be inferred from file metadata.

Processed Production Profile Format

When attachmentType = "ProductionProfile" and processingStatus = "Completed", the file available at processedDownloadUrl is a cleaned CSV with a fixed structure. This is the format your integration should consume.

Column Type Description
DateTime [UTC] string (ISO 8601 with UTC offset) e.g. 2024-01-01 00:15:00+00:00 — always UTC, ascending order
Profilwert [<unit>] float (2 d.p.) Production value; unit is embedded in the column name, e.g. Profilwert [kWh] which is the standard.
Abregelung float (2 d.p.) Curtailment / redispatch value. Present only when the source file contained a curtailment column. The unit is generally also in kWh
DateTime [UTC],Profilwert [kWh]
2024-01-01 00:00:00+00:00,76.04
2024-01-01 00:15:00+00:00,8.20
2024-01-01 00:30:00+00:00,67.80

Tariff Price Info

The Tariff price info section contains information about the prices the user has seen for the given configuration. This can used to keep track of the inital price shown compared to potential later updates. If no prices are uploaded to the system this section is empty.

Field Type Description
priceHeader1 string Primary price header label
priceHeader2 string Secondary price header label
defaultBasicFee decimal Default basic fee amount
defaultGuaranteeFee decimal Default guarantee of origin fee
locationFactor string? Location factor (only for MarketValue type)
energyPrices array Year-by-year energy pricing

Energy price item structure varies by tariff type. For absolute service fee: { "year": 2024, "fixedFee": 12.50 }. For relative service fee: { "year": 2024, "spotPercent": 95.5, "variableFixedFee": 2.50 }.


Download Attachment Endpoint

A dedicated endpoint generates a short-lived presigned S3 URL and responds with an HTTP 302 redirect to the file.

GET /api/crm/attachments/{attachmentId}/download

Rate Limiting: Same LeadsAccess policy and read:leads scope as the leads endpoint.

Path Parameters
Parameter Type Required Description
attachmentId Guid Yes The id from solarAssets[].attachments[].id or windAssets[].attachments[].id
Query Parameters
Parameter Type Required Default Description
type string No original original — the file uploaded by the user; processed — the cleaned/processed output
Responses
Status Description
302 Found Redirect to a presigned S3 URL. Follow the Location header to download the file.
404 Not Found Attachment not found, or type=processed requested but no processed file exists yet.
401 Unauthorized Missing or invalid access token.
403 Forbidden Insufficient scope.

Enum Definitions

LeadsStatusEnum
Value Name Description
0 Pending Lead created, awaiting processing
1 Sent Email notification sent successfully
2 Failed Email sending failed
3 Processing Lead currently being processed
4 Cancelled Lead cancelled or invalid
LeadsTypeEnum
Value Name Description
0 None No specific type
1 Information General information request
2 RequestOffer Formal offer request
LeadsAssetTypeEnum
Value Name Description
0 None No asset type
1 Solar Solar asset
2 Storage Storage asset
3 Wind Wind asset
4 Tariff Tariff asset
PreferredWayOfCommunicationEnum
Value Name Description
0 Email Contact via email
1 Phone Contact via phone
TariffTypeEnum
Value Name Description
0 None No tariff type
1 Fixed Fixed price electricity tariff
2 Dynamic Dynamic priced electricity tariff
3 DirectMarketing Direct marketing
4 DynamicMarketAccess Dynamic market access
5 PPAUpstream Power Purchase Agreement — Upstream
6 PPADownstream Power Purchase Agreement — Downstream
DirectMarketing Enums
Enum Value Name
DirectMarketingTypeEnum 1 EEG
DirectMarketingTypeEnum 10 Other
DirectMarketingEnumerationTypeEnum 1 Spot
DirectMarketingEnumerationTypeEnum 2 MarketValue
ServiceFeeTypeEnum 1 Absolute
ServiceFeeTypeEnum 2 Relative
OriginEnum 0 None
OriginEnum 1 Customer
OriginEnum 2 Provider
PPA Configuration Enums
Enum Value Name
Technology 1 Solar
Technology 3 Wind
PPAStructureEnum 1 PayAsForecasted
PPAStructureEnum 2 PayAsProduced
NegativePriceHoursEnum 1 Included
NegativePriceHoursEnum 2 Excluded
Solar Panel Orientation

DirectionEnum — returned as string description:

Returned Value Int
"None" 0
"North" 1
"North-East" 2
"East" 3
"South-East" 4
"South" 5
"South-West" 6
"West" 7
"North-West" 8
"East-West" 9
"Tracker" 100

AngleEnum — returned as integer (e.g. 30): valid values are 0, 10, 20, 25, 30, 40, 50, 60, 70, 80, 90.

Attachment Enums

All attachment enum fields are returned as string values in the JSON response.

AttachmentTypeEnum: ProductionProfile, Certificate, TechnicalSpecification, MaintenanceReport, PerformanceData, Other

ProcessingStatusEnum:

Value Description
PendingUpload Attachment record created; file upload not yet completed
Uploaded File uploaded to S3; awaiting processing
Scanning Security (antivirus) scan in progress
Processing File dispatched to processing pipeline
Completed Processing finished; processedDownloadUrl is available
PartialSuccess Processing completed with suggestions; user action may be required
Failed Processing failed
SuspiciousFile Antivirus scan detected a threat; file blocked
CleaningFailed Processing pipeline returned an error

MeasurementTypeEnum: Energy, Power, NotSure

UnitEnum: Wh, KWh, MWh, GWh, W, KW, MW, GW, NotSure


Error Responses

Status Cause Description
400 Bad Request Invalid query parameters Check take is between 1–100; use ISO 8601 for dates; verify enum values
401 Unauthorized Missing or expired token Obtain a new token
403 Forbidden Insufficient scope Verify read:leads scope was requested
404 Not Found Attachment not found or processed file not available Check attachmentId and processingStatus before requesting ?type=processed
429 Too Many Requests Rate limit exceeded (>100 req/min) Implement exponential backoff; respect Retry-After header
500 Internal Server Error Server-side error Retry with exponential backoff

400 example:

{
  "errors": {
    "take": ["The field take must be between 1 and 100."],
    "dateFrom": ["The dateFrom field is not a valid date."]
  },
  "title": "One or more validation errors occurred."
}

429 response headers:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1705320000
Retry-After: 60

Examples

Example 1: Get All Energy Tariff Leads

curl -X GET "https://<YOUR_PROJECT_DOMAIN>/api/crm/leads/energy-tariff" \
  -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGc..." \
  -H "Content-Type: application/json"

Response (one lead with two solar assets, one wind asset, and a certificate attachment):

{
  "leads": [
    {
      "id": "3aec77a8-db47-45fa-9df6-1f382c0d0fe5",
      "companyId": "9d8cd92f-41d6-4b11-bcb7-af020f1c7547",
      "assetId": "ca2a6228-202a-494a-afa6-a25e1fc3c0e0",
      "offerFileName": "Direct_Marketing_Offer_Trace_2026.pdf",
      "offerUrl": "/api/crm/leads/energy-tariff/3aec77a8-db47-45fa-9df6-1f382c0d0fe5/offer/download",
      "contactAndCompanyInfo": {
        "firstName": "John",
        "lastName": "Doe",
        "email": "john.doe@example.com",
        "phoneNumber": "+491234567890",
        "preferredWayOfCommunication": 0,
        "language": "de",
        "actorRole": "Producer",
        "companyName": "Trace GmbH",
        "companyAddress": "Kleine Reichenstraße 1",
        "companyCity": "Hamburg",
        "companyZipCode": "20457",
        "companyCountry": "de",
        "companyLocation": "53.548230, 9.998620",
        "currentDate": "2026-04-14"
      },
      "leadInfo": {
        "status": 1,
        "leadType": 2,
        "termsAndConditions": true,
        "contactPermission": true,
        "recipientEmail": "leads@trace-electricity.com",
        "errorMessage": null,
        "createdAt": "2026-04-10T10:30:00Z",
        "sentAt": "2026-04-10T10:31:45Z",
        "templateName": "DirectMarketingOffer_DE"
      },
      "tariffData": {
        "tariffType": 3,
        "directMarketing": {
          "directMarketingType": 1,
          "directMarketingEnumerationType": 1,
          "serviceFeeType": 1,
          "plannedStartDate": "2026-06-01T00:00:00Z",
          "contractPeriod": "24",
          "guaranteeOfOrigin": 1
        },
        "solarAssets": [
          {
            "id": "solar-001-uuid",
            "technology": "Solar",
            "installedCapacity": 250.5,
            "applicableValue": 250.5,
            "installationDate": 2020,
            "direction": "South",
            "angle": 30,
            "location": {
              "latitude": 52.5200,
              "longitude": 13.4050,
              "address": "Hauptstraße 123",
              "zipCode": "10115",
              "country": "Germany",
              "state": "Berlin",
              "city": "Berlin",
              "description": "Rooftop installation - South facing"
            },
            "maStREntities": [...],
            "attachments": [
              {
                "id": "att-001-uuid",
                "fileName": "production_profile_solar1_2025.csv",
                "attachmentType": "ProductionProfile",
                "processingStatus": "Completed",
                "timeZone": "Europe/Berlin",
                "measurementType": "Energy",
                "unit": "KWh",
                "coverageStart": "2025-01-01T00:00:00Z",
                "coverageEnd": "2025-12-31T23:45:00Z",
                "resolution": "PT15M",
                "timeZoneStatus": "UserDefined",
                "measurementTypeStatus": "SystemDefined",
                "unitStatus": "Initial",
                "initialTimeZone": null,
                "initialMeasurementType": "Power",
                "initialUnit": null,
                "originalDownloadUrl": "/api/crm/attachments/att-001-uuid/download?type=original",
                "processedDownloadUrl": "/api/crm/attachments/att-001-uuid/download?type=processed",
                "suggestions": [
                  {
                    "field": "unit",
                    "suggestedValue": "KWh",
                    "reason": "Detected from file metadata: power_unit=kWh"
                  }
                ]
              }
            ]
          },
          {
            "id": "solar-002-uuid",
            "technology": "Solar",
            "installedCapacity": 180.0,
            "applicableValue": 180.0,
            "installationDate": 2022,
            "direction": "South-East",
            "angle": 25,
            "location": {
              "latitude": 52.5310,
              "longitude": 13.3860,
              "address": "Nebengebäude 1",
              "zipCode": "10117",
              "country": "Germany",
              "state": "Berlin",
              "city": "Berlin",
              "description": "Carport installation"
            },
            "maStREntities": [],
            "attachments": [
              {
                "id": "att-002-uuid",
                "fileName": "solarpark_eeg_certificate_2024.pdf",
                "attachmentType": "Certificate",
                "processingStatus": "Uploaded",
                "timeZone": null,
                "measurementType": null,
                "unit": null,
                "coverageStart": null,
                "coverageEnd": null,
                "resolution": null,
                "timeZoneStatus": "Initial",
                "measurementTypeStatus": "Initial",
                "unitStatus": "Initial",
                "initialTimeZone": null,
                "initialMeasurementType": null,
                "initialUnit": null,
                "originalDownloadUrl": "/api/crm/attachments/att-002-uuid/download?type=original",
                "processedDownloadUrl": null,
                "suggestions": null
              }
            ]
          }
        ],
        "windAssets": [
          {
            "id": "wind-001-uuid",
            "technology": "Wind",
            "installedCapacity": 3000.0,
            "applicableValue": 3000.0,
            "installationDate": 2018,
            "hubHeight": 100.0,
            "ratedPower": 3000.0,
            "rotorDiameter": 112.0,
            "numberOfTurbines": 1,
            "location": {
              "latitude": 53.5500,
              "longitude": 10.0100,
              "address": "Hafenstraße 45",
              "zipCode": "21073",
              "country": "Germany",
              "state": "Hamburg",
              "city": "Hamburg",
              "description": null
            },
            "maStREntities": [],
            "attachments": []
          }
        ],
        "priceInfo": {
          "priceHeader1": "Fixed Service Fee",
          "priceHeader2": "Annual Costs",
          "defaultBasicFee": 150.00,
          "defaultGuaranteeFee": 0.35,
          "locationFactor": null,
          "energyPrices": [
            { "year": 2026, "fixedFee": 12.50 },
            { "year": 2027, "fixedFee": 12.75 }
          ]
        }
      }
    }
  ],
  "totalCount": 1,
  "skip": 0,
  "take": 50
}

Example 2: Download an Attachment

After retrieving an attachment id from the leads response:

Download original uploaded file:

curl -L -X GET "https://<YOUR_PROJECT_DOMAIN>/api/crm/attachments/att-001-uuid/download?type=original" \
  -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGc..." \
  -o "production_profile_2025.csv"

Response (302 Redirect):

HTTP/1.1 302 Found
Location: https://s3.eu-central-1.amazonaws.com/bucket/attachments/original/production_profile_2025.csv?X-Amz-Expires=10800...
Content-Disposition: attachment; filename="production_profile_2025.csv"

The -L flag makes curl follow the redirect automatically. The presigned S3 URL is valid for 3 hours.

Download processed/cleaned file:

curl -L -X GET "https://<YOUR_PROJECT_DOMAIN>/api/crm/attachments/att-001-uuid/download?type=processed" \
  -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGc..." \
  -o "production_profile_2025_processed.csv"

Only request ?type=processed when processingStatus is Completed. Otherwise the endpoint returns 404 Not Found.


Example 3: Filter by Company and Date Range

curl -X GET "https://<YOUR_PROJECT_DOMAIN>/api/crm/leads/energy-tariff?companyId=123e4567-e89b-12d3-a456-426614174000&dateFrom=2024-01-01T00:00:00Z&dateTo=2024-01-31T23:59:59Z&status=1" \
  -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGc..."

Response:

{
  "leads": [
    {
      "id": "b2f1c3e4-aa11-4b22-9c33-d44e55f66a77",
      "companyId": "123e4567-e89b-12d3-a456-426614174000",
      "assetId": "e5f6a7b8-cc99-4d00-ae11-bf22c033d044",
      "offerFileName": null,
      "offerUrl": null,
      "contactAndCompanyInfo": {
        "firstName": "Jane",
        "lastName": "Doe",
        "email": "jane.doe@example.com",
        "phoneNumber": "+4989123456789",
        "preferredWayOfCommunication": 1,
        "language": "de",
        "actorRole": "Producer",
        "companyName": "Trace GmbH",
        "companyAddress": "Maximilianstraße 5",
        "companyCity": "Munich",
        "companyZipCode": "80333",
        "companyCountry": "de",
        "companyLocation": "48.139286, 11.574906",
        "currentDate": "2024-01-15"
      },
      "leadInfo": {
        "status": 1,
        "leadType": 2,
        "termsAndConditions": true,
        "contactPermission": true,
        "recipientEmail": "leads@trace-electricity.com",
        "errorMessage": null,
        "createdAt": "2024-01-15T08:20:00Z",
        "sentAt": "2024-01-15T08:21:30Z",
        "templateName": "DirectMarketingOffer_DE"
      },
      "tariffData": {
        "tariffType": 3,
        "directMarketing": {
          "directMarketingType": 1,
          "directMarketingEnumerationType": 1,
          "serviceFeeType": 1,
          "plannedStartDate": "2024-04-01T00:00:00Z",
          "contractPeriod": "12",
          "guaranteeOfOrigin": 1
        },
        "solarAssets": [
          {
            "id": "e5f6a7b8-cc99-4d00-ae11-bf22c033d044",
            "technology": "Solar",
            "installedCapacity": 180.0,
            "applicableValue": 180.0,
            "installationDate": 2021,
            "direction": "South",
            "angle": 35,
            "location": {
              "latitude": 48.139286,
              "longitude": 11.574906,
              "address": "Maximilianstraße 5",
              "zipCode": "80333",
              "country": "Germany",
              "state": "Bavaria",
              "city": "Munich",
              "description": null
            },
            "maStREntities": [],
            "attachments": []
          }
        ],
        "windAssets": [],
        "priceInfo": {
          "priceHeader1": "Fixed Service Fee",
          "priceHeader2": "Annual Costs",
          "defaultBasicFee": 120.00,
          "defaultGuaranteeFee": 0.30,
          "locationFactor": null,
          "energyPrices": [
            { "year": 2024, "fixedFee": 11.80 }
          ]
        }
      }
    }
  ],
  "totalCount": 1,
  "skip": 0,
  "take": 50
}

Example 4: Paginated Request with Email Filter

# Page 1
curl -X GET "https://<YOUR_PROJECT_DOMAIN>/api/crm/leads/energy-tariff?emailContains=@gmail.com&skip=0&take=20" \
  -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGc..."

# Page 2
curl -X GET "https://<YOUR_PROJECT_DOMAIN>/api/crm/leads/energy-tariff?emailContains=@gmail.com&skip=20&take=20" \
  -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGc..."

Response (Page 1):

{
  "leads": [
    {
      "id": "a1b2c3d4-1111-2222-3333-444455556666",
      "companyId": "f7e8d9c0-aaaa-bbbb-cccc-ddddeeee0000",
      "assetId": "11223344-5566-7788-99aa-bbccddeeff00",
      "offerFileName": null,
      "offerUrl": null,
      "contactAndCompanyInfo": {
        "firstName": "John",
        "lastName": "Doe",
        "email": "john.doe@example.com",
        "phoneNumber": "+4930987654321",
        "preferredWayOfCommunication": 0,
        "language": "de",
        "actorRole": "Producer",
        "companyName": "Trace GmbH",
        "companyAddress": "Berliner Allee 42",
        "companyCity": "Berlin",
        "companyZipCode": "10115",
        "companyCountry": "de",
        "companyLocation": "52.520008, 13.404954",
        "currentDate": "2024-03-10"
      },
      "leadInfo": {
        "status": 1,
        "leadType": 1,
        "termsAndConditions": true,
        "contactPermission": false,
        "recipientEmail": "leads@trace-electricity.com",
        "errorMessage": null,
        "createdAt": "2024-03-10T14:05:00Z",
        "sentAt": "2024-03-10T14:06:20Z",
        "templateName": "DirectMarketingOffer_DE"
      },
      "tariffData": {
        "tariffType": 3,
        "directMarketing": {
          "directMarketingType": 2,
          "directMarketingEnumerationType": 2,
          "serviceFeeType": 2,
          "plannedStartDate": "2024-06-01T00:00:00Z",
          "contractPeriod": "24",
          "guaranteeOfOrigin": 0
        },
        "solarAssets": [
          {
            "id": "11223344-5566-7788-99aa-bbccddeeff00",
            "technology": "Solar",
            "installedCapacity": 95.0,
            "applicableValue": 95.0,
            "installationDate": 2022,
            "direction": "South-West",
            "angle": 28,
            "location": {
              "latitude": 52.520008,
              "longitude": 13.404954,
              "address": "Berliner Allee 42",
              "zipCode": "10115",
              "country": "Germany",
              "state": "Berlin",
              "city": "Berlin",
              "description": null
            },
            "maStREntities": [],
            "attachments": []
          }
        ],
        "windAssets": [],
        "priceInfo": {
          "priceHeader1": "Relative Service Fee",
          "priceHeader2": null,
          "defaultBasicFee": null,
          "defaultGuaranteeFee": 0.25,
          "locationFactor": null,
          "energyPrices": [
            { "year": 2024, "relativeFee": 2.10 },
            { "year": 2025, "relativeFee": 2.15 }
          ]
        }
      }
    }
  ],
  "totalCount": 43,
  "skip": 0,
  "take": 20
}

Example 5: Dynamic Market Access Tariff

Response (showing Dynamic Market Access configuration with solar asset and production profile):

{
  "leads": [
    {
      "id": "dma-lead-uuid-1",
      "companyId": "c1d2e3f4-1122-3344-5566-778899aabbcc",
      "assetId": "dma-solar-asset-uuid-1",
      "offerFileName": null,
      "offerUrl": null,
      "contactAndCompanyInfo": {
        "firstName": "John",
        "lastName": "Doe",
        "email": "john.doe@example.com",
        "phoneNumber": "+492111234567",
        "preferredWayOfCommunication": 1,
        "language": "de",
        "actorRole": "Consumer",
        "companyName": "Trace GmbH",
        "companyAddress": "Königsallee 14",
        "companyCity": "Düsseldorf",
        "companyZipCode": "40212",
        "companyCountry": "de",
        "companyLocation": "51.221649, 6.777283",
        "currentDate": "2026-02-20"
      },
      "leadInfo": {
        "status": 1,
        "leadType": 2,
        "termsAndConditions": true,
        "contactPermission": true,
        "recipientEmail": "leads@trace-electricity.com",
        "errorMessage": null,
        "createdAt": "2026-02-20T11:00:00Z",
        "sentAt": "2026-02-20T11:01:15Z",
        "templateName": "DynamicMarketAccess_DE"
      },
      "tariffData": {
        "tariffType": 4,
        "dynamicMarketAccess": {
          "serviceFeeType": 2,
          "contractPeriod": "36",
          "forecastingOwnership": 2,
          "intradayAdjustmentByProvider": true,
          "balancingVolumes": "ActualCosts",
          "downpaymentAccepted": false,
          "interestToReceivePPAOffer": true,
          "receiveGOsForPurchasedElectricity": true,
          "balancingGroupRequired": true,
          "supplyIncludingGridUsage": false,
          "meteredLoadProfilesCount": 8,
          "meteredLoadProfilesOperatorsCount": 3,
          "standardLoadProfilesCount": 5,
          "standardLoadProfilesOperatorsCount": 2,
          "energyConsumption": {
            "annualConsumptionKwh": 2500000.0,
            "thirdPartyKwh": 800000.0,
            "futureMarketKwh": 500000.0,
            "spotMarketKwh": 700000.0,
            "ownProductKwh": 500000.0
          },
          "energyProduction": {
            "solarEnergyProductionPA": 350000.0,
            "windEnergyProductionPA": 750000.0,
            "cogenerationEnergyProductionPA": 150000.0,
            "otherEnergyProductionPA": 80000.0
          }
        },
        "solarAssets": [
          {
            "id": "dma-solar-asset-uuid-1",
            "technology": "Solar",
            "installedCapacity": 420.0,
            "applicableValue": 420.0,
            "installationDate": 2021,
            "direction": "South",
            "angle": 30,
            "location": {
              "latitude": 51.221649,
              "longitude": 6.777283,
              "address": "Königsallee 14",
              "zipCode": "40212",
              "country": "Germany",
              "state": "North Rhine-Westphalia",
              "city": "Düsseldorf",
              "description": "Industrial rooftop installation"
            },
            "maStREntities": [],
            "attachments": [
              {
                "id": "att-dma-solar-001-uuid",
                "fileName": "trace_solar_profile_2025.csv",
                "attachmentType": "ProductionProfile",
                "processingStatus": "Completed",
                "timeZone": "Europe/Berlin",
                "measurementType": "Energy",
                "unit": "KWh",
                "coverageStart": "2025-01-01T00:00:00Z",
                "coverageEnd": "2025-12-31T23:45:00Z",
                "resolution": "PT15M",
                "timeZoneStatus": "UserDefined",
                "measurementTypeStatus": "SystemDefined",
                "unitStatus": "ConfirmedMatch",
                "initialTimeZone": null,
                "initialMeasurementType": "Power",
                "initialUnit": null,
                "originalDownloadUrl": "/api/crm/attachments/att-dma-solar-001-uuid/download?type=original",
                "processedDownloadUrl": "/api/crm/attachments/att-dma-solar-001-uuid/download?type=processed",
                "suggestions": null
              }
            ]
          }
        ],
        "windAssets": [],
        "priceInfo": {
          "priceHeader1": "Relative Service Fee",
          "priceHeader2": null,
          "defaultBasicFee": null,
          "defaultGuaranteeFee": 0.20,
          "locationFactor": null,
          "energyPrices": [
            { "year": 2026, "relativeFee": 1.80 },
            { "year": 2027, "relativeFee": 1.85 }
          ]
        }
      }
    }
  ],
  "totalCount": 1,
  "skip": 0,
  "take": 50
}

Example 6: PPA Upstream Tariff

Response (showing PPA Upstream configuration with full solar asset and attachment detail):

{
  "leads": [
    {
      "id": "ppa-upstream-uuid-1",
      "companyId": "d4e5f6a7-2233-4455-6677-8899aabbccdd",
      "assetId": "solar-asset-guid-1",
      "offerFileName": "PPA_Upstream_Offer_Trace_2025.pdf",
      "offerUrl": "/api/crm/leads/energy-tariff/ppa-upstream-uuid-1/offer/download",
      "contactAndCompanyInfo": {
        "firstName": "Jane",
        "lastName": "Doe",
        "email": "jane.doe@example.com",
        "phoneNumber": "+494031234567",
        "preferredWayOfCommunication": 0,
        "language": "de",
        "actorRole": "Producer",
        "companyName": "Trace GmbH",
        "companyAddress": "Spaldingstraße 110",
        "companyCity": "Hamburg",
        "companyZipCode": "20097",
        "companyCountry": "de",
        "companyLocation": "53.556088, 10.020534",
        "currentDate": "2025-05-10"
      },
      "leadInfo": {
        "status": 1,
        "leadType": 2,
        "termsAndConditions": true,
        "contactPermission": true,
        "recipientEmail": "leads@trace-electricity.com",
        "errorMessage": null,
        "createdAt": "2025-05-10T09:15:00Z",
        "sentAt": "2025-05-10T09:16:40Z",
        "templateName": "PPAUpstream_DE"
      },
      "tariffData": {
        "tariffType": 5,
        "ppaUpstream": {
          "technology": 1,
          "solarAssetIds": ["solar-asset-guid-1", "solar-asset-guid-2"],
          "windAssetIds": [],
          "ppaStructure": 1,
          "negativePrices": 1,
          "plannedStartDate": "2025-06-01T00:00:00Z",
          "contractPeriod": "15",
          "guaranteeOfOrigin": 2,
          "intendedShareOfFixPrice": 0.75
        },
        "solarAssets": [
          {
            "id": "solar-asset-guid-1",
            "technology": "Solar",
            "installedCapacity": 1200.0,
            "applicableValue": 1200.0,
            "installationDate": 2020,
            "direction": "South",
            "angle": 25,
            "location": {
              "latitude": 53.556088,
              "longitude": 10.020534,
              "address": "Spaldingstraße 110",
              "zipCode": "20097",
              "country": "Germany",
              "state": "Hamburg",
              "city": "Hamburg",
              "description": "Ground-mounted solar park"
            },
            "maStREntities": [],
            "attachments": [
              {
                "id": "att-ppa-upstream-001-uuid",
                "fileName": "ppa_upstream_solar_profile_2025.csv",
                "attachmentType": "ProductionProfile",
                "processingStatus": "Completed",
                "timeZone": "Europe/Berlin",
                "measurementType": "Energy",
                "unit": "KWh",
                "coverageStart": "2025-01-01T00:00:00Z",
                "coverageEnd": "2025-12-31T23:45:00Z",
                "resolution": "PT15M",
                "timeZoneStatus": "UserDefined",
                "measurementTypeStatus": "ConfirmedMatch",
                "unitStatus": "ConfirmedMatch",
                "initialTimeZone": null,
                "initialMeasurementType": null,
                "initialUnit": null,
                "originalDownloadUrl": "/api/crm/attachments/att-ppa-upstream-001-uuid/download?type=original",
                "processedDownloadUrl": "/api/crm/attachments/att-ppa-upstream-001-uuid/download?type=processed",
                "suggestions": null
              }
            ]
          }
        ],
        "windAssets": [],
        "priceInfo": {
          "priceHeader1": "Fixed Price",
          "priceHeader2": null,
          "defaultBasicFee": null,
          "defaultGuaranteeFee": 0.00,
          "locationFactor": null,
          "energyPrices": [
            { "year": 2025, "fixedFee": 0.085 },
            { "year": 2026, "fixedFee": 0.087 }
          ]
        }
      }
    }
  ],
  "totalCount": 1,
  "skip": 0,
  "take": 50
}

Example 7: PPA Downstream Tariff

Response (showing PPA Downstream configuration with full wind asset and attachment detail):

{
  "leads": [
    {
      "id": "ppa-downstream-uuid-1",
      "companyId": "e7f8a9b0-3344-5566-7788-99aabbccddee",
      "assetId": "wind-ppa-downstream-001-uuid",
      "offerFileName": "PPA_Downstream_Offer_Trace_2025.pdf",
      "offerUrl": "/api/crm/leads/energy-tariff/ppa-downstream-uuid-1/offer/download",
      "contactAndCompanyInfo": {
        "firstName": "John",
        "lastName": "Doe",
        "email": "john.doe@example.com",
        "phoneNumber": "+497211234567",
        "preferredWayOfCommunication": 0,
        "language": "de",
        "actorRole": "Producer",
        "companyName": "Trace GmbH",
        "companyAddress": "Ettlinger Straße 25",
        "companyCity": "Karlsruhe",
        "companyZipCode": "76137",
        "companyCountry": "de",
        "companyLocation": "48.992447, 8.402988",
        "currentDate": "2025-03-05"
      },
      "leadInfo": {
        "status": 1,
        "leadType": 2,
        "termsAndConditions": true,
        "contactPermission": false,
        "recipientEmail": "leads@trace-electricity.com",
        "errorMessage": null,
        "createdAt": "2025-03-05T16:45:00Z",
        "sentAt": "2025-03-05T16:46:30Z",
        "templateName": "PPADownstream_DE"
      },
      "tariffData": {
        "tariffType": 6,
        "ppaDownstream": {
          "technology": 1,
          "energyVolumePA": 1800000.0,
          "energyCapacityPA": 600.0,
          "ppaIntegration": true,
          "endOfContractTerm": "2035-12-31T00:00:00Z",
          "ppaStructure": 2,
          "negativePrices": 2,
          "plannedStartDate": "2025-04-01T00:00:00Z",
          "contractPeriod": "10",
          "guaranteeOfOrigin": 1,
          "dedicatedAssetCriteria": true,
          "additionalityCriteria": true
        },
        "solarAssets": [],
        "windAssets": [
          {
            "id": "wind-ppa-downstream-001-uuid",
            "technology": "Wind",
            "installedCapacity": 4200.0,
            "applicableValue": 4200.0,
            "installationDate": 2019,
            "hubHeight": 135.0,
            "ratedPower": 4200.0,
            "rotorDiameter": 136.0,
            "numberOfTurbines": 1,
            "location": {
              "latitude": 48.992447,
              "longitude": 8.402988,
              "address": "Ettlinger Straße 25",
              "zipCode": "76137",
              "country": "Germany",
              "state": "Baden-Württemberg",
              "city": "Karlsruhe",
              "description": null
            },
            "maStREntities": [],
            "attachments": [
              {
                "id": "att-ppa-downstream-001-uuid",
                "fileName": "trace_wind_profile_2024.csv",
                "attachmentType": "ProductionProfile",
                "processingStatus": "Completed",
                "timeZone": "Europe/Berlin",
                "measurementType": "Energy",
                "unit": "KWh",
                "coverageStart": "2024-01-01T00:00:00Z",
                "coverageEnd": "2024-12-31T23:45:00Z",
                "resolution": "PT15M",
                "timeZoneStatus": "UserDefined",
                "measurementTypeStatus": "ConfirmedMatch",
                "unitStatus": "ConfirmedMatch",
                "initialTimeZone": null,
                "initialMeasurementType": null,
                "initialUnit": null,
                "originalDownloadUrl": "/api/crm/attachments/att-ppa-downstream-001-uuid/download?type=original",
                "processedDownloadUrl": "/api/crm/attachments/att-ppa-downstream-001-uuid/download?type=processed",
                "suggestions": null
              }
            ]
          }
        ],
        "priceInfo": {
          "priceHeader1": "Fixed Price",
          "priceHeader2": null,
          "defaultBasicFee": null,
          "defaultGuaranteeFee": 0.00,
          "locationFactor": null,
          "energyPrices": [
            { "year": 2025, "fixedFee": 0.095 },
            { "year": 2026, "fixedFee": 0.097 },
            { "year": 2027, "fixedFee": 0.099 }
          ]
        }
      }
    }
  ],
  "totalCount": 1,
  "skip": 0,
  "take": 50
}

Example 8: Direct Marketing — Wind Farm with 5 Turbines

Request:

curl -X GET "https://<YOUR_PROJECT_DOMAIN>/api/crm/leads/energy-tariff?status=1&leadType=2" \
  -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGc..."

Response (one wind-farm asset, five MaStR entries fully expanded, one shared production-profile attachment):

{
  "leads": [
    {
      "id": "lead-windfarm-5t-001",
      "companyId": "f9a0b1c2-4455-6677-8899-aabbccddeeff",
      "assetId": "windfarm-asset-001",
      "offerFileName": "Direct_Marketing_Offer_Trace_2026.pdf",
      "offerUrl": "/api/crm/leads/energy-tariff/lead-windfarm-5t-001/offer/download",
      "contactAndCompanyInfo": {
        "firstName": "Jane",
        "lastName": "Doe",
        "email": "jane.doe@example.com",
        "phoneNumber": "+494841234567",
        "preferredWayOfCommunication": 0,
        "language": "de",
        "actorRole": "Producer",
        "companyName": "Trace GmbH",
        "companyAddress": "Westerdeich 21",
        "companyCity": "Husum",
        "companyZipCode": "25813",
        "companyCountry": "de",
        "companyLocation": "54.472500, 9.050900",
        "currentDate": "2026-04-08"
      },
      "leadInfo": {
        "status": 1,
        "leadType": 2,
        "termsAndConditions": true,
        "contactPermission": true,
        "recipientEmail": "leads@trace-electricity.com",
        "errorMessage": null,
        "createdAt": "2026-04-08T13:20:00Z",
        "sentAt": "2026-04-08T13:21:45Z",
        "templateName": "DirectMarketingOffer_DE"
      },
      "tariffData": {
        "tariffType": 3,
        "directMarketing": {
          "directMarketingType": 1,
          "directMarketingEnumerationType": 1,
          "serviceFeeType": 1,
          "plannedStartDate": "2026-07-01T00:00:00Z",
          "contractPeriod": "24",
          "guaranteeOfOrigin": 1
        },
        "solarAssets": [],
        "windAssets": [
          {
            "id": "windfarm-asset-001",
            "technology": "Wind",
            "installedCapacity": 21000.0,
            "applicableValue": 21000.0,
            "installationDate": 2021,
            "hubHeight": 135.0,
            "ratedPower": 4200.0,
            "rotorDiameter": 136.0,
            "numberOfTurbines": 5,
            "location": {
              "latitude": 54.4725,
              "longitude": 9.0509,
              "address": "Westerdeich 21",
              "zipCode": "25813",
              "country": "Germany",
              "state": "Schleswig-Holstein",
              "city": "Husum",
              "description": null
            },
            "maStREntities": [
              {
                "maStRId": "SEE900000001",
                "unitMasterNumber": "UMN-NW-001",
                "locationMasterNumber": "LMN-NW-001",
                "plantOperatorMasterNumber": "POM-NW-001",
                "eegMasterNumber": "EEG-NW-001",
                "powerGenerationUnitName": "Trace Turbine 1",
                "grossPower": 4200.0,
                "netRatedPower": 4100.0,
                "latitude": 54.4720,
                "longitude": 9.0504,
                "maStRFeedInType": 1,
                "maStRStatus": 1,
                "lastUpdateDate": "2026-03-18T09:15:00Z"
              },
              {
                "maStRId": "SEE900000002",
                "unitMasterNumber": "UMN-NW-002",
                "locationMasterNumber": "LMN-NW-002",
                "plantOperatorMasterNumber": "POM-NW-001",
                "eegMasterNumber": "EEG-NW-002",
                "powerGenerationUnitName": "Trace Turbine 2",
                "grossPower": 4200.0,
                "netRatedPower": 4100.0,
                "latitude": 54.4728,
                "longitude": 9.0512,
                "maStRFeedInType": 1,
                "maStRStatus": 1,
                "lastUpdateDate": "2026-03-18T09:15:00Z"
              },
              {
                "maStRId": "SEE900000003",
                "unitMasterNumber": "UMN-NW-003",
                "locationMasterNumber": "LMN-NW-003",
                "plantOperatorMasterNumber": "POM-NW-001",
                "eegMasterNumber": "EEG-NW-003",
                "powerGenerationUnitName": "Trace Turbine 3",
                "grossPower": 4200.0,
                "netRatedPower": 4100.0,
                "latitude": 54.4732,
                "longitude": 9.0498,
                "maStRFeedInType": 1,
                "maStRStatus": 1,
                "lastUpdateDate": "2026-03-18T09:15:00Z"
              },
              {
                "maStRId": "SEE900000004",
                "unitMasterNumber": "UMN-NW-004",
                "locationMasterNumber": "LMN-NW-004",
                "plantOperatorMasterNumber": "POM-NW-001",
                "eegMasterNumber": "EEG-NW-004",
                "powerGenerationUnitName": "Trace Turbine 4",
                "grossPower": 4200.0,
                "netRatedPower": 4100.0,
                "latitude": 54.4718,
                "longitude": 9.0520,
                "maStRFeedInType": 1,
                "maStRStatus": 1,
                "lastUpdateDate": "2026-03-18T09:15:00Z"
              },
              {
                "maStRId": "SEE900000005",
                "unitMasterNumber": "UMN-NW-005",
                "locationMasterNumber": "LMN-NW-005",
                "plantOperatorMasterNumber": "POM-NW-001",
                "eegMasterNumber": "EEG-NW-005",
                "powerGenerationUnitName": "Trace Turbine 5",
                "grossPower": 4200.0,
                "netRatedPower": 4100.0,
                "latitude": 54.4724,
                "longitude": 9.0516,
                "maStRFeedInType": 1,
                "maStRStatus": 1,
                "lastUpdateDate": "2026-03-18T09:15:00Z"
              }
            ],
            "attachments": [
              {
                "id": "att-windfarm-profile-001",
                "fileName": "nordwind_energie_profile_2025.csv",
                "attachmentType": "ProductionProfile",
                "processingStatus": "Completed",
                "timeZone": "Europe/Berlin",
                "measurementType": "Energy",
                "unit": "KWh",
                "coverageStart": "2025-01-01T00:00:00Z",
                "coverageEnd": "2025-12-31T23:45:00Z",
                "resolution": "PT15M",
                "timeZoneStatus": "UserDefined",
                "measurementTypeStatus": "ConfirmedMatch",
                "unitStatus": "ConfirmedMatch",
                "initialTimeZone": null,
                "initialMeasurementType": null,
                "initialUnit": null,
                "originalDownloadUrl": "/api/crm/attachments/att-windfarm-profile-001/download?type=original",
                "processedDownloadUrl": "/api/crm/attachments/att-windfarm-profile-001/download?type=processed",
                "suggestions": null
              }
            ]
          }
        ],
        "priceInfo": {
          "priceHeader1": "Fixed Service Fee",
          "priceHeader2": "Annual Costs",
          "defaultBasicFee": 150.00,
          "defaultGuaranteeFee": 0.35,
          "locationFactor": null,
          "energyPrices": [
            { "year": 2026, "fixedFee": 11.90 },
            { "year": 2027, "fixedFee": 12.10 }
          ]
        }
      }
    }
  ],
  "totalCount": 1,
  "skip": 0,
  "take": 50
}

Modeling note: This example shows one wind-farm asset with a single TRACE asset ID, five MaStR entries for the underlying turbines (all fully expanded), and one shared production-profile attachment representing the grouped wind-farm profile.