Overview
The Admin API provides privileged endpoints for platform administrators to manage seller verifications, validate veterinary records, monitor platform statistics, and moderate content.Authentication & Authorization
Admin endpoints use two-layer protection:- Authentication: Valid JWT token in
Authorization: Bearer <token>header - Authorization: User must have
role: "admin"in their account
Access Control
Admin routes are protected by two middleware functions (server/src/routes/admin.ts:11):authenticate- Validates JWT token and loads user contextrequireAdmin- Verifies user has admin role
Get Admin Dashboard
GET /api/admin/dashboard
Response
boolean
required
Indicates request success
object
required
Example Response
Get Pending Sellers
GET /api/admin/sellers/pending
Response
boolean
required
Indicates request success
array
required
Example Response
Verify Seller
PUT /api/admin/sellers/:id/verify
Path Parameters
string
required
Seller’s user ID (MongoDB ObjectId)
Body Parameters
string
required
Action to perform:
"approve" or "reject"string
Required when action is “reject”. Reason for rejection shown to seller
Response
boolean
required
Indicates request success
string
required
Human-readable result message
object
required
Updated seller user object (password excluded)
Example Response (Approved)
Example Response (Rejected)
Error Responses
Invalid seller ID or action parameter
Seller not found
Get Pending Vet Records
GET /api/admin/vet-records/pending
Response
boolean
required
Indicates request success
array
required
Array of pending vet records with populated horse information
string
Vet record ID
object
string
Type of record (e.g., “vaccination”, “health_check”)
string
URL to uploaded veterinary document
string
Current status (will be “pending”)
string
Record creation timestamp
Example Response
Validate Vet Record
PUT /api/admin/vet-records/:id/validate
Path Parameters
string
required
Vet record ID (MongoDB ObjectId)
Body Parameters
string
required
Action to perform:
"validate" or "reject"string
Required when action is “reject”. Reason for rejection
Response
boolean
required
Indicates request success
object
required
Example Response (Validated)
Example Response (Rejected)
Error Responses
Invalid action parameter
Vet record not found
Delete Horse Listing
DELETE /api/admin/horses/:id
Path Parameters
string
required
Horse listing ID (MongoDB ObjectId)
Response
boolean
required
Indicates request success
string
required
Confirmation message
Example Response
Use Cases
- Remove fraudulent or inappropriate listings
- Delete duplicate entries
- Remove horses that violate platform policies
- Clean up test data
Error Handling
All admin endpoints follow consistent error response patterns:401 Unauthorized
Missing or invalid authentication token:403 Forbidden
Valid user but not an admin:500 Server Error
Internal server error:Security Best Practices
Admin Token Security
- Store admin tokens securely (never in client-side code)
- Use environment variables for token storage
- Implement token rotation policies
- Log all admin actions for audit trails
Action Verification
- Verify seller/record details before approval/rejection
- Provide clear rejection reasons for transparency
- Review documents thoroughly before validation
- Confirm destructive operations (deletes) before execution
Access Monitoring
- Monitor admin API usage patterns
- Set up alerts for unusual activity
- Regular audit of admin account access
- Implement rate limiting for admin endpoints
Related Endpoints
User Management
View and manage user accounts
Horse Listings
Browse and manage horse listings
Vet Records
Public vet record endpoints
Authentication
User and admin authentication

