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/documentsList documents with filters.
POST
/v1/documentsCreate 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/notesList research notes.
POST
/v1/notesCreate a research note.
POST
/v1/notes/{id}/ai-draftGenerate an AI-assisted draft.
Portfolios
GET
/v1/portfoliosList portfolios with metrics.
GET
/v1/portfolios/{id}/holdingsGet current holdings.
POST
/v1/portfolios/{id}/rebalanceSubmit a rebalance proposal.
Earnings
GET
/v1/earningsCalendar with estimates and actuals.
POST
/v1/earnings/{id}/reportMark earnings as reported.
Screening
POST
/v1/screen/runRun a factor screen.
GET
/v1/screen/factorsList supported factors.
Governance
GET
/v1/auditStream the audit log.
GET
/v1/access-reviewsList pending access reviews.
POST
/v1/access-reviews/{id}/approveApprove 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
| Code | Meaning |
|---|---|
| 200 | OK |
| 201 | Created |
| 400 | Validation error |
| 401 | Missing or invalid token |
| 403 | Role lacks capability |
| 404 | Resource not found |
| 429 | Rate limit exceeded (600 req/min) |
| 500 | Server error |