API Reference

Complete REST API documentation with endpoints, request/response examples, authentication, and rate limiting.

The SCRIPE API is a RESTful JSON API. All endpoints use JWT Bearer-token authentication (unless marked public), standard HTTP status codes, and a consistent envelope response format. Swagger UI is available at /swagger for interactive testing.

Base Information

PropertyValue
Base URLhttps://localhost:5035/api/v1
API VersioningURL path versioning (/api/v1/)
Content Typeapplication/json
AuthenticationBearer JWT token in Authorization header
Rate Limiting100 requests/minute per IP
Swagger UIhttps://localhost:5035/swagger

Authentication Endpoints

MethodEndpointDescriptionAuth
POST/auth/loginAuthenticate user with email/password🔒 Required
POST/auth/refreshRefresh access token using refresh token🔒 Required
POST/auth/logoutInvalidate refresh token and end session🔒 Required
POST/auth/verify-2faVerify two-factor authentication OTP🔒 Required
POST/auth/forgot-passwordSend password reset email🔒 Required
POST/auth/reset-passwordReset password with token🔒 Required
GET/auth/meGet current authenticated user🔒 Required

Admin Management Endpoints

MethodEndpointDescriptionAuth
GET/adminList admins with pagination/search🔒 Required
POST/adminCreate a new admin user🔒 Required
GET/admin/{id}Get admin by ID with roles🔒 Required
PUT/admin/{id}Update admin details🔒 Required
DELETE/admin/{id}Soft-delete admin🔒 Required
PUT/admin/{id}/blockBlock/unblock admin account🔒 Required
POST/admin/{id}/impersonateImpersonate admin user🔒 Required

User Management Endpoints

MethodEndpointDescriptionAuth
GET/usersList users (tenant-scoped)🔒 Required
POST/usersCreate user🔒 Required
GET/users/{id}Get user details🔒 Required
PUT/users/{id}Update user🔒 Required
DELETE/users/{id}Soft-delete user🔒 Required
PUT/users/{id}/blockBlock/unblock user🔒 Required
PUT/users/{id}/avatarUpload user avatar🔒 Required

Role & Permission Endpoints

MethodEndpointDescriptionAuth
GET/rolesList roles (tenant-scoped)🔒 Required
POST/rolesCreate custom role🔒 Required
GET/roles/{id}Get role with permissions🔒 Required
PUT/roles/{id}Update role🔒 Required
PUT/roles/{id}/permissionsAssign permissions to role🔒 Required
DELETE/roles/{id}Delete role🔒 Required

Tenant Management Endpoints

MethodEndpointDescriptionAuth
GET/tenantsList tenants🔒 Required
POST/tenantsCreate tenant🔒 Required
GET/tenants/{id}Get tenant details + settings🔒 Required
PUT/tenants/{id}Update tenant🔒 Required
PUT/tenants/{id}/logoUpload tenant logo🔒 Required
PUT/tenants/{id}/settingsUpdate tenant settings🔒 Required

Other Endpoints

MethodEndpointDescriptionAuth
GET/dashboard/statsDashboard KPI statistics🔒 Required
GET/dashboard/chartsChart data (users over time)🔒 Required
GET/auditSearch audit logs🔒 Required
GET/audit/exportExport audit logs (CSV/PDF)🔒 Required
GET/menusGet menu tree🔒 Required
POST/menusCreate menu item🔒 Required
PUT/menus/reorderReorder menu items🔒 Required
GET/notificationsList notifications🔒 Required
PUT/notifications/{id}/readMark notification read🔒 Required
GET/recycle-binList soft-deleted items🔒 Required
PUT/recycle-bin/{id}/restoreRestore deleted item🔒 Required
GET/healthHealth check (liveness)🔒 Required

Response Format

JSON
{
  "isSuccess": true,
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "name": "John Doe",
    "email": "john@example.com"
  },
  "message": "Operation completed successfully",
  "statusCode": 200
}