{ "info": { "name": "Telegram Marketing Agent API", "description": "Comprehensive API collection for the Telegram Marketing Agent System. This collection includes all endpoints for managing campaigns, users, analytics, and more.\n\n## Getting Started\n\n1. Set the `base_url` variable to your API endpoint (default: http://localhost:3000)\n2. Authenticate using the Login endpoint to get your access token\n3. The token will be automatically saved to the `access_token` variable\n4. Start exploring the API!\n\n## Authentication\n\nMost endpoints require Bearer token authentication. The token is automatically managed after login.", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "variable": [ { "key": "base_url", "value": "http://localhost:3000", "type": "string" }, { "key": "access_token", "value": "", "type": "string" }, { "key": "refresh_token", "value": "", "type": "string" } ], "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{access_token}}", "type": "string" } ] }, "item": [ { "name": "Authentication", "item": [ { "name": "Login", "event": [ { "listen": "test", "script": { "exec": [ "if (pm.response.code === 200) {", " const response = pm.response.json();", " pm.collectionVariables.set('access_token', response.data.accessToken);", " pm.collectionVariables.set('refresh_token', response.data.refreshToken);", " pm.environment.set('userId', response.data.user.id);", "}" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"username\": \"admin\",\n \"password\": \"password123\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/auth/login", "host": ["{{base_url}}"], "path": ["api", "v1", "auth", "login"] }, "description": "Authenticate user and receive access token" } }, { "name": "Register", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"username\": \"newuser\",\n \"email\": \"newuser@example.com\",\n \"password\": \"SecurePassword123!\",\n \"fullName\": \"John Doe\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/auth/register", "host": ["{{base_url}}"], "path": ["api", "v1", "auth", "register"] } } }, { "name": "Refresh Token", "event": [ { "listen": "test", "script": { "exec": [ "if (pm.response.code === 200) {", " const response = pm.response.json();", " pm.collectionVariables.set('access_token', response.data.accessToken);", "}" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"refreshToken\": \"{{refresh_token}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/auth/refresh", "host": ["{{base_url}}"], "path": ["api", "v1", "auth", "refresh"] } } }, { "name": "Get Current User", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/auth/me", "host": ["{{base_url}}"], "path": ["api", "v1", "auth", "me"] } } }, { "name": "Logout", "request": { "method": "POST", "header": [], "url": { "raw": "{{base_url}}/api/v1/auth/logout", "host": ["{{base_url}}"], "path": ["api", "v1", "auth", "logout"] } } } ] }, { "name": "Campaigns", "item": [ { "name": "List Campaigns", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/orchestrator/campaigns?page=1&limit=20&status=active", "host": ["{{base_url}}"], "path": ["api", "v1", "orchestrator", "campaigns"], "query": [ { "key": "page", "value": "1" }, { "key": "limit", "value": "20" }, { "key": "status", "value": "active" }, { "key": "type", "value": "message", "disabled": true } ] } } }, { "name": "Create Campaign", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"name\": \"Summer Sale Campaign\",\n \"description\": \"Promotional campaign for summer products\",\n \"type\": \"message\",\n \"content\": {\n \"customMessage\": \"🌞 Summer Sale! Get 20% off on all products. Use code: SUMMER20\",\n \"media\": []\n },\n \"targeting\": {\n \"segments\": [],\n \"tags\": [\"customer\", \"active\"],\n \"filters\": {\n \"lastActivity\": {\n \"operator\": \"greater_than\",\n \"value\": \"30d\"\n }\n }\n },\n \"settings\": {\n \"rateLimit\": {\n \"messagesPerSecond\": 10,\n \"messagesPerUser\": 1\n }\n },\n \"goals\": {\n \"targetAudience\": 1000,\n \"conversionRate\": 15,\n \"revenue\": 50000\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/orchestrator/campaigns", "host": ["{{base_url}}"], "path": ["api", "v1", "orchestrator", "campaigns"] } } }, { "name": "Get Campaign", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/orchestrator/campaigns/:campaignId", "host": ["{{base_url}}"], "path": ["api", "v1", "orchestrator", "campaigns", ":campaignId"], "variable": [ { "key": "campaignId", "value": "camp_123456789" } ] } } }, { "name": "Update Campaign", "request": { "method": "PUT", "header": [], "body": { "mode": "raw", "raw": "{\n \"name\": \"Updated Summer Sale Campaign\",\n \"content\": {\n \"customMessage\": \"🌞 Extended Summer Sale! Get 25% off on all products. Use code: SUMMER25\"\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/orchestrator/campaigns/:campaignId", "host": ["{{base_url}}"], "path": ["api", "v1", "orchestrator", "campaigns", ":campaignId"], "variable": [ { "key": "campaignId", "value": "camp_123456789" } ] } } }, { "name": "Execute Campaign", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"test\": false\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/orchestrator/campaigns/:campaignId/execute", "host": ["{{base_url}}"], "path": ["api", "v1", "orchestrator", "campaigns", ":campaignId", "execute"], "variable": [ { "key": "campaignId", "value": "camp_123456789" } ] } } }, { "name": "Get Campaign Statistics", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/orchestrator/campaigns/:campaignId/statistics?dateRange=last7days", "host": ["{{base_url}}"], "path": ["api", "v1", "orchestrator", "campaigns", ":campaignId", "statistics"], "query": [ { "key": "dateRange", "value": "last7days" } ], "variable": [ { "key": "campaignId", "value": "camp_123456789" } ] } } }, { "name": "Delete Campaign", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{base_url}}/api/v1/orchestrator/campaigns/:campaignId", "host": ["{{base_url}}"], "path": ["api", "v1", "orchestrator", "campaigns", ":campaignId"], "variable": [ { "key": "campaignId", "value": "camp_123456789" } ] } } } ] }, { "name": "Scheduled Campaigns", "item": [ { "name": "List Scheduled Campaigns", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/scheduler/scheduled-campaigns?status=active&type=recurring", "host": ["{{base_url}}"], "path": ["api", "v1", "scheduler", "scheduled-campaigns"], "query": [ { "key": "status", "value": "active" }, { "key": "type", "value": "recurring" } ] } } }, { "name": "Create Schedule", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"campaignId\": \"camp_123456789\",\n \"name\": \"Daily Morning Newsletter\",\n \"description\": \"Send newsletter every morning at 9 AM\",\n \"type\": \"recurring\",\n \"schedule\": {\n \"startDateTime\": \"2024-01-15T09:00:00Z\",\n \"recurring\": {\n \"pattern\": \"daily\",\n \"frequency\": {\n \"interval\": 1,\n \"unit\": \"day\"\n },\n \"time\": \"09:00\",\n \"timezone\": \"America/New_York\"\n }\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/scheduler/scheduled-campaigns", "host": ["{{base_url}}"], "path": ["api", "v1", "scheduler", "scheduled-campaigns"] } } }, { "name": "Pause Schedule", "request": { "method": "POST", "header": [], "url": { "raw": "{{base_url}}/api/v1/scheduler/scheduled-campaigns/:scheduleId/pause", "host": ["{{base_url}}"], "path": ["api", "v1", "scheduler", "scheduled-campaigns", ":scheduleId", "pause"], "variable": [ { "key": "scheduleId", "value": "sched_123456789" } ] } } }, { "name": "Resume Schedule", "request": { "method": "POST", "header": [], "url": { "raw": "{{base_url}}/api/v1/scheduler/scheduled-campaigns/:scheduleId/resume", "host": ["{{base_url}}"], "path": ["api", "v1", "scheduler", "scheduled-campaigns", ":scheduleId", "resume"], "variable": [ { "key": "scheduleId", "value": "sched_123456789" } ] } } } ] }, { "name": "Users", "item": [ { "name": "List Users", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/users?page=1&limit=20&status=active", "host": ["{{base_url}}"], "path": ["api", "v1", "users"], "query": [ { "key": "page", "value": "1" }, { "key": "limit", "value": "20" }, { "key": "status", "value": "active" }, { "key": "search", "value": "john", "disabled": true } ] } } }, { "name": "Create User", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"telegramId\": \"123456789\",\n \"username\": \"johndoe\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"phoneNumber\": \"+1234567890\",\n \"languageCode\": \"en\",\n \"tags\": [\"customer\", \"active\"],\n \"customFields\": {\n \"company\": \"Acme Corp\",\n \"subscription\": \"premium\"\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/users", "host": ["{{base_url}}"], "path": ["api", "v1", "users"] } } }, { "name": "Import Users", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "file", "type": "file", "src": "/path/to/users.csv" }, { "key": "updateExisting", "value": "true", "type": "text" }, { "key": "defaultTags", "value": "[\"imported\", \"newsletter\"]", "type": "text" } ] }, "url": { "raw": "{{base_url}}/api/v1/users/import", "host": ["{{base_url}}"], "path": ["api", "v1", "users", "import"] } } }, { "name": "Export Users", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"format\": \"csv\",\n \"filters\": {\n \"status\": \"active\",\n \"tags\": [\"customer\"]\n },\n \"fields\": [\"telegramId\", \"username\", \"firstName\", \"lastName\", \"tags\", \"createdAt\"]\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/users/export", "host": ["{{base_url}}"], "path": ["api", "v1", "users", "export"] } } }, { "name": "Bulk Update Users", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"userIds\": [\"user_123\", \"user_456\", \"user_789\"],\n \"updates\": {\n \"addTags\": [\"vip\", \"2024-campaign\"],\n \"removeTags\": [\"inactive\"],\n \"customFields\": {\n \"lastCampaign\": \"Summer Sale 2024\"\n }\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/users/bulk", "host": ["{{base_url}}"], "path": ["api", "v1", "users", "bulk"] } } } ] }, { "name": "Segments", "item": [ { "name": "List Segments", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/segments", "host": ["{{base_url}}"], "path": ["api", "v1", "segments"] } } }, { "name": "Create Segment", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"name\": \"Active Premium Users\",\n \"description\": \"Users who are premium subscribers and active in the last 7 days\",\n \"criteria\": [\n {\n \"field\": \"tags\",\n \"operator\": \"contains\",\n \"value\": \"premium\",\n \"logic\": \"AND\"\n },\n {\n \"field\": \"engagement.lastActivity\",\n \"operator\": \"greater_than\",\n \"value\": \"7d\"\n }\n ],\n \"isDynamic\": true\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/segments", "host": ["{{base_url}}"], "path": ["api", "v1", "segments"] } } }, { "name": "Preview Segment", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"criteria\": [\n {\n \"field\": \"tags\",\n \"operator\": \"contains\",\n \"value\": \"newsletter\"\n }\n ]\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/segments/preview", "host": ["{{base_url}}"], "path": ["api", "v1", "segments", "preview"] } } }, { "name": "Get Segment Users", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/segments/:segmentId/users", "host": ["{{base_url}}"], "path": ["api", "v1", "segments", ":segmentId", "users"], "variable": [ { "key": "segmentId", "value": "seg_123456789" } ] } } } ] }, { "name": "Analytics", "item": [ { "name": "Campaign Analytics", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/analytics/campaigns?dateRange=last30days", "host": ["{{base_url}}"], "path": ["api", "v1", "analytics", "campaigns"], "query": [ { "key": "dateRange", "value": "last30days" } ] } } }, { "name": "User Analytics", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/analytics/users?metrics=growth,engagement", "host": ["{{base_url}}"], "path": ["api", "v1", "analytics", "users"], "query": [ { "key": "metrics", "value": "growth,engagement" } ] } } }, { "name": "Real-time Dashboard", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/analytics/dashboard", "host": ["{{base_url}}"], "path": ["api", "v1", "analytics", "dashboard"] } } } ] }, { "name": "Templates", "item": [ { "name": "List Templates", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/templates?category=promotional", "host": ["{{base_url}}"], "path": ["api", "v1", "templates"], "query": [ { "key": "category", "value": "promotional" } ] } } }, { "name": "Create Template", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"name\": \"Welcome Message\",\n \"category\": \"onboarding\",\n \"content\": {\n \"en\": \"Welcome {{firstName}}! 🎉 Thank you for joining us.\",\n \"es\": \"¡Bienvenido {{firstName}}! 🎉 Gracias por unirte a nosotros.\"\n },\n \"variables\": [\"firstName\"],\n \"isActive\": true\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/templates", "host": ["{{base_url}}"], "path": ["api", "v1", "templates"] } } } ] }, { "name": "Webhooks", "item": [ { "name": "List Webhooks", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/webhooks", "host": ["{{base_url}}"], "path": ["api", "v1", "webhooks"] } } }, { "name": "Create Webhook", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"name\": \"Campaign Events\",\n \"url\": \"https://your-server.com/webhooks/campaigns\",\n \"events\": [\"campaign.completed\", \"campaign.failed\", \"user.converted\"],\n \"headers\": {\n \"X-Webhook-Secret\": \"your-secret-key\"\n },\n \"isActive\": true\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/webhooks", "host": ["{{base_url}}"], "path": ["api", "v1", "webhooks"] } } }, { "name": "Test Webhook", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"event\": \"campaign.completed\",\n \"payload\": {\n \"campaignId\": \"camp_test_123\",\n \"name\": \"Test Campaign\"\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/webhooks/:webhookId/test", "host": ["{{base_url}}"], "path": ["api", "v1", "webhooks", ":webhookId", "test"], "variable": [ { "key": "webhookId", "value": "webhook_123456789" } ] } } } ] }, { "name": "System", "item": [ { "name": "Health Check", "request": { "auth": { "type": "noauth" }, "method": "GET", "header": [], "url": { "raw": "{{base_url}}/health", "host": ["{{base_url}}"], "path": ["health"] } } }, { "name": "Service Health", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/v1/health/services", "host": ["{{base_url}}"], "path": ["api", "v1", "health", "services"] } } }, { "name": "Metrics", "request": { "auth": { "type": "noauth" }, "method": "GET", "header": [], "url": { "raw": "{{base_url}}/metrics", "host": ["{{base_url}}"], "path": ["metrics"] } } }, { "name": "Create Backup", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"includeUsers\": true,\n \"includeCampaigns\": true,\n \"includeAnalytics\": true,\n \"compression\": true\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/v1/backup", "host": ["{{base_url}}"], "path": ["api", "v1", "backup"] } } } ] } ], "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "// Set default headers", "pm.request.headers.add({", " key: 'Content-Type',", " value: 'application/json'", "});", "", "// Add request ID", "pm.request.headers.add({", " key: 'X-Request-ID',", " value: pm.variables.replaceIn('{{$guid}}')", "});" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "// Log response time", "console.log(`Response time: ${pm.response.responseTime}ms`);", "", "// Check for common errors", "if (pm.response.code >= 400) {", " const jsonData = pm.response.json();", " console.error(`Error: ${jsonData.error || jsonData.message}`);", "}" ] } } ] }