Skip to content

Create Profile

POST
/api/v1/projects/{project_id}/profiles
curl --request POST \
--url https://api.totalview.energy/api/v1/projects/example/profiles \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "profile_label": "example", "confidence_level": 1, "source": "example", "scenario_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "gen_hour_profile_mw": [ { "timestamp": "2026-04-15T12:00:00Z", "value": 1, "source": "example" } ], "is_primary": false }'

Upload a new generation profile for a project.

project_id
required
Project Id
string
Media type application/json
ProfileCreate

Request schema for uploading a generation profile.

object
profile_label
required
Profile Label

Confidence label: P50, P75, P90, P95, or custom

string
confidence_level
Any of:
integer
source
Any of:
string
scenario_id
Any of:
string format: uuid
gen_hour_profile_mw
required
Gen Hour Profile Mw

8760-hour generation profile

Array<object>
HourlyGenEntry

Hourly generation profile entry.

The optional source field records the provenance of the value (e.g., "metered", "sam_modeled", "gap_filled_zero"). The engine surfaces the per-source hour-count in the run summary’s GenerationMetadata.profile_source_breakdown so reviewers can audit which fraction of the profile is metered vs. simulated. Source is opaque — any string is allowed.

object
timestamp
required
Timestamp
string format: date-time
value
required
Any of:
number
source
Any of:
string
is_primary
Is Primary
boolean

Successful Response

Media type application/json
ProfileOut

Response schema for a generation profile.

object
profile_id
required
Profile Id
string format: uuid
project_id
required
Project Id
string format: uuid
scenario_id
Any of:
string format: uuid
profile_label
required
Profile Label
string
confidence_level
Any of:
integer
source
Any of:
string
annual_generation_mwh
Any of:
number
is_primary
Is Primary
boolean
created_at
Any of:
string format: date-time
Example
{
"is_primary": false
}

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Example generated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}