Skip to main content

Introduction

The LP Reporting API exposes every part of the Report Studio as HTTP endpoints: create a fund report, configure it, pull the computed numbers as JSON, and render the investor statement. The Renesis Report Workspace is itself a client of these endpoints, so anything the product can do, your integration can do. Two endpoints do most of the work:
  • GET /api/funds/{report_id}/config returns the report’s configuration (fund identity, period, strategies, fees, content, branding).
  • GET /api/funds/{report_id}/computed returns the numbers (NAV, returns, risk, fees by month, holdings, allocations) as JSON floats, the same values that get baked into the rendered statement.
If you are building your own reporting dashboard, /computed is the endpoint to build against. /config is configuration, /computed is computed metrics; never derive one from the other. If you don’t need a report at all, just the portfolio’s current value as one number (on-chain NAV publishing, attestation workflows, scheduled pulls), skip the report endpoints entirely and use the Portfolio NAV endpoint.
Numbers come from the same portfolio ledger that drives the Renesis dashboard. If the dashboard NAV is wrong, /computed will be wrong. Fix the ledger first (re-reconcile the affected wallet or account), then re-read.

Base URL

  • Production: https://api.renesis.fi
All LP Reporting endpoints are served under the /lp-report-studio prefix. For other environments, contact your administrator. Throughout this reference, paths are written relative to that prefix. GET /api/funds means:

Authentication

All endpoints authenticate with a Renesis API key (prefix ak_), passed in the X-API-Key header. Create and manage keys from your user page in the dashboard; the secret is shown only once at creation, so copy it then.
If a key was issued with a path allowlist, it must include the /lp-report-studio prefix to call these endpoints. Keep keys secret and server-side. A Keycloak bearer token works everywhere the API key does (Authorization: Bearer <token>). That is the path in-app sessions use; for a server-to-server integration prefer the API key, since it has no session to keep alive.

Gateway rejections

Key verification happens at the gateway, before the service is reached, and uses its own error envelope:

Permissions

Every endpoint on this service requires the caller to hold one of the admin, trader, or pms_user roles. On top of that, endpoints scoped to a {report_id} enforce per-report access: GET /api/funds filters to the reports the caller can read, so it is safe to call as a discovery step.
A limited partner cannot call this service. The role gate runs before the per-report access check, and an LP user holds only the limited-partner role, so every endpoint here answers 401 for them regardless of email_addresses or investor registration. Serve LP end users through the LP Portal endpoints instead, or proxy their requests server-side with your own credential.
Rendering counts as a write operation. A recipient with read access can download an already-rendered statement through GET /output/{filename}, but cannot trigger a new render.

Resource model

One report maps to exactly one portfolio. The portfolio is the LP scope: if a manager runs several LP mandates, each mandate gets its own portfolio and its own report.

Response format

Every JSON endpoint on this service returns an ok boolean alongside its payload:
Errors carry the same envelope with a message:
The role and access gates predate this envelope and answer in the platform-wide shape instead:
Treat a non-2xx status as the signal; parse error or message, whichever is present. The LP Portal endpoints use the isError envelope throughout.

Status codes

Silence is the default failure mode on writes. PUT /config drops unknown and unwritable keys without error, and clamps over-long text without error, returning 200 either way. A typo in a field name looks exactly like a successful save. Always compare the echoed config in the response against what you sent. See Configuration.

Quickstart

Discover a report, read its numbers, render the statement.

Health

Public, no authentication.
Key your uptime check on the pg and mongo booleans. The top-level ok is always true and does not reflect dependency health.

Configuration

Create reports, read and patch the unified config, upload logos, detect vault strategies, reuse templates. Includes the validation rules that are not enforced for you.

Computed metrics

The full JSON shape behind every number on the statement, with sign, null, and unit semantics. Build dashboards against this.

Rendering

Render the statement, preview unsaved edits, download the output, and handle render-time validation failures.

Position Groups

Group raw positions into named strategies, and read their combined value, P&L and history.

Portfolio NAV

Pull a portfolio’s current NAV as one number, in your chosen currency, for scheduled pulls and on-chain publishing.

LP Portal

Per-investor endpoints: investors, capital events, share accounting, and the endpoints an LP user can call directly.