API v1 ยท Stable

Aperture API Reference

REST + JSON. Bearer-token authentication. All endpoints are scoped by workspace and respect role-based access.

Authentication
curl https://api.aperture.io/v1/portfolios \
  -H "Authorization: Bearer $APERTURE_TOKEN" \
  -H "X-Workspace-Id: ws_lh3z9"
Documents
GET
/v1/documents
List documents with filters.
POST
/v1/documents
Create a document.
GET
/v1/documents/{id}
Retrieve a document.
PATCH
/v1/documents/{id}
Update fields or status.
DELETE
/v1/documents/{id}
Remove a document.
Notes
GET
/v1/notes
List research notes.
POST
/v1/notes
Create a research note.
POST
/v1/notes/{id}/ai-draft
Generate an AI-assisted draft.
Portfolios
GET
/v1/portfolios
List portfolios with metrics.
GET
/v1/portfolios/{id}/holdings
Get current holdings.
POST
/v1/portfolios/{id}/rebalance
Submit a rebalance proposal.
Earnings
GET
/v1/earnings
Calendar with estimates and actuals.
POST
/v1/earnings/{id}/report
Mark earnings as reported.
Screening
POST
/v1/screen/run
Run a factor screen.
GET
/v1/screen/factors
List supported factors.
Governance
GET
/v1/audit
Stream the audit log.
GET
/v1/access-reviews
List pending access reviews.
POST
/v1/access-reviews/{id}/approve
Approve an access scope.
Example response
{
  "id": "p_8x9k2",
  "name": "Global Equity Alpha",
  "strategy": "Long-only equity",
  "aum": 1240000000,
  "ytd": 14.2,
  "benchmark": "MSCI ACWI",
  "holdings": [
    { "ticker": "AAPL", "weight": 4.8, "pnl": 12.3 }
  ]
}
Rate limits & errors
CodeMeaning
200OK
201Created
400Validation error
401Missing or invalid token
403Role lacks capability
404Resource not found
429Rate limit exceeded (600 req/min)
500Server error