API Reference
Base URL: http://localhost/AutoPromote/api/v1
Authentication
POST
/auth/login
Public
Authenticate user and receive access token
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Yes | User email address | |
| password | string | Yes | User password |
{
"email": "user@example.com",
"password": "securepassword"
}
Response
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": 1,
"name": "John Doe",
"email": "user@example.com",
"role": "user"
}
}
Campaigns
GET
/campaigns
Auth Required
Get all campaigns for authenticated user
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | No | Page number (default: 1) |
| limit | integer | No | Items per page (default: 10) |
| status | string | No | Filter by status (active, paused, completed) |
POST
/campaigns
Auth Required
Create a new campaign
{
"name": "Summer Sale Campaign",
"product_id": 123,
"budget": 1000,
"start_date": "2024-06-01",
"end_date": "2024-08-31",
"target_audience": ["25-34", "interests:fitness"],
"channels": ["facebook", "google", "email"]
}
PUT
/campaigns/{id}
Auth Required
Update campaign details
DELETE
/campaigns/{id}
Auth Required
Delete a campaign
Analytics
GET
/analytics/dashboard
Auth Required
Get dashboard analytics data
Response
{
"overview": {
"total_campaigns": 15,
"active_campaigns": 8,
"total_revenue": 45678.90,
"total_clicks": 12345,
"conversion_rate": 3.45
},
"performance": {
"daily": [...],
"weekly": [...],
"monthly": [...]
},
"top_campaigns": [...],
"traffic_sources": [...]
}
GET
/analytics/campaigns/{id}
Auth Required
Get detailed analytics for a specific campaign
Products
GET
/products/search
Auth Required
Search for affiliate products
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | Yes | Search query |
| category | string | No | Product category |
| min_price | float | No | Minimum price |
| max_price | float | No | Maximum price |
| network | string | No | Affiliate network (amazon, clickbank, etc) |
Webhooks
POST
/webhooks
Auth Required
Register a new webhook endpoint
{
"url": "https://your-app.com/webhook",
"events": ["campaign.created", "campaign.completed", "conversion.tracked"],
"headers": {
"X-Custom-Header": "value"
}
}
Response
{
"success": true,
"webhook_id": "whk_abc123",
"secret": "whsec_xyz789",
"status": "active"
}
Rate Limiting
The API enforces rate limiting to ensure fair usage:
- 100 requests per minute for authenticated users
- 20 requests per minute for unauthenticated requests
- Rate limit information is included in response headers
X-RateLimit-Limit: 100 X-RateLimit-Remaining: 95 X-RateLimit-Reset: 1623456789
Error Responses
All error responses follow a consistent format:
{
"success": false,
"error": {
"code": "INVALID_REQUEST",
"message": "The request parameters are invalid",
"details": {
"field": "email",
"reason": "Invalid email format"
}
}
}
Common Error Codes
| Code | HTTP Status | Description |
|---|---|---|
| UNAUTHORIZED | 401 | Authentication required |
| FORBIDDEN | 403 | Access denied |
| NOT_FOUND | 404 | Resource not found |
| RATE_LIMITED | 429 | Too many requests |
| SERVER_ERROR | 500 | Internal server error |