Back to Documentation

API Reference

Complete REST API documentation for integrating Nagare into your systems. Every feature in the UI is available via API.

Looking for detailed examples?

Check out the comprehensive API documentation with full request/response examples for all endpoints.

View Full API Docs

Quick Start

Base URL

https://api.nagare.com/v1

Authentication

Authorization: Bearer fnd_live_...

Example Request

curl -X GET https://api.nagare.com/v1/funds \
  -H "Authorization: Bearer fnd_live_your_key_here" \
  -H "Content-Type: application/json"

Authentication

All API requests require authentication using an API key. Create API keys in your account settings.

Getting an API Key

  1. Log in to your Nagare account
  2. Go to Settings → API Keys
  3. Click "Create API Key"
  4. Copy the key (it starts with fnd_live_)

Using the API Key

Include your API key in the Authorization header of every request:

Authorization: Bearer fnd_live_abc123...

Security Best Practices

  • Never commit API keys to version control
  • Use environment variables to store keys
  • Rotate keys regularly
  • Revoke keys immediately if compromised

Core Endpoints

Funds

GET/funds

List all funds in your portfolio.

Example Response

{
  "funds": [
    {
      "id": "fund_abc123",
      "name": "Sequoia Capital Fund XVIII",
      "fundType": "VENTURE_CAPITAL",
      "vintageYear": 2022,
      "commitment": 50000000,
      "currency": "USD",
      "parameters": {
        "investmentPeriod": 5,
        "fundLife": 12,
        "expectedTVPI": 2.5,
        "deploymentCurve": "linear",
        "exitCurve": "backend_loaded"
      },
      "createdAt": "2025-01-15T10:00:00Z",
      "updatedAt": "2025-03-20T14:30:00Z"
    }
  ],
  "total": 30
}
GET/funds/:id

Get details for a specific fund.

POST/funds

Create a new fund.

Example Request

{
  "name": "Vista Equity Partners Fund IX",
  "fundType": "BUYOUT",
  "vintageYear": 2024,
  "commitment": 100000000,
  "currency": "USD",
  "parameters": {
    "investmentPeriod": 4,
    "fundLife": 10,
    "expectedTVPI": 2.2,
    "deploymentCurve": "front_loaded",
    "exitCurve": "backend_loaded"
  }
}
PATCH/funds/:id

Update fund parameters.

DELETE/funds/:id

Delete a fund (soft delete - preserves historical data).

Transactions (Actuals)

GET/funds/:fundId/transactions

Get all transactions for a fund.

POST/funds/:fundId/transactions

Add actual transactions (capital calls, distributions, NAV updates).

Example Request

{
  "date": "2025-09-30",
  "type": "CAPITAL_CALL",
  "amount": 5000000,
  "currency": "USD",
  "description": "Q3 2025 Capital Call"
}
POST/transactions/import

Bulk import transactions via CSV.

Scenarios

GET/scenarios

List all scenarios.

POST/scenarios

Create a new scenario.

Example Request

{
  "name": "Bear Case: 20% Slower Deployment",
  "description": "Conservative scenario with delayed deployment",
  "fundIds": ["fund_abc123", "fund_def456"],
  "assumptions": {
    "returnAdjustment": -0.05,
    "deploymentSlowdown": 0.2,
    "exitDelay": 2
  }
}
POST/scenarios/:id/calculate

Trigger calculation for a scenario. Returns projections in ~3 seconds.

GET/scenarios/:id/projections

Get quarterly projections for a scenario.

Example Response

{
  "scenarioId": "scn_xyz789",
  "projections": [
    {
      "quarter": 0,
      "date": "2025-Q1",
      "capitalCall": 5000000,
      "distribution": 0,
      "nav": 45000000,
      "tvpi": 0.9,
      "irr": null,
      "dpi": 0,
      "rvpi": 0.9
    },
    {
      "quarter": 1,
      "date": "2025-Q2",
      "capitalCall": 5000000,
      "distribution": 500000,
      "nav": 52000000,
      "tvpi": 1.05,
      "irr": 0.12,
      "dpi": 0.01,
      "rvpi": 1.04
    }
  ],
  "aggregate": {
    "totalCapitalCalled": 50000000,
    "totalDistributions": 75000000,
    "finalNAV": 50000000,
    "finalTVPI": 2.5,
    "finalIRR": 0.18
  }
}

Monte Carlo Simulations

POST/scenarios/:id/monte-carlo

Run Monte Carlo simulation for a scenario.

Example Request

{
  "iterations": 10000,
  "variables": {
    "returns": {
      "distribution": "lognormal",
      "mean": 0.15,
      "stdDev": 0.08
    },
    "deploymentTiming": {
      "distribution": "beta",
      "alpha": 2,
      "beta": 5
    }
  },
  "correlations": {
    "fundCorrelation": 0.3
  }
}
GET/scenarios/:id/monte-carlo/results

Get Monte Carlo simulation results.

Example Response

{
  "scenarioId": "scn_xyz789",
  "iterations": 10000,
  "statistics": {
    "tvpi": {
      "p10": 1.8,
      "p50": 2.5,
      "p90": 3.2,
      "mean": 2.48,
      "stdDev": 0.42
    },
    "irr": {
      "p10": 0.12,
      "p50": 0.18,
      "p90": 0.24,
      "mean": 0.179,
      "stdDev": 0.035
    }
  },
  "distributions": {
    "tvpi": [1.6, 1.8, 2.0, ...],
    "irr": [0.10, 0.12, 0.15, ...]
  },
  "calculatedAt": "2025-09-15T14:30:00Z"
}

Calculation Snapshots

POST/snapshots

Create a snapshot of current calculations for variance analysis.

Example Request

{
  "name": "Q3 2025 Baseline",
  "scenarioId": "scn_baseline",
  "description": "Snapshot for Q3 2025 variance analysis"
}
GET/snapshots/compare

Compare two snapshots for variance analysis.

Query Parameters

  • baseline - Baseline snapshot ID
  • current - Current snapshot ID

AI Document Processing

POST/documents/upload

Upload GP statements for AI extraction.

Request Format

Multipart form data with file attachment:

curl -X POST https://api.nagare.com/v1/documents/upload \
  -H "Authorization: Bearer fnd_live_..." \
  -F "file=@capital-statement-q3-2025.pdf" \
  -F "fundId=fund_abc123"
GET/documents/:id/extracted-data

Get AI-extracted data from a document.

POST/documents/:id/approve

Approve extracted data and add to fund transactions.

FX Rates

GET/fx-rates

Get FX rates for a specific date and currency pair.

Query Parameters

  • from - Source currency (e.g., USD)
  • to - Target currency (e.g., EUR)
  • date - Date (YYYY-MM-DD)

Error Handling

The API uses conventional HTTP response codes and returns error details in JSON format.

HTTP Status Codes

200Success - Request completed successfully
201Created - Resource created successfully
400Bad Request - Invalid request parameters
401Unauthorized - Invalid or missing API key
403Forbidden - Insufficient permissions
404Not Found - Resource does not exist
500Internal Server Error - Something went wrong on our end

Error Response Format

{
  "error": {
    "code": "INVALID_FUND_PARAMETERS",
    "message": "Investment period must be between 1 and 10 years",
    "details": {
      "field": "parameters.investmentPeriod",
      "value": 15,
      "constraint": "max:10"
    }
  }
}

Rate Limits

The API enforces rate limits to ensure fair usage and system stability.

Default Limits

  • Read operations: 1,000 requests per minute
  • Write operations: 100 requests per minute
  • Calculations: 10 concurrent calculations
  • Document uploads: 50 MB per file, 100 files per day

Rate Limit Headers

Every response includes rate limit information in headers:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1696000000

Need Higher Limits?

Contact support@nagare.com to discuss custom rate limits for enterprise use cases.

SDKs & Client Libraries

We provide official SDKs to make API integration easier.

TypeScript / JavaScript

npm install @nagare/client
import { NagareClient } from '@nagare/client'

const nagare = new NagareClient({
  apiKey: 'fnd_live_...'
})

const funds = await nagare.funds.list()

Python

pip install nagare-python
from nagare import NagareClient

nagare = NagareClient(
    api_key="fnd_live_..."
)

funds = nagare.funds.list()

Need a Different Language?

The API follows REST conventions and works with any HTTP client. We're working on SDKs for:

  • Go (coming Q4 2025)
  • Ruby (coming Q1 2026)
  • Java (coming Q1 2026)

Start Building

Ready to integrate Nagare into your systems? Get your API key and start building today.