API Reference
Build custom integrations with the PE OS REST API. All endpoints require authentication via Bearer token.
Authentication
PE OS uses Supabase Auth with JWT tokens. Obtain a token by signing in through the Supabase Auth API, then include it as a Bearer token in all requests.
// Include in all API requests
Authorization: Bearer YOUR_SUPABASE_JWT_TOKEN
Endpoints
handshake
Deals
Create, read, update, and delete deals in your pipeline
expand_more
Deals
Create, read, update, and delete deals in your pipeline
/api/deals
List all deals for the authenticated user's organization. Supports filtering and pagination.
/api/deals/:id
Get a single deal with all details including company, documents, activities, and team members.
/api/deals
Create a new deal manually.
{
"name": "Acme Corp Acquisition",
"industry": "Manufacturing",
"stage": "INITIAL_REVIEW",
"dealSize": 50,
"revenue": 25,
"ebitda": 8
}
/api/deals/:id
Update deal fields. Supports optimistic locking via lastKnownUpdatedAt to prevent concurrent edit conflicts (returns 409 if stale).
/api/deals/:id
Delete a deal and all associated data (documents, activities, memos). Admin or deal creator only.
/api/deals/:id/analyze
Trigger multi-document analysis. Requires 2+ documents. Detects conflicts, fills gaps, and synthesizes insights across all documents.
/api/deals/:id/chat
Chat with a deal using AI. Sends a question and receives an AI-generated answer based on all deal documents (RAG).
{ "message": "What is the company's revenue growth trend?" }
upload_file
Deal Ingestion
Import deals from files, text, URLs, or emails
expand_more
Deal Ingestion
Import deals from files, text, URLs, or emails
/api/ingest
Upload a document file (PDF, Word, Excel, CSV, text). Uses multipart form data. Excel/CSV files are auto-routed to bulk import.
Content-Type: multipart/form-data
Body: file (binary)
/api/ingest/text
Create a deal from pasted text content.
{
"text": "Deal content text...",
"sourceType": "email" // email | note | slack | whatsapp | other
}
/api/ingest/url
Research a company from its website URL. Scrapes multiple pages and extracts deal data.
{
"url": "https://acme.com",
"companyName": "Acme Corp", // optional override
"autoCreateDeal": true // false = preview only
}
/api/ingest/email
Upload a .eml email file. Parses email body for deal data and auto-processes PDF attachments.
Content-Type: multipart/form-data
Body: file (.eml)
/api/ingest/bulk
Bulk import deals from an Excel or CSV file. Each row creates a separate deal. Returns imported/failed/total counts.
description
Memos
Create and manage investment memos with AI assistance
expand_more
Memos
Create and manage investment memos with AI assistance
/api/memos?dealId=:dealId
List all memos for a deal.
/api/memos
Create a new investment memo for a deal.
{
"dealId": "uuid",
"title": "Investment Memo - Acme Corp",
"templateId": "standard" // optional: use a memo template
}
/api/memos/:id/generate
AI-generate content for a specific memo section.
{ "section": "executive_summary" }
download
Export & Audit
Export data and view audit trails
expand_more
Export & Audit
Export data and view audit trails
/api/export/deals?format=csv
Export all deals as CSV or JSON. Supported formats: csv, json. CSV includes headers: Name, Industry, Revenue, EBITDA, Stage, Status, Confidence, Created.
/api/audit
View audit log entries. Filter by action, resourceType, resourceId, severity, date range. Paginated with limit/offset.
group
Users & Invitations
Manage team members and workspace invitations
expand_more
Users & Invitations
Manage team members and workspace invitations
/api/users/me
Get the authenticated user's profile, role, organization, and preferences.
/api/users/team
List all team members in the user's organization.
/api/invitations
Invite a new team member. Admin only.
{
"email": "analyst@firm.com",
"role": "MEMBER" // ADMIN | MEMBER | VIEWER
}
Rate Limits
| Tier | Limit | Window | Applies To |
|---|---|---|---|
| General | 200 requests | 15 minutes | All GET endpoints |
| Write | 30 requests | 1 minute | POST, PATCH, DELETE endpoints |
| AI | 10 requests | 1 minute | Chat, ingestion, memo generation |
Need help with integrations?
Contact our team for guidance on building custom integrations with PE OS.
mail Contact Support