Skip to main content

Money API guide

This page documents Money endpoints with usage guidance, parameter tables, and request/response examples.
For full contract detail and interactive testing, use the API Explorer in the sidebar.

Endpoint reference

GET /api/money/metrics

Use this endpoint to load top-level Money metrics for one snapshot date. Query parameters
NameTypeRequiredDescription
asOfDatestring (date)YesSnapshot date in YYYY-MM-DD format.
curl "<NSDK_API_BASE_URL>/api/money/metrics?asOfDate=2026-03-03" \
  -H "Authorization: Bearer <access-jwt>"
Common errors
  • 401: access token invalid or missing
  • 429: rate-limit protection

GET /api/money/actions

Use this endpoint to load prioritized action items for the same snapshot date. Query parameters
NameTypeRequiredDescription
asOfDatestring (date)YesSnapshot date in YYYY-MM-DD format.
curl "<NSDK_API_BASE_URL>/api/money/actions?asOfDate=2026-03-03" \
  -H "Authorization: Bearer <access-jwt>"
Common errors
  • 401: access token invalid or missing
  • 429: rate-limit protection

GET /api/money/action/detail

Use this endpoint when a user opens one Money action detail panel. Query parameters
NameTypeRequiredDescription
insightIdstringYesTarget action insight identifier.
curl "<NSDK_API_BASE_URL>/api/money/action/detail?insightId=12345" \
  -H "Authorization: Bearer <access-jwt>"
Common errors
  • 401: access token invalid or missing
  • 404: action not found in user scope
  • 429: rate-limit protection

GET /api/money/metric/detail

Use this endpoint for metric-level drilldown when users open one metric card. Query parameters
NameTypeRequiredDescription
metricKeystringYesMetric identifier, for example cash_balance.
curl "<NSDK_API_BASE_URL>/api/money/metric/detail?metricKey=cash_balance" \
  -H "Authorization: Bearer <access-jwt>"
Common errors
  • 401: access token invalid or missing
  • 404: metric not found in user scope
  • 429: rate-limit protection

POST /api/money/action/status/set

Use this endpoint to update one action state (for example dismissed or completed). Request body
NameTypeRequiredDescription
userIdstringYesAuthenticated user identifier.
insightIdstringYesAction insight identifier.
statusstringYesNew status, e.g. open, dismissed, completed.
reasonstringNoOptional reason, e.g. already_handled.
curl -X POST "<NSDK_API_BASE_URL>/api/money/action/status/set" \
  -H "Authorization: Bearer <access-jwt>" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "1005",
    "insightId": "12345",
    "status": "dismissed",
    "reason": "already_handled"
  }'
Common errors
  • 400: invalid status payload
  • 401: access token invalid or missing
  • 429: rate-limit protection