Skip to main content

Error response format

All API errors return a JSON body:
{
  "detail": "Invalid or missing API key"
}
Validation errors include location details:
{
  "detail": [
    {
      "loc": ["query", "fixture_id"],
      "msg": "Field required",
      "type": "missing"
    }
  ]
}

HTTP status codes

StatusDescription
200Success
401Unauthorized — invalid or missing API key (must be valid UUID)
404Not found — resource does not exist
422Validation error — request parameters failed validation
426Upgrade required — WebSocket endpoint called via HTTP
429Rate limited — exceeded 100 requests/minute
500Internal server error

Rate limiting

The MM API enforces 100 requests/minute per client API key. When rate limited, the API returns 429 Too Many Requests. Implement exponential backoff in your retry logic (wait 1s, 2s, 4s, etc.).

Common errors

Authentication (401)

Your API key is missing, invalid, or not in UUID format.
# Correct
curl -H "X-API-Key: YOUR_API_KEY" \
  https://mmapi.55-tech.com/api/v1/me

# Wrong header name — returns 401
curl -H "Authorization: Bearer your-key" \
  https://mmapi.55-tech.com/api/v1/me

# Missing header — returns 401
curl https://mmapi.55-tech.com/api/v1/me

Not found (404)

The requested resource doesn’t exist:
curl -H "X-API-Key: YOUR_API_KEY" \
  https://mmapi.55-tech.com/api/v1/orders/999999
# Returns: 404

Validation errors (422)

Required query parameters are missing or have invalid values. Check the loc field to identify the problematic parameter.

WebSocket upgrade (426)

If you call the WebSocket endpoint via HTTP instead of upgrading to a WebSocket connection, you receive a 426 Upgrade Required.

WebSocket errors

When subscribing to the WebSocket, these error messages may be returned:
ErrorDescription
api_key requiredNo api_key field in subscribe message
Invalid api_key formatNot a valid UUID
Invalid API keyKey not found or client inactive
Connection limit exceededAlready at 5 active connections for this key