Skip to main content
Portfolios group H3 cell locations into named collections for ongoing monitoring and scoring. Each portfolio can hold up to 2,000 locations, apply a custom scoring formula, and track weighted composite scores with 30-day movement trends. Portfolios support three visibility levels — private (owner only), team, and org — so you can share scoring results across your workspace.

GET /api/v1/locus/portfolios

Requires session authentication.
List all portfolios you have access to, including aggregate scoring metrics. Response
Example

POST /api/v1/locus/portfolios

Requires session authentication.
Create a new portfolio. If you provide an asset_class, Locus automatically assigns the matching system scoring formula. Parameters Example
Response

Portfolio locations

Manage the H3 cell locations within a portfolio. Each location is identified by an h3_index and profile pair.

GET /api/v1/locus/portfolios/{portfolioId}/locations

Requires session authentication.
List all locations in a portfolio with their current scores. If the portfolio has an active formula, scores are computed using the formula weights rather than the default composite. Response

POST /api/v1/locus/portfolios/{portfolioId}/locations

Requires session authentication.
Add a location to the portfolio. If a location with the same h3_index and profile already exists, it is updated (upsert). Parameters Example

PATCH /api/v1/locus/portfolios/{portfolioId}/locations

Requires session authentication.
Update a location’s weight or asset class. Parameters

DELETE /api/v1/locus/portfolios/{portfolioId}/locations

Requires session authentication.
Remove a location from the portfolio. Query parameters Example

Bulk import

POST /api/v1/locus/portfolios/{portfolioId}/locations/import

Requires session authentication.
Import multiple locations into a portfolio in a single request. Accepts a JSON array of location objects. Existing locations (matching h3_index + profile) are updated; new ones are created. Request body

Scoring refresh

GET /api/v1/locus/portfolios/{portfolioId}/refresh

Requires session authentication.
List recent scoring refresh runs for the portfolio. Query parameters Response

POST /api/v1/locus/portfolios/{portfolioId}/refresh

Requires session authentication.
Queue a scoring refresh. The refresh is processed asynchronously — scores for all locations in the portfolio are recomputed with the latest data and the active formula. Response (HTTP 202)