Overview
The DEVision Job Manager API provides programmatic access to company registration, authentication, profile management, job posting, applicant search, and premium subscription features. This API is designed for the Job Manager subsystem of the DEVision job portal platform.Authentication
Company registration, login, SSO, and token management
Company Profile
Profile CRUD operations and media management
Job Posts
Job lifecycle management and application tracking
Subscription
Premium subscriptions and payment processing
Base URL
All API requests should be made to the following base URL:Authentication
The DEVision API uses JWE (JSON Web Encryption) tokens for authentication. All authenticated endpoints require a valid Bearer token in the Authorization header.Token Format
Token Lifecycle
1
Login/Register
Authenticate via credentials or SSO to receive access and refresh tokens
2
Access Token
Short-lived token (15 minutes) for API requests
3
Refresh Token
Long-lived token (7 days) to obtain new access tokens
4
Token Revocation
Tokens can be revoked on logout or security events via Redis blocklist
Security Scheme
Error Response Format
All API errors follow a consistent format:Error Codes
| Code | HTTP Status | Description |
|---|---|---|
VALIDATION_ERROR | 400 | Request validation failed |
UNAUTHORIZED | 401 | Invalid or expired token |
FORBIDDEN | 403 | Insufficient permissions |
NOT_FOUND | 404 | Resource not found |
CONFLICT | 409 | Resource already exists |
RATE_LIMITED | 429 | Too many requests |
INTERNAL_ERROR | 500 | Server error |
Rate Limiting
API requests are rate-limited to ensure fair usage:| Tier | Requests per Minute | Burst Limit |
|---|---|---|
| Free | 60 | 10 |
| Premium | 300 | 50 |
API Versioning
The API uses URL-based versioning. The current version isv1:
Content Types
All requests and responses use JSON:Pagination
List endpoints support cursor-based pagination:limit- Number of items per page (default: 20, max: 100)offset- Number of items to skip
API Endpoints Overview
Authentication
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/sgjm/auth/register | Register new company |
| POST | /api/v1/sgjm/auth/login | Login with credentials |
| POST | /api/v1/sgjm/auth/sso/google | Google SSO authentication |
| POST | /api/v1/sgjm/auth/logout | Revoke tokens |
| POST | /api/v1/sgjm/auth/refresh | Refresh access token |
Company Profile
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/sgjm/companies/{id}/profile | Get company profile |
| PUT | /api/v1/sgjm/companies/{id}/profile | Update company profile |
| POST | /api/v1/sgjm/companies/{id}/media | Upload media files |
| DELETE | /api/v1/sgjm/companies/{id}/media/{mediaId} | Delete media |
Job Posts
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/sgjm/jobs | List company job posts |
| POST | /api/v1/sgjm/jobs | Create job post |
| GET | /api/v1/sgjm/jobs/{id} | Get job post details |
| PUT | /api/v1/sgjm/jobs/{id} | Update job post |
| DELETE | /api/v1/sgjm/jobs/{id} | Delete job post |
| GET | /api/v1/sgjm/jobs/{id}/applications | List applications |
| PATCH | /api/v1/sgjm/jobs/{id}/applications/{appId} | Update application status |
Subscription
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/sgjm/subscriptions/status | Get subscription status |
| POST | /api/v1/sgjm/subscriptions/checkout | Initiate payment |
| POST | /api/v1/sgjm/subscriptions/webhook | Stripe webhook handler |
Search
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/sgjm/search/applicants | Search applicants (Premium) |
| GET | /api/v1/sgjm/search/profiles | List saved search profiles |
| POST | /api/v1/sgjm/search/profiles | Create search profile |
Detailed request/response schemas for each endpoint will be added in Milestone 2 implementation phase.