Skip to content
Dark MatterDark Matter
API

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.

GEThttps://api.dmtr.ai/v1/positions?limit=10

Headers

Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx
Content-Type: application/json
200Success
{
  "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.

Edit this page on GitHub

Last reviewed: June 12, 2026

Was this page helpful?