API Reference

The mdmin REST API lets you compress markdown and extract relevant context from your applications. All endpoints require a Bearer API key. Get yours free at mdmin.dev/settings.

Base URLhttps://mdmin.dev
AuthAuthorization: Bearer mdmin_sk_...
Formatapplication/json

Endpoints

POST/api/v1/compress

Compress markdown using the rule-based engine. Removes verbose patterns, compacts tables, strips filler phrases. Returns the compressed text and token stats.

Request body

FieldTypeDescription
markdownrequiredstringThe markdown text to compress
levelstringlight | medium | aggressive — default: medium
sourcestringClient identifier for dashboard tracking (cli, vscode, etc.)
Request
curl -X POST https://mdmin.dev/api/v1/compress \
  -H "Authorization: Bearer mdmin_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "markdown": "# Hello\n\nIn order to get started...",
    "level": "medium"
  }'
Response 200
{
  "output": "# Hello\n\nTo get started...",
  "stats": {
    "inputTokens": 120,
    "outputTokens": 94,
    "saved": 26,
    "pct": 21.7
  },
  "mode": "rule:medium"
}

Response fields

FieldTypeDescription
outputstringCompressed markdown text
stats.inputTokensnumberToken count before compression
stats.outputTokensnumberToken count after compression
stats.savednumberTokens saved
stats.pctnumberPercentage reduction
modestringCompression mode used (e.g. rule:medium)
Tier limits
Free100KB max input, 120 req/minUpgrade →
Pro2MB max input, 120 req/min
POST/api/v1/extract

Given a large document and a query, returns only the most relevant chunks within a token budget. Uses TF-IDF cosine similarity — no LLM, no external API, runs in milliseconds. Achieves 70–95% reduction on targeted queries.

Request body

FieldTypeDescription
documentrequiredstringThe full markdown document to extract from
queryrequiredstringQuestion or topic to find relevant sections for
max_tokensnumberToken budget for result — default: 2000, Pro max: 16000
Request
curl -X POST https://mdmin.dev/api/v1/extract \
  -H "Authorization: Bearer mdmin_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "document": "# Large Doc\n\n...",
    "query": "how does auth work",
    "max_tokens": 2000
  }'
Response 200
{
  "text": "## Authentication\n\nThe auth system uses...",
  "stats": {
    "totalDocTokens": 8400,
    "extractedTokens": 610,
    "chunksTotal": 24,
    "chunksExtracted": 3,
    "reduction": 92.7
  },
  "tier_limit": {
    "tier": "free",
    "max_tokens": 2000,
    "max_doc_bytes": 100000,
    "at_token_limit": false
  }
}

Response fields

FieldTypeDescription
textstringExtracted relevant chunks in original document order
stats.totalDocTokensnumberTotal tokens in the input document
stats.extractedTokensnumberTokens in the extracted result
stats.chunksTotalnumberTotal chunks the document was split into
stats.chunksExtractednumberChunks included in the result
stats.reductionnumberPercentage reduction vs full document
tier_limit.tierstringYour current tier (free | pro)
tier_limit.max_tokensnumberMax token budget for your tier
tier_limit.max_doc_bytesnumberMax document size for your tier (bytes)
tier_limit.at_token_limitbooleanTrue if result hit the token budget ceiling
Tier limits
Free100KB max doc, 2K token budget, 20 req/minUpgrade →
Pro2MB max doc, 16K token budget, 60 req/min
GET/api/v1/stats

Returns your aggregate usage statistics for the last 90 days — total compressions, tokens saved, estimated cost savings, and a 7-day daily breakdown.

Request
curl https://mdmin.dev/api/v1/stats \
  -H "Authorization: Bearer mdmin_sk_..."
Response 200
{
  "totalTokensSaved": 48200,
  "totalCompressions": 37,
  "estimatedUsdSaved": 0.0386,
  "extensionCompressions": 12,
  "last7Days": [
    { "date": "2026-03-04", "tokensSaved": 0 },
    { "date": "2026-03-05", "tokensSaved": 1840 },
    ...
  ]
}

Error codes

StatusCodeMeaning
401Missing or invalid API key
400Invalid request body or missing required field
413DOC_TOO_LARGEInput exceeds size limit for your tier
429Rate limit exceeded — check Retry-After header
402PRO_REQUIREDFeature requires Pro subscription
402DEEP_COMING_SOONDeep compress via API not yet available
500Server error — retry after a moment

SDKs & integrations