Skip to content

Get Portfolio Indicators

GET
/api/v1/indicators
curl --request GET \
--url 'https://indepai.app/api/v1/indicators?portfolioId=550e8400-e29b-41d4-a716-446655440000' \
--header 'Authorization: Bearer <token>'

Returns the five portfolio indicators. Optionally scopes the calculation to one portfolio and one to three focused cities.

portfolioId

Scope to one portfolio (omit = all holdings)

string format: uuid
Example
550e8400-e29b-41d4-a716-446655440000
citySlugs

One to three comma-separated city slugs to model in the supplied order

string
<= 300 characters /^[a-z0-9]+(?:-[a-z0-9]+)*(?:,[a-z0-9]+(?:-[a-z0-9]+)*){0,2}$/

Portfolio indicators calculated successfully

Media typeapplication/json
object
portfolioId
required

Unique identifier (UUID v4)

string | null format: uuid
indicators
required

All five indicators in fixed order; each may carry status:‘pending’

Array<object>
object
key
required

Indicator key

string
Allowed values: fire-coverage currency-exposure dividend-income diversification fee-tax-drag
status
required

Sub-metric / indicator status

string
Allowed values: ok degraded pending unavailable
value
required

Per-indicator computed bundle

object
key
additional properties
warnings
required
Array<string>
Example
{
"portfolioId": "550e8400-e29b-41d4-a716-446655440000",
"indicators": [
{
"key": "fire-coverage",
"status": "ok"
}
]
}

Invalid portfolio or city scope

Media typeapplication/json
object
success
required

Always false for error responses

boolean
error
required

Error type

string
code

Machine-readable error code

string
details

Detailed validation errors

Array<object>
object
path
required

Path to the invalid field

string
message
required

Error message

string
Example
{
"success": false,
"error": "Validation error",
"code": "VALIDATION_ERROR",
"details": [
{
"path": "currentAge",
"message": "Must be between 18 and 100"
}
]
}

Authentication required

Media typeapplication/json
object
success
required

Always false for error responses

boolean
error
required

Error type

string
code

Machine-readable error code

string
details

Detailed validation errors

Array<object>
object
path
required

Path to the invalid field

string
message
required

Error message

string
Example
{
"success": false,
"error": "Validation error",
"code": "VALIDATION_ERROR",
"details": [
{
"path": "currentAge",
"message": "Must be between 18 and 100"
}
]
}