API documentation
API reference
The /v1 surface is the versioned, read-only API for customer machines: eleven GET endpoints across five families. Every endpoint authenticates as described under Authentication, answers plain JSON, and changes nothing in your workspace.
Portfolio
GET /v1/portfolio: the monitored book, one item per exposure with its current status, score, top signals, and last status change. Ordered by severity, red first.include_inactive=trueincludes deactivated exposures.GET /v1/portfolio/summary: status counts over the active book plus the number of status changes in the last 30 days.GET /v1/portfolio/transitions: the status-change feed, newest first.since(an ISO 8601 timestamp) bounds the feed.
Entity risk
GET /v1/entities/{node_id}/risk: your team's current risk assessment for one company, with the scored signal rows and their citations. The response distinguishes not held, held but not yet assessed, and assessed.GET /v1/risk-assessments/{assessment_id}: one assessment by id. Assessments are append-only history, so the id is a stable permalink.
Scoring rubrics
GET /v1/risk-profiles: your team's rubric versions, newest first.GET /v1/risk-profiles/{version}: one version with its full configuration.GET /v1/risk-config: the rubric currently scoring your team's exposures.versionisnullwhile the built-in default is live.
Counterparty registry
GET /v1/entities: the counterparty registry (export credit agencies, banks, sponsors), in name order.GET /v1/entities/{entity_id}: one counterparty's identity row.
{entity_id} is the registry's own id space. It is not a graph node id: the risk endpoints and search speak node_id.
Search
GET /v1/search?q=...: find a company by name or identifier (lei:5493..., a bare registration number, or a name). Hits carry thenode_idthe risk endpoints speak, plus jurisdiction and registration data.connected_sourcesnames the sources the query ran against, so an empty result is attributable.
Pagination
List endpoints accept limit and offset and answer one envelope:
{ "items": [], "limit": 50, "offset": 0, "total": 0 }total is the exact count after filtering. The maximum limit is 100, except /v1/search, which caps at 25 hits.
Errors
Every 4xx from a /v1 endpoint carries the structured envelope described under Errors and rate limits. A 404 is canonical: it never confirms whether a resource exists outside your workspace.
Posture
- Read-only:
/v1accepts GET requests only. - Companies only: person data never appears on this surface, whatever your workspace's settings.
- Cited: responses that carry findings carry their source citations.
Coverage
More endpoint families will be added under /v1. Within v1, additions never rename or remove existing routes, fields, or error codes.