Skip to main content

Error Responses

All Magne API errors follow a consistent JSON format:
{
  "error": "Human-readable error message"
}

Status Codes

CodeNameDescription
400Bad RequestInvalid input, missing required fields, or validation failure
401UnauthorizedMissing or invalid authentication token
403ForbiddenAuthenticated but insufficient permissions for the action
404Not FoundThe requested resource does not exist
409ConflictResource already exists (e.g., duplicate username or email)
429Too Many RequestsRate limit exceeded — see Rate Limits
500Internal Server ErrorUnexpected server error. The response message will always be "Internal server error" regardless of the actual cause.

Examples

400 — Validation Error

{
  "error": "Username must be 3-32 characters"
}

401 — Invalid Credentials

{
  "error": "Invalid username or password"
}

403 — Missing Permission

{
  "error": "Missing required permission: MANAGE_WEBHOOKS"
}

404 — Resource Not Found

{
  "error": "Channel not found in this server"
}

409 — Conflict

{
  "error": "Username already taken"
}

429 — Rate Limited

{
  "error": "Too many requests. Please try again later."
}
Headers: Retry-After: 45

500 — Server Error

{
  "error": "Internal server error"
}
500 errors never expose internal details. The actual error is logged server-side only. If you encounter persistent 500 errors, contact support with the endpoint and approximate timestamp.