API Overview
Tour of the DMTR API: object model, base URLs, domain structure, and authentication quick reference.
Overview
The DMTR API is a RESTful interface for managing private market positions, registry data, rights, and transfer workflows. Start with the object model; base URLs, domain structure, and authentication follow.
Base URLs
The production base URL is https://api.dmtr.ai/v1 (not yet publicly available). For development and testing, use the sandbox: https://sandbox-api.dmtr.ai/v1. Sandbox data is isolated and can be reset; see the Sandbox doc for details.
The Position Object
The Position Object is the atomic unit of ownership in DMTR. Every private position—SPV LLC interest, fund LP interest, direct holding—is represented as a single Position Object with canonical fields for entity ID, status, asset, economic rights, transfer restrictions, compliance, and valuation. See Position Object for the full schema.
API structure by domain
The API is organized by functional domain. Positions endpoints let you query, search, and manage position lifecycle. Registry provides canonical entity and ownership data. Rights Engine evaluates transferability, restrictions, and consent requirements. Identity manages participants and KYC/AML state. Intent handles IOIs, matching, and transfer workflows. Ingest accepts document uploads for extraction and registration. Webhooks deliver real-time event notifications. Admin supports configuration and operational tasks.
Authentication quick reference
All API requests require authentication. Use an API key in the Authorization header: Bearer <api_key>. For OAuth 2.0 flows, use the authorization code flow with PKCE. See Authentication for full details.
Example: List positions
The positions list endpoint returns paginated Position Objects for your organization. Here is a full request and response example.
https://api.dmtr.ai/v1/positions?limit=10Headers
Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx Content-Type: application/json
{
"object": "list",
"data": [
{
"entity_id": "meg-2026-089",
"version": 2,
"status": "active",
"owner": "part-allocator-001",
"asset": {
"issuer": {
"name": "Venture Growth Fund III LLC",
"jurisdiction": "US-DE"
},
"vehicle_class": "fund_lp",
"vintage": "2026-01-15"
},
"transfer": {
"transferable": true,
"restrictions": [
{
"type": "lockup",
"expires": "2027-01-15T00:00:00Z"
}
],
"consent_chain": [
{
"party": "GP Holdings LLC",
"role": "general_partner",
"required": true,
"timeout_days": 15
}
]
},
"compliance": {
"kyc_status": "cleared",
"aml_status": "cleared",
"accreditation_required": true
},
"valuation": {
"current_mark": {
"value": "5000000",
"currency": "USD",
"as_of": "2026-03-01",
"provenance": "gp_mark"
},
"cost_basis": "4200000"
},
"encumbrances": [],
"tokenization": {
"status": "not_tokenized"
}
}
],
"has_more": false,
"next_cursor": null
}Request in your language
curl -X GET "https://api.dmtr.ai/v1/positions?limit=10" \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json"The API is versioned at the path level. All endpoints live under /v1/. When we introduce breaking changes, we will release a new version (e.g. /v2/). Non-breaking additions (new fields, optional parameters) ship within the current version. See Versioning for the full policy.
What to read next
- Authentication — API keys, OAuth, service accounts
- Errors — Error taxonomy and handling
- First API Call — Make your first request in 5 minutes