API Documentation

Comprehensive guide to MQ Forum's REST API endpoints

Getting Started

Base URL

https://mqforum.com

Content Type

application/json

Authentication

Most endpoints require authentication using NextAuth.js session cookies. For programmatic access, include the session cookie in your requests.

Authentication Methods:

  • Session Cookies: Automatic for browser-based requests
  • Email/Password: Use /api/auth/signin endpoint
  • Admin Access: Required for user management endpoints

Authentication

POST/api/auth/signup

Create a new user account

Parameters

NameTypeRequiredDescription
emailstringRequiredUser email address
passwordstringRequiredUser password (min 6 characters)
namestringOptionalUser display name

Response Examples

Success Response (200)
{
  "message": "User created successfully",
  "userId": "string"
}
Error Response (400/401/500)
{
  "error": "Email already exists"
}
POST/api/auth/forgot-password

Request password reset

Parameters

NameTypeRequiredDescription
emailstringRequiredUser email address

Response Examples

Success Response (200)
{
  "message": "Password reset email sent"
}
Error Response (400/401/500)
{
  "error": "User not found"
}

Forum Content

GET/api/categories

Get all forum categories

Response Examples

Success Response (200)
[
  {
    "_id": "string",
    "name": "string",
    "description": "string",
    "slug": "string",
    "topicCount": "number"
  }
]
GET/api/topics

Get topics with optional filtering

Parameters

NameTypeRequiredDescription
categorystringOptionalFilter by category slug
limitnumberOptionalNumber of topics to return (default: 20)
sortstringOptionalSort order: 'newest' | 'oldest' | 'popular'

Response Examples

Success Response (200)
[
  {
    "_id": "string",
    "title": "string",
    "slug": "string",
    "content": "string",
    "author": {
      "name": "string",
      "email": "string"
    },
    "category": {
      "name": "string",
      "slug": "string"
    },
    "createdAt": "date",
    "postCount": "number"
  }
]
POST/api/topics

Create a new topic

Parameters

NameTypeRequiredDescription
titlestringRequiredTopic title
contentstringRequiredTopic content
categoryIdstringRequiredCategory ID

Response Examples

Success Response (200)
{
  "message": "Topic created successfully",
  "topicId": "string"
}
Error Response (400/401/500)
{
  "error": "Authentication required"
}

AI Chat

POST/api/chat

Send message to AI chatbot

Parameters

NameTypeRequiredDescription
messagestringRequiredUser message
sessionIdstringOptionalChat session ID

Response Examples

Success Response (200)
{
  "response": "string",
  "sessionId": "string",
  "relatedTopics": [
    {
      "title": "string",
      "slug": "string",
      "category": "string"
    }
  ]
}
POST/api/chat/feedback

Provide feedback on AI response

Parameters

NameTypeRequiredDescription
sessionIdstringRequiredChat session ID
messageIdstringRequiredMessage ID
helpfulbooleanRequiredWhether response was helpful

Response Examples

Success Response (200)
{
  "message": "Feedback recorded"
}

User Management

GET/api/users

Get users list (admin only)

Parameters

NameTypeRequiredDescription
limitnumberOptionalNumber of users to return
searchstringOptionalSearch by name or email

Response Examples

Success Response (200)
[
  {
    "_id": "string",
    "name": "string",
    "email": "string",
    "role": "string",
    "status": "string",
    "createdAt": "date"
  }
]
PUT/api/users/[id]/status

Update user status (admin only)

Parameters

NameTypeRequiredDescription
statusstringRequired'active' | 'banned' | 'suspended'

Response Examples

Success Response (200)
{
  "message": "User status updated"
}
Error Response (400/401/500)
{
  "error": "Unauthorized"
}

Feedback

POST/api/feedback

Submit user feedback

Parameters

NameTypeRequiredDescription
typestringRequired'suggestion' | 'bug' | 'general' | 'appreciation'
subjectstringRequiredFeedback subject
messagestringRequiredFeedback message
emailstringOptionalContact email
prioritystringOptional'low' | 'medium' | 'high' | 'urgent'

Response Examples

Success Response (200)
{
  "message": "Feedback submitted successfully",
  "id": "string"
}

HTTP Status Codes

Success Codes

200OK - Request successful
201Created - Resource created

Error Codes

400Bad Request - Invalid parameters
401Unauthorized - Authentication required
403Forbidden - Insufficient permissions
500Server Error - Internal error

Rate Limiting

To ensure fair usage and platform stability, we implement rate limiting on our API endpoints:

General API

100 requests per minute per IP

AI Chat

20 requests per minute per user

Content Creation

10 posts per hour per user

Need Help?

Technical Support

For API-related questions and technical issues:

api@mqforum.com

Community Support

Join our developer community for discussions:

API Development Forum →