Complete guide for using the Deploy Center Postman Collection to test all API endpoints.
- Open Postman
- Click Import button (top left)
- Select File tab
- Choose
POSTMAN_COLLECTION.json - Click Import
If the collection is hosted on GitHub:
- Copy the raw URL of
POSTMAN_COLLECTION.json - Click Import in Postman
- Select Link tab
- Paste the URL
- Click Continue → Import
The collection uses variables for easy configuration. Update these before testing:
- Click on Deploy Center API collection
- Go to Variables tab
- Update the following:
| Variable | Description | Default Value | Update To |
|---|---|---|---|
base_url |
Server URL | http://localhost:3000 |
Your server URL |
access_token |
JWT access token | (empty) | Auto-filled on login |
refresh_token |
JWT refresh token | (empty) | Auto-filled on login |
project_id |
Project ID for testing | 1 |
Auto-filled on create |
deployment_id |
Deployment ID for testing | 1 |
Auto-filled on create |
For multiple environments (dev, staging, production):
- Create new environment: Environments → Create Environment
- Add variables:
base_url→http://localhost:3000(for dev)base_url→https://api.yourdomain.com(for production)
- Select environment from dropdown (top right)
- Expand Health & Info folder
- Click Health Check
- Click Send
Expected Response:
{
"Success": true,
"Message": "Deploy Center API is running",
"Timestamp": "2025-01-26T..."
}- Expand Authentication folder
- Click Register Admin User
- (Optional) Modify the request body if needed
- Click Send
What happens:
- Creates admin user in database
- Returns user info and JWT tokens
- Automatically saves
access_tokenandrefresh_tokento variables
Expected Response:
{
"Success": true,
"Message": "User registered successfully",
"Data": {
"User": {
"Id": 1,
"Username": "admin",
"Email": "admin@example.com",
"Role": "admin"
},
"Tokens": {
"AccessToken": "eyJhbGc...",
"RefreshToken": "eyJhbGc..."
}
},
"Code": 201
}- Click Get Profile request
- Notice the Authorization header is auto-filled with
{{access_token}} - Click Send
Expected Response:
{
"Success": true,
"Message": "Profile retrieved successfully",
"Data": {
"User": {
"Id": 1,
"Username": "admin",
"Email": "admin@example.com",
"Role": "admin",
"IsActive": true
}
}
}- Expand Projects folder
- Click Create Project - Simple
- Modify the request body if needed:
- Change
Nameto your project name - Update
RepoUrlto your repository - Adjust
Pipelinesteps
- Change
- Click Send
What happens:
- Creates project in database
- Generates webhook secret
- Automatically saves
project_idto variable
Expected Response:
{
"Success": true,
"Message": "Project created successfully",
"Data": {
"Project": {
"Id": 1,
"Name": "my-app",
"RepoUrl": "https://github.com/username/my-app.git",
"WebhookSecret": "abc123...",
"Config": { ... }
}
},
"Code": 201
}Important: Save the WebhookSecret for GitHub webhook configuration!
- Expand Deployments folder
- Click Create Manual Deployment
- Update the request body if needed
- Click Send
What happens:
- Creates deployment record
- Adds to queue
- Starts deployment process
- Automatically saves
deployment_idto variable
- Click Get Deployment by ID
- Click Send
- Check
Statusfield:queued- Waiting in queueinProgress- Currently deployingsuccess- Completed successfullyfailed- Deployment failed
- ✅ Health Check - Verify server is running
- ✅ API Information - Get API version and endpoints
- ✅ Register Admin User - Create admin account
- ✅ Register Developer User - Create developer account
- ✅ Login - Authenticate with credentials
- ✅ Get Profile - Retrieve current user info
- ✅ Refresh Token - Renew access token
- ✅ Change Password - Update user password
- ✅ Get All Projects - List all active projects
- ✅ Get All Projects (Include Inactive) - List all projects
- ✅ Create Project - Simple - Create with basic config
- ✅ Create Project - Full Config - Create with notifications
- ✅ Get Project by ID - Retrieve specific project
- ✅ Get Project by Name - Retrieve by project name
- ✅ Update Project - Modify project settings
- ✅ Get Project Statistics - View deployment stats
- ✅ Regenerate Webhook Secret - Generate new secret
- ✅ Delete Project - Soft delete project
- ✅ Get Deployment by ID - View deployment details
- ✅ Get Project Deployments - List project deployments
- ✅ Create Manual Deployment - Trigger deployment
- ✅ Cancel Deployment - Cancel queued deployment
- ✅ Retry Deployment - Retry failed deployment
- ✅ Get Deployment Statistics - Overall stats
- ✅ Get Project Deployment Statistics - Project-specific stats
- ✅ Get Queue Status - View all queues
- ✅ Get Project Queue Status - View project queue
- ✅ Cancel All Pending Deployments - Clear project queue
- ✅ Test Webhook - Test webhook endpoint
- ✅ GitHub Webhook (Simulated) - Simulate GitHub push
- All requests use Bearer Token authentication
- Token is stored in collection variable
{{access_token}} - Auto-filled in Authorization header
- Auto-saved when you login or register
If auto-save doesn't work:
- Login or Register
- Copy
AccessTokenfrom response - Go to Collection → Variables
- Paste token in
access_tokenvalue - Click Save
- Access tokens expire after 1 hour (by default)
- When you get
401 Unauthorized:- Use Refresh Token request
- Or use Login request again
Request: Create Project - Full Config
{
"Name": "production-app",
"Description": "Production application",
"RepoUrl": "https://github.com/myorg/production-app.git",
"Config": {
"Branch": "main",
"AutoDeploy": true,
"Environment": "production",
"DeployOnPaths": ["src/**", "package.json"],
"Pipeline": [
{
"Name": "Install Dependencies",
"Command": "npm ci",
"Timeout": 600000
},
{
"Name": "Run Tests",
"Command": "npm test",
"RunIf": "{{Environment}} === 'production'"
},
{
"Name": "Build",
"Command": "npm run build"
},
{
"Name": "Deploy",
"Command": "pm2 restart ecosystem.config.js"
}
],
"Notifications": {
"Discord": {
"Enabled": true,
"WebhookUrl": "https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN"
},
"Email": {
"Enabled": true,
"Host": "smtp.gmail.com",
"Port": 587,
"Secure": false,
"User": "your-email@gmail.com",
"Password": "your-app-password",
"From": "Deploy Center <noreply@yourapp.com>",
"To": ["team@yourapp.com"]
}
},
"Url": "https://production-app.com"
}
}Request: Create Manual Deployment
{
"Branch": "main",
"CommitHash": "a1b2c3d4e5f6",
"CommitMessage": "Deploy version 2.5.0"
}Request: Get Project Deployments
URL: {{base_url}}/api/deployments/projects/{{project_id}}/deployments?limit=20&offset=0
limit=20- Get 20 deployments per pageoffset=0- Start from first deploymentoffset=20- Start from 21st deployment (page 2)
- ✅ Health Check
- ✅ Register Admin User (saves token)
- ✅ Get Profile (verify token works)
- ✅ Create Project - Simple (saves project_id)
- ✅ Get Project by ID (verify creation)
- ✅ Create Manual Deployment (saves deployment_id)
- ✅ Get Deployment by ID (check status)
- ✅ Get All Projects
- ✅ Create Project - Full Config
- ✅ Get Project Statistics
- ✅ Update Project
- ✅ Regenerate Webhook Secret
- ✅ Get Queue Status
- ✅ Get Project Queue Status
- ✅ Get Project Deployments
- ✅ Get Deployment Statistics
- ✅ Create Manual Deployment
- ✅ Wait for failure (if configured to fail)
- ✅ Get Deployment by ID (check error message)
- ✅ Retry Deployment
Cause: Token expired or not set
Solution:
- Check if
access_tokenvariable is set - Login again to get new token
- Or use Refresh Token request
Cause: Resource doesn't exist or wrong ID
Solution:
- Verify
project_idordeployment_idin variables - Check if resource was created successfully
- Use Get All Projects to find correct ID
Cause: Insufficient permissions
Solution:
- Check user role (admin, developer, viewer)
- Use admin account for admin-only endpoints
- Verify in Get Profile response
Cause: Invalid request body or missing fields
Solution:
- Check request body format (valid JSON)
- Verify required fields are present
- Check field names match API expectations (PascalCase)
Cause: Rate limit exceeded
Solution:
- Wait a few minutes
- Reduce request frequency
- Check rate limits in documentation
Cause: Test scripts may not be running
Solution:
- Enable test scripts in Postman settings
- Manually copy tokens to variables
- Check Postman console for errors
View detailed request/response info:
- Click Console button (bottom left)
- See all requests, headers, and responses
- Debug test script execution
Save successful responses as examples:
- Send request
- Click Save as Example
- Named examples appear under request
- Great for documentation
Auto-generate data:
- Go to request Pre-request Script tab
- Add script:
pm.collectionVariables.set('timestamp', Date.now());- Use in request:
{{timestamp}}
Test complete workflows:
- Create Collection Runner
- Select requests to run
- Set iterations
- Run automated tests
Share configuration with team:
- Click Environments
- Click ... next to environment
- Click Export
- Share JSON file
| Code | Meaning | Action |
|---|---|---|
| 200 | Success | Request completed successfully |
| 201 | Created | Resource created successfully |
| 204 | No Content | Request successful, no response body |
| 400 | Bad Request | Check request body and parameters |
| 401 | Unauthorized | Login or refresh token |
| 403 | Forbidden | Insufficient permissions |
| 404 | Not Found | Resource doesn't exist |
| 429 | Too Many Requests | Wait and retry |
| 500 | Server Error | Check server logs |
- README.md - Main documentation
- QUICK_START.md - Quick start guide
- INSTALLATION.md - Installation instructions
- PROJECT_STRUCTURE.md - Architecture details
If you encounter issues:
- Check Postman Console for errors
- Verify server is running (
/healthendpoint) - Check server logs in
logs/directory - Review this guide for common issues
- Open GitHub issue with request/response details
Happy Testing! 🚀