API Documentation

Everything you need to integrate CRX Miner into your apps

1 Quick Start

Authentication

All API requests require an API key. Include it in the Authorization header:

Authorization: Bearer crx_your_api_key_here

Base URL

https://crx.michaelhaag.org/api/v1

2 Endpoints

GET /v1/extensions/{extension_id}

Get detailed security analysis for a specific Chrome extension.

Example Request

curl -H "Authorization: Bearer YOUR_KEY" \
  "https://crx.michaelhaag.org/api/v1/extensions/cjpalhdlnbpafiamejdnhcphjbkeiagm"

Response

{
  "extension_id": "cjpalhdlnbpafiamejdnhcphjbkeiagm",
  "name": "uBlock Origin",
  "version": "1.68.0",
  "risk_score": 25,
  "risk_level": "low",
  "permissions": ["storage", "webNavigation"],
  "ai_summary": "Low risk ad blocker..."
}
GET /v1/extensions

List analyzed extensions with filtering and pagination.

Query Parameters

Parameter Type Description
risk_level string critical, high, medium, low, minimal
search string Search by name or extension ID
limit integer Results per page (max 100)
offset integer Pagination offset

Example

curl -H "Authorization: Bearer YOUR_KEY" \
  "https://crx.michaelhaag.org/api/v1/extensions?risk_level=high&limit=10"
GET /api/stats

Get overall statistics (no auth required).

{
  "total_extensions": 10523,
  "critical_count": 42,
  "high_count": 521,
  "medium_count": 2341,
  "scans_24h": 156
}
POST /v1/queue NEW

Add extension(s) to the priority scan queue. Queued items are processed every 5 minutes.

Single Extension

curl -X POST -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"extension_id": "abcdefghijklmnopabcdefghijklmnop"}' \
  "https://crx.michaelhaag.org/api/v1/queue"

Bulk (up to 50)

curl -X POST -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"extension_ids": ["id1...", "id2...", "id3..."]}' \
  "https://crx.michaelhaag.org/api/v1/queue"

Response

{
  "status": "queued",
  "queued": 3,
  "already_queued": 0,
  "message": "3 extension(s) added to priority scan queue",
  "queued_ids": ["id1...", "id2...", "id3..."]
}
GET /v1/queue NEW

Check the current priority scan queue status.

curl -H "Authorization: Bearer YOUR_KEY" \
  "https://crx.michaelhaag.org/api/v1/queue"
{
  "queue_size": 5,
  "items": [
    {"extension_id": "abc...", "is_yours": true}
  ]
}

3 Rate Limits

API requests are rate limited per user. Check the response headers:

Header Description
X-RateLimit-Limit Your daily request limit
X-RateLimit-Remaining Requests remaining today
X-RateLimit-Reset When your limit resets (midnight UTC)

Free tier: 50 requests per day. Need more? Request increased access from your dashboard settings.

4 Error Codes

Code Description
401 Invalid or missing API key
404 Extension not found in database
429 Rate limit exceeded
500 Internal server error