{"openapi":"3.0.3","info":{"title":"Jolv API","version":"0.5.0","description":"Read-only access to Jolv fund and valuation data (system of record), under the rights of the Jolv account that authorised the access. Every value comes from a finalised campaign: no estimate, no write. Amounts are persisted in euros (€), thousands (€k) or millions (€m) depending on the field; see each field's description.","contact":{"name":"Jolv","url":"https://www.jolv.app"}},"externalDocs":{"description":"Jolv API documentation","url":"https://www.jolv.app/api"},"servers":[{"url":"https://jolv-mcp.vercel.app"}],"security":[{"bearer":[]}],"tags":[{"name":"Funds","description":"Published NAV, fund profile, portfolio aggregates, allocation, LP positions and access governance."},{"name":"Campaigns","description":"Valuation campaigns and their status."},{"name":"Valuations","description":"Valuation sheets, methods, evolution across campaigns, waterfall, audit trail and listed comparables."},{"name":"Companies","description":"Company search, holdings, financials, ownership chain, competitors and financial alerts."},{"name":"Cap table & instruments","description":"Holders, securities by category and instrument register."},{"name":"Operations & distributions","description":"Company operations history, realised and conditional distributions."},{"name":"Deal flow","description":"Pipeline, deal sheets, intake submissions, activity log and Jolv Network transactions."},{"name":"Contacts & calendar","description":"Company contacts, meetings and milestones."},{"name":"Documents, news & ESG","description":"Document metadata, monitored news and ESG answers."},{"name":"Guidelines","description":"Full-text search in IPEV and France Invest valuation guidelines."}],"paths":{"/v1/find_company":{"get":{"operationId":"find_company","summary":"Find a company","description":"Finds a company by name (or a fragment of it), ignoring case and accents, and returns its UUID, status, sector and holding funds. Use it to resolve a name before calling UUID-based endpoints. Read-only.","tags":["Companies"],"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"Company name (or a fragment). Case- and accent-insensitive."},"description":"Company name (or a fragment). Case- and accent-insensitive."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"matches":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"sector":{"type":"string","nullable":true},"asset_type":{"type":"string","nullable":true},"funds":{"type":"array","items":{"type":"string"}}},"required":["id","name","status","sector","asset_type","funds"],"additionalProperties":false}}},"required":["matches"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_activity_log":{"get":{"operationId":"get_activity_log","summary":"Activity log","description":"Returns the organisation's activity log: interactions recorded on companies (meetings, notes, e-mails, events), most recent first. Read-only.","tags":["Deal flow"],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","description":"Filter by activity type (optional; e.g. reunion, note, email)."},"description":"Filter by activity type (optional; e.g. reunion, note, email)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of entries (default 30)."},"description":"Maximum number of entries (default 30)."},{"name":"updated_since","in":"query","required":false,"schema":{"type":"string","description":"Only return items created or modified since this date (YYYY-MM-DD or ISO 8601 timestamp, optional)."},"description":"Only return items created or modified since this date (YYYY-MM-DD or ISO 8601 timestamp, optional)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"entries":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"company":{"type":"string","nullable":true}},"required":["date","type","title","company"],"additionalProperties":false}}},"required":["entries"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_allocation":{"get":{"operationId":"get_allocation","summary":"Portfolio allocation","description":"Returns the breakdown of published NAV by dimension: sector, country, asset type or fund (weights in %). Read-only.","tags":["Funds"],"parameters":[{"name":"by","in":"query","required":false,"schema":{"type":"string","enum":["sector","country","asset_type","fund"],"description":"Breakdown dimension (default: sector)."},"description":"Breakdown dimension (default: sector)."},{"name":"fund_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Restrict to one fund (optional)."},"description":"Restrict to one fund (optional)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"dimension":{"type":"string"},"total_nav_eur":{"type":"number"},"buckets":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"nav_eur":{"type":"number"},"weight_pct":{"type":"number"},"companies":{"type":"number"}},"required":["key","nav_eur","weight_pct","companies"],"additionalProperties":false}}},"required":["dimension","total_nav_eur","buckets"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_audit_thread":{"get":{"operationId":"get_audit_thread","summary":"Audit thread","description":"Returns the chronological audit thread of a valuation (creation, inputs, method, submission, finalisation). Read-only, immutable audit trail.","tags":["Valuations"],"parameters":[{"name":"entity_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Valuation UUID (campaign_valuation)."},"description":"Valuation UUID (campaign_valuation)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"entity_id":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"at":{"type":"string"},"event_type":{"type":"string"},"actor":{"type":"string","nullable":true},"detail":{"type":"string","nullable":true}},"required":["at","event_type","actor","detail"],"additionalProperties":false}}},"required":["entity_id","events"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_calendar":{"get":{"operationId":"get_calendar","summary":"Calendar and events","description":"Returns the calendar of a company or of the organisation: meetings and activities (deal_activities) and milestones (company_events), sorted by date. Read-only.","tags":["Contacts & calendar"],"parameters":[{"name":"company_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Company UUID (optional; otherwise the whole organisation)."},"description":"Company UUID (optional; otherwise the whole organisation)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of entries (default 30)."},"description":"Maximum number of entries (default 30)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"entries":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","nullable":true},"kind":{"type":"string","description":"activity | event"},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"location":{"type":"string","nullable":true}},"required":["date","kind","type","title","location"],"additionalProperties":false}}},"required":["entries"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_cap_table":{"get":{"operationId":"get_cap_table","summary":"Cap table","description":"Returns a company's cap table: holders (funds and co-investors) with securities by category (shares, preferred shares, bonds, convertible bonds, ORA, warrants, shareholder loans), ownership and fully diluted %, plus the instrument register. Read-only.","tags":["Cap table & instruments"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company UUID."},"description":"Company UUID."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"holders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string","enum":["fund","co_investor"]},"percent_detenu":{"type":"number","nullable":true},"percent_detenu_fd":{"type":"number","nullable":true},"categories":{"type":"object","additionalProperties":{"type":"number"},"description":"Securities by category (empty categories omitted)."},"total_titres":{"type":"number"}},"required":["name","type","percent_detenu","percent_detenu_fd","categories","total_titres"],"additionalProperties":false}},"instruments":{"type":"array","items":{"type":"object","properties":{"holder":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"shares":{"type":"number","nullable":true},"notional_eur":{"type":"number","nullable":true}},"required":["holder","kind","shares","notional_eur"],"additionalProperties":false}}},"required":["holders","instruments"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_company_chain":{"get":{"operationId":"get_company_chain","summary":"Ownership chain (look-through)","description":"Returns a company's ownership chain (HoldCo/OpCo tiers) with the tier-to-parent ownership %, and the cash and debt of each entity. Read-only.","tags":["Companies"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of a company in the chain (root or tier)."},"description":"UUID of a company in the chain (root or tier)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"company_id":{"type":"string"},"name":{"type":"string","nullable":true},"depth":{"type":"number","nullable":true},"chain_role":{"type":"string","nullable":true},"parent_id":{"type":"string","nullable":true},"ownership_pct_from_parent":{"type":"number","nullable":true},"entity_cash_eur":{"type":"number","nullable":true},"entity_gross_debt_eur":{"type":"number","nullable":true}},"required":["company_id","name","depth","chain_role","parent_id","ownership_pct_from_parent","entity_cash_eur","entity_gross_debt_eur"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_company_financials":{"get":{"operationId":"get_company_financials","summary":"Company financials","description":"Returns a company's financial history in IPEV order (revenue → EBITDA → EBIT → net income), with net financial debt and headcount, by year (€m). Read-only.","tags":["Companies"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company UUID."},"description":"Company UUID."},{"name":"campaign_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Campaign UUID (optional; reads campaign_company_financials)."},"description":"Campaign UUID (optional; reads campaign_company_financials)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"currency":{"type":"string","nullable":true},"years":{"type":"array","items":{"type":"object","properties":{"year":{"type":"number","nullable":true},"ca":{"type":"number","nullable":true,"description":"Revenue (€m)"},"ebitda":{"type":"number","nullable":true,"description":"EBITDA (€m)"},"ebit":{"type":"number","nullable":true,"description":"EBIT (€m)"},"resultat_net":{"type":"number","nullable":true},"dfn":{"type":"number","nullable":true,"description":"Net financial debt (€m)"},"effectifs":{"type":"number","nullable":true}},"required":["year","ca","ebitda","ebit","resultat_net","dfn","effectifs"],"additionalProperties":false}}},"required":["currency","years"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_comparables":{"get":{"operationId":"get_comparables","summary":"Listed comparables","description":"Returns a company's panel of listed comparables (most recent research): EV/EBITDA, EV/revenue and P/E medians and the list of listed peers. Read-only.","tags":["Valuations"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company UUID."},"description":"Company UUID."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"medians":{"type":"object","properties":{"ev_ebitda":{"type":"number","nullable":true},"ev_revenue":{"type":"number","nullable":true},"pe":{"type":"number","nullable":true}},"required":["ev_ebitda","ev_revenue","pe"],"additionalProperties":false,"nullable":true},"peers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"ev_ebitda":{"type":"number","nullable":true},"ev_revenue":{"type":"number","nullable":true},"pe":{"type":"number","nullable":true}},"required":["name","ev_ebitda","ev_revenue","pe"],"additionalProperties":false}},"n_peers":{"type":"number"},"sources":{"type":"number"}},"required":["medians","peers","n_peers","sources"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_competitors":{"get":{"operationId":"get_competitors","summary":"Competitors","description":"Returns the competitors identified for a portfolio company (name, website, relevance score, LinkedIn). Read-only.","tags":["Companies"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Portfolio company UUID."},"description":"Portfolio company UUID."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"competitors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"relevance_score":{"type":"number","nullable":true},"linkedin":{"type":"string","nullable":true}},"required":["name","website","relevance_score","linkedin"],"additionalProperties":false}}},"required":["competitors"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_contacts":{"get":{"operationId":"get_contacts","summary":"Company contacts","description":"Returns the contacts and executives attached to a company (name, role, e-mail, phone, LinkedIn). Read-only.","tags":["Contacts & calendar"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company UUID."},"description":"Company UUID."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string","nullable":true,"description":"Category (executive, board member…)"},"title":{"type":"string","nullable":true,"description":"Role"},"email":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"linkedin":{"type":"string","nullable":true},"company":{"type":"string","nullable":true}},"required":["name","role","title","email","phone","linkedin","company"],"additionalProperties":false}}},"required":["contacts"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_deal":{"get":{"operationId":"get_deal","summary":"Deal sheet","description":"Returns a pipeline opportunity's deal sheet: stage, requested ticket and valuation, brief (summary, strengths, points of attention, next steps) and next actions. Read-only.","tags":["Deal flow"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company / opportunity UUID."},"description":"Company / opportunity UUID."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"company_id":{"type":"string"},"name":{"type":"string","nullable":true},"stage":{"type":"string","nullable":true},"sector":{"type":"string","nullable":true},"ticket_demande_eur":{"type":"number","nullable":true},"valo_demandee_eur":{"type":"number","nullable":true},"brief":{"type":"object","properties":{"resume":{"type":"string","nullable":true},"points_forts":{"type":"string","nullable":true},"points_vigilance":{"type":"string","nullable":true},"prochaines_etapes":{"type":"string","nullable":true}},"required":["resume","points_forts","points_vigilance","prochaines_etapes"],"additionalProperties":false,"nullable":true},"next_steps":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"due_date":{"type":"string","nullable":true}},"required":["label","due_date"],"additionalProperties":false}}},"required":["company_id","name","stage","sector","ticket_demande_eur","valo_demandee_eur","brief","next_steps"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_distributions":{"get":{"operationId":"get_distributions","summary":"Distributions and exits","description":"Returns realised distributions (dividends, disposals, exits) and pending conditional distributions (earn-out, escrow) for a company or a fund, with the total distributed. Read-only.","tags":["Operations & distributions"],"parameters":[{"name":"company_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Company UUID (optional)."},"description":"Company UUID (optional)."},{"name":"fund_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Fund UUID (optional)."},"description":"Fund UUID (optional)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"total_distributed_eur":{"type":"number"},"realized":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","nullable":true},"type":{"type":"string"},"amount_eur":{"type":"number","nullable":true}},"required":["date","type","amount_eur"],"additionalProperties":false}},"conditional":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"status":{"type":"string","nullable":true},"estimated_eur":{"type":"number","nullable":true},"actual_eur":{"type":"number","nullable":true},"condition":{"type":"string","nullable":true},"due_date":{"type":"string","nullable":true}},"required":["type","status","estimated_eur","actual_eur","condition","due_date"],"additionalProperties":false}}},"required":["total_distributed_eur","realized","conditional"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_esg":{"get":{"operationId":"get_esg","summary":"ESG answers","description":"Returns the ESG answers recorded for a company, enriched with the framework (indicator, question, section). Read-only.","tags":["Documents, news & ESG"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company UUID."},"description":"Company UUID."},{"name":"campaign_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Campaign UUID (optional; otherwise all accessible campaigns)."},"description":"Campaign UUID (optional; otherwise all accessible campaigns)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"answers":{"type":"array","items":{"type":"object","properties":{"section":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"indicator":{"type":"string","nullable":true},"question":{"type":"string","nullable":true},"value":{"type":"string","nullable":true}},"required":["section","category","indicator","question","value"],"additionalProperties":false}}},"required":["answers"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_financial_alerts":{"get":{"operationId":"get_financial_alerts","summary":"Financial alerts","description":"Returns the financial (risk) alerts of a company or of the organisation: severity, risk score, message, status. Read-only.","tags":["Companies"],"parameters":[{"name":"company_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Company UUID (optional; otherwise the whole organisation)."},"description":"Company UUID (optional; otherwise the whole organisation)."},{"name":"include_dismissed","in":"query","required":false,"schema":{"type":"boolean","description":"Include dismissed alerts (default false)."},"description":"Include dismissed alerts (default false)."},{"name":"updated_since","in":"query","required":false,"schema":{"type":"string","description":"Only return items created or modified since this date (YYYY-MM-DD or ISO 8601 timestamp, optional)."},"description":"Only return items created or modified since this date (YYYY-MM-DD or ISO 8601 timestamp, optional)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"alerts":{"type":"array","items":{"type":"object","properties":{"severity":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"risk_score":{"type":"number","nullable":true},"dismissed":{"type":"boolean"},"created_at":{"type":"string","nullable":true}},"required":["severity","title","message","risk_score","dismissed","created_at"],"additionalProperties":false}}},"required":["alerts"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_fund_profile":{"get":{"operationId":"get_fund_profile","summary":"Fund profile","description":"Returns the profile of a fund (or of all funds): strategy, vintage, sizes (target / committed / called / distributed), fees, legal structure, metrics (NAV / TVPI / DPI / RVPI / IRR), management team and investment criteria. Read-only.","tags":["Funds"],"parameters":[{"name":"fund_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Fund UUID (optional; default = all)."},"description":"Fund UUID (optional; default = all)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"funds":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"abbreviation":{"type":"string","nullable":true},"vintage_year":{"type":"number","nullable":true},"fund_type":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"currency":{"type":"string","nullable":true},"target_size":{"type":"number","nullable":true},"committed_capital":{"type":"number","nullable":true},"called_capital":{"type":"number","nullable":true},"distributed_capital":{"type":"number","nullable":true},"management_fee_rate":{"type":"number","nullable":true},"carried_interest_rate":{"type":"number","nullable":true},"hurdle_rate":{"type":"number","nullable":true},"domicile":{"type":"string","nullable":true},"legal_structure":{"type":"string","nullable":true},"nav_k_eur":{"type":"number","nullable":true},"tvpi":{"type":"number","nullable":true},"dpi":{"type":"number","nullable":true},"rvpi":{"type":"number","nullable":true},"net_irr_pct":{"type":"number","nullable":true},"team":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string","nullable":true}},"required":["name","role"],"additionalProperties":false}},"criteria":{"type":"object","properties":{"target_sectors":{"type":"array","items":{"type":"string"},"nullable":true},"excluded_sectors":{"type":"array","items":{"type":"string"},"nullable":true},"target_regions":{"type":"array","items":{"type":"string"},"nullable":true},"ticket_min_eur":{"type":"number","nullable":true},"ticket_max_eur":{"type":"number","nullable":true},"stage_preference":{"type":"array","items":{"type":"string"},"nullable":true}},"required":["target_sectors","excluded_sectors","target_regions","ticket_min_eur","ticket_max_eur","stage_preference"],"additionalProperties":false,"nullable":true}},"required":["id","name","abbreviation","vintage_year","fund_type","status","currency","target_size","committed_capital","called_capital","distributed_capital","management_fee_rate","carried_interest_rate","hurdle_rate","domicile","legal_structure","nav_k_eur","tvpi","dpi","rvpi","net_irr_pct","team","criteria"],"additionalProperties":false}}},"required":["funds"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_fund_synthesis":{"get":{"operationId":"get_fund_synthesis","summary":"Fund synthesis","description":"Returns the published NAV of one or all accessible funds, with its as-of date: NAV, distributed, cost, MoIC/TVPI, DPI, RVPI, net IRR. A fund without a published finalised campaign is reported as “not published”. Read-only.","tags":["Funds"],"parameters":[{"name":"fund_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Fund UUID. Omitted → all accessible funds."},"description":"Fund UUID. Omitted → all accessible funds."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"funds":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"vintage_year":{"type":"number","nullable":true},"published":{"type":"boolean","description":"NAV set by a finalised campaign"},"nav_as_of_date":{"type":"string","nullable":true,"description":"NAV as-of date (date of the source campaign)"},"source_campaign_id":{"type":"string","nullable":true},"nav_k_eur":{"type":"number","nullable":true,"description":"Published NAV (€k)"},"distributed_k_eur":{"type":"number","nullable":true,"description":"Cumulative distributed at the as-of date (€k)"},"cost_k_eur":{"type":"number","nullable":true,"description":"Fund invested cost (€k), exited holdings included"},"moic":{"type":"number","nullable":true,"description":"Fund MoIC = TVPI = (NAV + distributed) / cost"},"tvpi":{"type":"number","nullable":true},"dpi":{"type":"number","nullable":true},"rvpi":{"type":"number","nullable":true},"net_irr_pct":{"type":"number","nullable":true,"description":"Net IRR (%)"}},"required":["id","name","vintage_year","published","nav_as_of_date","source_campaign_id","nav_k_eur","distributed_k_eur","cost_k_eur","moic","tvpi","dpi","rvpi","net_irr_pct"],"additionalProperties":false}}},"required":["funds"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_instrument_detail":{"get":{"operationId":"get_instrument_detail","summary":"Instrument detail","description":"Returns the detail of a company's instruments: register (type, holder, value), fair value by instrument type (latest finalised valuation, when computed) and amendments. Read-only.","tags":["Cap table & instruments"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company UUID."},"description":"Company UUID."},{"name":"campaign_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Campaign UUID (optional; default = latest finalised)."},"description":"Campaign UUID (optional; default = latest finalised)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"instruments":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","nullable":true},"holder":{"type":"string","nullable":true},"value_eur":{"type":"number","nullable":true,"description":"Notional, otherwise units × unit price."},"seniority_rank":{"type":"number","nullable":true}},"required":["kind","holder","value_eur","seniority_rank"],"additionalProperties":false}},"fair_values":{"type":"array","items":{"type":"object","properties":{"instrument_type":{"type":"string","nullable":true},"gross_fv_eur":{"type":"number","nullable":true},"provision_pct":{"type":"number","nullable":true},"net_fv_eur":{"type":"number","nullable":true},"liquidation_preference":{"type":"string","nullable":true}},"required":["instrument_type","gross_fv_eur","provision_pct","net_fv_eur","liquidation_preference"],"additionalProperties":false}},"amendments":{"type":"array","items":{"type":"object","properties":{"amendment_type":{"type":"string","nullable":true},"old_value":{"type":"string","nullable":true},"new_value":{"type":"string","nullable":true},"effective_date":{"type":"string","nullable":true},"comment":{"type":"string","nullable":true}},"required":["amendment_type","old_value","new_value","effective_date","comment"],"additionalProperties":false}}},"required":["instruments","fair_values","amendments"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_intake":{"get":{"operationId":"get_intake","summary":"Intake / inbox","description":"Returns inbound submissions (intake forms / inbox) with their AI pre-analysis (score, deal-breaker, processing status). Read-only.","tags":["Deal flow"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","description":"Filter by status (optional; e.g. new, reviewed)."},"description":"Filter by status (optional; e.g. new, reviewed)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum number of items (default 25)."},"description":"Maximum number of items (default 25)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"submissions":{"type":"array","items":{"type":"object","properties":{"company_name":{"type":"string","nullable":true},"sector":{"type":"string","nullable":true},"geography":{"type":"string","nullable":true},"ticket_demande_eur":{"type":"number","nullable":true},"status":{"type":"string","nullable":true},"processing_status":{"type":"string","nullable":true},"ai_score":{"type":"number","nullable":true},"deal_breaker_hit":{"type":"boolean","nullable":true},"submitted_at":{"type":"string","nullable":true}},"required":["company_name","sector","geography","ticket_demande_eur","status","processing_status","ai_score","deal_breaker_hit","submitted_at"],"additionalProperties":false}}},"required":["submissions"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_lp_positions":{"get":{"operationId":"get_lp_positions","summary":"Positions by instrument (LP)","description":"Returns positions by instrument (snapshot): cost, fair value, provision, IFRS level. Read-only.","tags":["Funds"],"parameters":[{"name":"company_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Company UUID (optional)."},"description":"Company UUID (optional)."},{"name":"fund_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Fund UUID (optional)."},"description":"Fund UUID (optional)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"positions":{"type":"array","items":{"type":"object","properties":{"company_id":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"currency":{"type":"string","nullable":true},"quantity":{"type":"number","nullable":true},"cost_basis_eur":{"type":"number","nullable":true},"fair_value_eur":{"type":"number","nullable":true},"fair_value_source":{"type":"string","enum":["published"],"nullable":true},"fair_value_as_of":{"type":"string","nullable":true},"provision_pct":{"type":"number","nullable":true},"ifrs_level":{"type":"string","nullable":true}},"required":["company_id","label","kind","currency","quantity","cost_basis_eur","fair_value_eur","fair_value_source","fair_value_as_of","provision_pct","ifrs_level"],"additionalProperties":false}}},"required":["positions"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_operations":{"get":{"operationId":"get_operations","summary":"Operations (company history)","description":"Returns the chronological history of a company's operations (acquisition, follow-on, disposal, exit, dividend) with amounts and instruments. `updated_since` keeps only operations created or modified since that date. Read-only.","tags":["Operations & distributions"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company UUID."},"description":"Company UUID."},{"name":"updated_since","in":"query","required":false,"schema":{"type":"string","description":"Only return items created or modified since this date (YYYY-MM-DD or ISO 8601 timestamp, optional)."},"description":"Only return items created or modified since this date (YYYY-MM-DD or ISO 8601 timestamp, optional)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"operations":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","nullable":true},"type":{"type":"string"},"status":{"type":"string"},"amount_eur":{"type":"number","nullable":true},"holder":{"type":"string","nullable":true,"description":"fund | co-investor"},"instruments":{"type":"array","items":{"type":"object","properties":{"instrument":{"type":"string"},"quantity":{"type":"number"}},"required":["instrument","quantity"],"additionalProperties":false}},"comment":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true}},"required":["date","type","status","amount_eur","holder","instruments","comment","updated_at"],"additionalProperties":false}}},"required":["operations"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_portfolio_overview":{"get":{"operationId":"get_portfolio_overview","summary":"Portfolio overview","description":"Returns published NAV aggregates (total and by fund): NAV, invested cost, distributed, TVPI, DPI, active / exited holdings and as-of date. Funds without a published NAV are flagged. Read-only.","tags":["Funds"],"parameters":[{"name":"fund_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Fund UUID (optional; default = all)."},"description":"Fund UUID (optional; default = all)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"object","properties":{"scope":{"type":"string"},"as_of_date":{"type":"string","nullable":true},"participations":{"type":"number"},"active":{"type":"number"},"exited":{"type":"number"},"cost_eur":{"type":"number"},"nav_eur":{"type":"number"},"distributed_eur":{"type":"number"},"tvpi":{"type":"number","nullable":true},"dpi":{"type":"number","nullable":true}},"required":["scope","as_of_date","participations","active","exited","cost_eur","nav_eur","distributed_eur","tvpi","dpi"],"additionalProperties":false},"by_fund":{"type":"array","items":{"type":"object","properties":{"scope":{"type":"string"},"as_of_date":{"type":"string","nullable":true},"participations":{"type":"number"},"active":{"type":"number"},"exited":{"type":"number"},"cost_eur":{"type":"number"},"nav_eur":{"type":"number"},"distributed_eur":{"type":"number"},"tvpi":{"type":"number","nullable":true},"dpi":{"type":"number","nullable":true}},"required":["scope","as_of_date","participations","active","exited","cost_eur","nav_eur","distributed_eur","tvpi","dpi"],"additionalProperties":false}},"unpublished_funds":{"type":"array","items":{"type":"string"}}},"required":["total","by_fund","unpublished_funds"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_team_access":{"get":{"operationId":"get_team_access","summary":"Governance and access (fund)","description":"Returns a fund's access governance: breakdown of effective roles (responsible / validator / viewer…) and attached auditors (firms). Read-only, no personal data.","tags":["Funds"],"parameters":[{"name":"fund_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Fund UUID (optional; default = all accessible funds)."},"description":"Fund UUID (optional; default = all accessible funds)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"funds":{"type":"array","items":{"type":"object","properties":{"fund_id":{"type":"string"},"access_by_role":{"type":"object","additionalProperties":{"type":"number"}},"auditors":{"type":"array","items":{"type":"object","properties":{"firm":{"type":"string","nullable":true},"access_level":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}},"required":["firm","access_level","email"],"additionalProperties":false}}},"required":["fund_id","access_by_role","auditors"],"additionalProperties":false}}},"required":["funds"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_valuation_evolution":{"get":{"operationId":"get_valuation_evolution","summary":"Valuation evolution","description":"Returns the evolution of a company's published fair value across its finalised campaigns, by fund (change from one campaign to the next, 100% equity, method, exit, distributed), and the recorded movements. Read-only.","tags":["Valuations"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company UUID."},"description":"Company UUID."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"points":{"type":"array","items":{"type":"object","properties":{"campaign_id":{"type":"string"},"campaign":{"type":"string","nullable":true},"valuation_date":{"type":"string"},"fund_id":{"type":"string"},"method":{"type":"string","nullable":true},"equity_100pct_eur":{"type":"number","nullable":true},"fund_fmv_eur":{"type":"number","nullable":true},"delta_fund_fmv_eur":{"type":"number","nullable":true},"is_exited":{"type":"boolean"},"distributed_eur":{"type":"number"}},"required":["campaign_id","campaign","valuation_date","fund_id","method","equity_100pct_eur","fund_fmv_eur","delta_fund_fmv_eur","is_exited","distributed_eur"],"additionalProperties":false}},"movements":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"amount":{"type":"number","nullable":true},"comment":{"type":"string","nullable":true}},"required":["type","amount","comment"],"additionalProperties":false}}},"required":["points","movements"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_valuation_fiche":{"get":{"operationId":"get_valuation_fiche","summary":"Valuation sheet","description":"Returns a company's persisted valuation sheet: 100% equity, fund share of fair value, IPEV method, provision, comment. Read-only.","tags":["Valuations"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company UUID."},"description":"Company UUID."},{"name":"campaign_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Campaign UUID (optional; default = latest finalised)."},"description":"Campaign UUID (optional; default = latest finalised)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"company":{"type":"string","nullable":true},"campaign":{"type":"string","nullable":true},"valuation_date":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"method":{"type":"string","nullable":true,"description":"IPEV method (multiples, dernier_tour, cout, quoted_price, …)"},"method_detail":{"type":"string","nullable":true,"description":"Method detail / bridge (e.g. EBITDA × multiple, comparables)."},"equity_value_100pct_eur":{"type":"number","nullable":true,"description":"100% equity value (€)"},"fund_fmv_eur":{"type":"number","nullable":true,"description":"Published fair value of the holding, all funds (€); null when not published"},"fv_published":{"type":"boolean","description":"Fair value comes from a published NAV (finalised campaign)"},"by_fund":{"type":"array","items":{"type":"object","properties":{"fund_id":{"type":"string"},"fv_eur":{"type":"number","nullable":true},"cost_eur":{"type":"number","nullable":true},"distributed_eur":{"type":"number"},"moic":{"type":"number","nullable":true},"is_exited":{"type":"boolean"}},"required":["fund_id","fv_eur","cost_eur","distributed_eur","moic","is_exited"],"additionalProperties":false},"description":"Published detail by holding fund"},"provision_pct":{"type":"number","nullable":true},"comparables":{"type":"object","properties":{"median_ev_ebitda":{"type":"number","nullable":true},"median_ev_revenue":{"type":"number","nullable":true},"median_pe":{"type":"number","nullable":true},"n_peers":{"type":"number","nullable":true}},"required":["median_ev_ebitda","median_ev_revenue","median_pe","n_peers"],"additionalProperties":false,"nullable":true,"description":"Listed comparables medians (multiples method only)."},"commentary":{"type":"string","nullable":true}},"required":["company","campaign","valuation_date","status","method","method_detail","equity_value_100pct_eur","fund_fmv_eur","fv_published","by_fund","provision_pct","comparables","commentary"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_valuation_method":{"get":{"operationId":"get_valuation_method","summary":"Valuation method (detail)","description":"Returns how a company's valuation was built: weighted methods, resulting equity per method, and key inputs (multiple, DLOM, net financial debt, post-money). Read-only.","tags":["Valuations"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company UUID."},"description":"Company UUID."},{"name":"campaign_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Campaign UUID (optional; default = latest finalised)."},"description":"Campaign UUID (optional; default = latest finalised)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"campaign":{"type":"string","nullable":true},"methods":{"type":"array","items":{"type":"object","properties":{"method_type":{"type":"string"},"is_primary":{"type":"boolean"},"weight_pct":{"type":"number","nullable":true},"result_equity_value_eur":{"type":"number","nullable":true},"notes":{"type":"string","nullable":true},"key_inputs":{"type":"object","additionalProperties":{},"description":"Key inputs extracted from the configuration (multiple, DLOM, net debt, post-money…)."}},"required":["method_type","is_primary","weight_pct","result_equity_value_eur","notes","key_inputs"],"additionalProperties":false}}},"required":["campaign","methods"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_veille":{"get":{"operationId":"get_veille","summary":"News monitoring","description":"Returns a company's monitored news (title, opportunity/threat classification, impact score, source) and its synthesis, or the organisation's recent news. Read-only.","tags":["Documents, news & ESG"],"parameters":[{"name":"company_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Company UUID (optional; otherwise the organisation's recent news)."},"description":"Company UUID (optional; otherwise the organisation's recent news)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum number of news items (default 20)."},"description":"Maximum number of news items (default 20)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"news":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"classification":{"type":"string","nullable":true},"impact_score":{"type":"number","nullable":true},"source":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"required":["date","title","classification","impact_score","source","url"],"additionalProperties":false}},"synthesis":{"type":"string","nullable":true}},"required":["news","synthesis"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/get_waterfall":{"get":{"operationId":"get_waterfall","summary":"Distribution waterfall","description":"Returns a company's persisted waterfall: distributable amount, allocation by layer (debt / preference / ratchet / residual) and by holder. Read-only, output of the V4 engine (no recomputation).","tags":["Valuations"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company UUID."},"description":"Company UUID."},{"name":"campaign_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Campaign UUID (optional)."},"description":"Campaign UUID (optional)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"company_id":{"type":"string"},"exit_value_eur":{"type":"number","nullable":true,"description":"Distributable equity at exit (€)"},"total_distributed_eur":{"type":"number","nullable":true},"undistributed_eur":{"type":"number","nullable":true},"reconciled":{"type":"boolean","description":"Σ distributions == distributable (gap ≈ 0)"},"by_layer":{"type":"array","items":{"type":"object","properties":{"layer":{"type":"string"},"amount_eur":{"type":"number"}},"required":["layer","amount_eur"],"additionalProperties":false}},"by_holder":{"type":"array","items":{"type":"object","properties":{"holder":{"type":"string"},"amount_eur":{"type":"number"}},"required":["holder","amount_eur"],"additionalProperties":false}},"engine_version":{"type":"string","nullable":true}},"required":["company_id","exit_value_eur","total_distributed_eur","undistributed_eur","reconciled","by_layer","by_holder","engine_version"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/list_campaigns":{"get":{"operationId":"list_campaigns","summary":"Valuation campaigns","description":"Lists valuation campaigns (by fund or all): name, fund, valuation date, status (draft / changes_requested / finalized) and finalisation date. `updated_since` keeps only campaigns created or finalised since that date. Read-only.","tags":["Campaigns"],"parameters":[{"name":"fund_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Fund UUID (optional)."},"description":"Fund UUID (optional)."},{"name":"updated_since","in":"query","required":false,"schema":{"type":"string","description":"Only return items created or modified since this date (YYYY-MM-DD or ISO 8601 timestamp, optional)."},"description":"Only return items created or modified since this date (YYYY-MM-DD or ISO 8601 timestamp, optional)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"campaigns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"fund":{"type":"string","nullable":true},"valuation_date":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"completed_at":{"type":"string","nullable":true}},"required":["id","name","fund","valuation_date","status","completed_at"],"additionalProperties":false}}},"required":["campaigns"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/list_documents":{"get":{"operationId":"list_documents","summary":"Documents (metadata)","description":"Lists the documents attached to a company (name, category, date). Metadata only, no content and no download link. `updated_since` keeps only documents uploaded since that date. Read-only.","tags":["Documents, news & ESG"],"parameters":[{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Company UUID."},"description":"Company UUID."},{"name":"updated_since","in":"query","required":false,"schema":{"type":"string","description":"Only return items created or modified since this date (YYYY-MM-DD or ISO 8601 timestamp, optional)."},"description":"Only return items created or modified since this date (YYYY-MM-DD or ISO 8601 timestamp, optional)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"documents":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"document_type":{"type":"string","nullable":true},"related_date":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true}},"required":["name","document_type","related_date","created_at"],"additionalProperties":false}}},"required":["documents"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/list_network_deals":{"get":{"operationId":"list_network_deals","summary":"Jolv Network M&A transactions","description":"Lists M&A transactions from the Jolv Network (approved cross-organisation transaction comparables): target, sectors, country, EV (€m), EV/EBITDA and EV/revenue multiples, deal type, source. Read-only.","tags":["Deal flow"],"parameters":[{"name":"sector","in":"query","required":false,"schema":{"type":"string","description":"Free-text sector filter (optional, case-insensitive)."},"description":"Free-text sector filter (optional, case-insensitive)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum number of items (default 25)."},"description":"Maximum number of items (default 25)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"deals":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","nullable":true},"sectors":{"type":"array","items":{"type":"string"},"nullable":true},"country":{"type":"string","nullable":true},"date":{"type":"string","nullable":true},"ev_meur":{"type":"number","nullable":true},"ev_ebitda":{"type":"number","nullable":true},"ev_revenue":{"type":"number","nullable":true},"deal_types":{"type":"array","items":{"type":"string"},"nullable":true},"source":{"type":"string","nullable":true},"network_contribution":{"type":"boolean"}},"required":["target","sectors","country","date","ev_meur","ev_ebitda","ev_revenue","deal_types","source","network_contribution"],"additionalProperties":false}}},"required":["deals"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/list_pipeline":{"get":{"operationId":"list_pipeline","summary":"Pipeline / deal flow","description":"Lists pipeline opportunities by stage (sourcing → closing) with requested ticket and valuation, next action and status (including rejected). Read-only.","tags":["Deal flow"],"parameters":[{"name":"stage","in":"query","required":false,"schema":{"type":"string","description":"Stage filter (optional): sourcing, analyse, due_diligence, comite, closing."},"description":"Stage filter (optional): sourcing, analyse, due_diligence, comite, closing."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"deals":{"type":"array","items":{"type":"object","properties":{"company_id":{"type":"string"},"name":{"type":"string","nullable":true},"stage":{"type":"string","nullable":true},"sector":{"type":"string","nullable":true},"ticket_demande_eur":{"type":"number","nullable":true},"valo_demandee_eur":{"type":"number","nullable":true},"next_action":{"type":"string","nullable":true},"next_action_date":{"type":"string","nullable":true},"rejected":{"type":"boolean"}},"required":["company_id","name","stage","sector","ticket_demande_eur","valo_demandee_eur","next_action","next_action_date","rejected"],"additionalProperties":false}}},"required":["deals"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/list_portfolio":{"get":{"operationId":"list_portfolio","summary":"Portfolio (holdings)","description":"Lists the holdings in the published NAV of a fund (or of all funds): retained fair value, invested cost, distributed at the as-of date, MoIC, sector, ownership %, exits. Read-only.","tags":["Companies"],"parameters":[{"name":"fund_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Fund UUID (optional; default = all accessible funds)."},"description":"Fund UUID (optional; default = all accessible funds)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"holdings":{"type":"array","items":{"type":"object","properties":{"company_id":{"type":"string"},"name":{"type":"string","nullable":true},"fund":{"type":"string","nullable":true},"as_of_date":{"type":"string","nullable":true},"sector":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"percent_detenu":{"type":"number","nullable":true},"cost_eur":{"type":"number","nullable":true},"nav_eur":{"type":"number","nullable":true,"description":"Fair value retained for the fund (null if exited)"},"distributed_eur":{"type":"number"},"moic":{"type":"number","nullable":true}},"required":["company_id","name","fund","as_of_date","sector","status","percent_detenu","cost_eur","nav_eur","distributed_eur","moic"],"additionalProperties":false}},"unpublished_funds":{"type":"array","items":{"type":"string"}}},"required":["holdings","unpublished_funds"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/search_guidelines":{"get":{"operationId":"search_guidelines","summary":"Search valuation guidelines","description":"Full-text search in valuation guidelines (IPEV, France Invest, AICPA); returns the relevant excerpts with their source. Read-only.","tags":["Guidelines"],"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Terms to search in the guidelines (e.g. “DLOM”, “quoted price”)."},"description":"Terms to search in the guidelines (e.g. “DLOM”, “quoted price”)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"description":"Maximum number of excerpts (default 5)."},"description":"Maximum number of excerpts (default 5)."}],"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"chunks":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string","nullable":true},"section":{"type":"string","nullable":true},"page":{"type":"number","nullable":true},"excerpt":{"type":"string"}},"required":["source","section","page","excerpt"],"additionalProperties":false}}},"required":["chunks"],"additionalProperties":false}}}},"400":{"description":"Invalid, unknown or missing parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired or invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2.1 access token issued by the Jolv authorisation server (Supabase Auth) after consent in Jolv. Discovery: /.well-known/oauth-protected-resource. See the Authentication guide."},"oauth2":{"type":"oauth2","description":"OAuth 2.1 authorisation code flow with PKCE, served by Supabase Auth; consent happens in Jolv.","flows":{"authorizationCode":{"authorizationUrl":"https://pfaotkgjdsrgzrqesuup.supabase.co/auth/v1/oauth/authorize","tokenUrl":"https://pfaotkgjdsrgzrqesuup.supabase.co/auth/v1/oauth/token","scopes":{"openid":"Identity","email":"E-mail address","profile":"Profile"}}}}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["unauthorized","not_found","method_not_allowed","invalid_parameter","unsupported_media_type","rate_limited","read_failed"]},"message":{"type":"string"},"details":{}}}}}}}}