Campaigns API

The Campaigns API provides endpoints for managing marketing campaigns, tasks, and related functionality.

App Endpoints

Note

Please note that App Endpoints are not available through the API.

They require an application to be created in the backend admin, this application will retrieve full views using a client id and secret, not structured data.

Get Leaderboard

Retrieve the leaderboard for campaigns.

POST /api/get/leaderboard/

Request Body:

campaign_id=123

Response:

{
  "leaderboard": [
    {
      "user_id": 456,
      "username": "influencer1",
      "score": 1500,
      "rank": 1,
      "completed_tasks": 15
    }
  ]
}

Get Campaigns

Retrieve a list of available campaigns.

POST /api/get/campaigns/

Request Body:

filter=active
category=fashion
network=instagram

Response:

{
  "campaigns": [
    {
      "id": 123,
      "type": "influencer",
      "name": "Summer Fashion Campaign",
      "tagline": "Show off your summer style",
      "description": "Promote our latest summer collection",
      "image_logo": "https://example.com/logo.jpg",
      "image_post": "https://example.com/post.jpg",
      "hashtags": ["#summer", "#fashion"],
      "date_end": {
        "year": 2024,
        "month": 8,
        "day": 31,
        "hour": 23,
        "minute": 59,
        "second": 59
      },
      "networks": ["instagram", "facebook"],
      "currency": "USD",
      "tasks": {
        "time": 72,
        "time_type": "hours",
        "bonus": {
          "active": true,
          "promo_reach": 50,
          "promo_engagement_rate": 25,
          "promo_best_post": 100
        },
        "minimum_reward": 25
      },
      "tasks_featured": true,
      "tasks_leaderboard": true
    }
  ]
}

Get Campaign

Retrieve detailed information about a specific campaign.

POST /api/get/campaign/

Request Body:

id=123

Response:

{
  "id": 123,
  "type": "influencer",
  "name": "Summer Fashion Campaign",
  "tagline": "Show off your summer style",
  "description": "Promote our latest summer collection",
  "image_logo": "https://example.com/logo.jpg",
  "image_post": "https://example.com/post.jpg",
  "hashtags": ["#summer", "#fashion"],
  "date_end": {
    "year": 2024,
    "month": 8,
    "day": 31,
    "hour": 23,
    "minute": 59,
    "second": 59
  },
  "networks": ["instagram", "facebook"],
  "currency": "USD",
  "tasks": {
    "time": 72,
    "time_type": "hours",
    "bonus": {
      "active": true,
      "promo_reach": 50,
      "promo_engagement_rate": 25,
      "promo_best_post": 100
    },
    "minimum_reward": 25
  },
  "tasks_featured": true,
  "tasks_leaderboard": true,
  "publisher": {
    "social_users_available": {
      "instagram": true,
      "facebook": false
    },
    "social_pages_available": {
      "instagram": true,
      "facebook": true
    },
    "social_walls_available": {
      "instagram": false,
      "facebook": true
    },
    "social_channels_available": {
      "instagram": false,
      "facebook": false
    }
  },
  "attachment": "https://example.com/attachment.pdf"
}

Get Tasks

Retrieve tasks for a specific campaign.

POST /api/get/tasks/

Request Body:

campaign_id=123

Response:

{
  "tasks": [
    {
      "id": 456,
      "type": "post",
      "title": "Create Instagram Post",
      "description": "Post about our summer collection",
      "requirements": "Include hashtags and tag our brand",
      "deadline": "2024-08-31T23:59:59Z",
      "status": "pending",
      "bonus": {
        "reach": 50,
        "engagement_rate": 25,
        "best_post": 100
      },
      "payments": {
        "minimum": 25,
        "post": 30,
        "total": 30
      },
      "info": {
        "title": "Task Requirements",
        "content": "Detailed task requirements..."
      },
      "campaign": {
        "id": 123,
        "name": "Summer Fashion Campaign",
        "type": "influencer",
        "tagline": "Show off your summer style",
        "description": "Promote our latest summer collection",
        "image_logo": "https://example.com/logo.jpg",
        "image_post": "https://example.com/post.jpg",
        "hashtags": ["#summer", "#fashion"],
        "date_end": {
          "year": 2024,
          "month": 8,
          "day": 31,
          "hour": 23,
          "minute": 59,
          "second": 59
        },
        "date_end_text": "August 31, 2024 - 23:59:59",
        "networks": ["instagram", "facebook"],
        "currency": "USD"
      }
    }
  ]
}

Campaign Actions

Join Campaign

Join a campaign as an influencer.

POST /api/action/campaign/join/

Request Body:

{
  "campaign_id": 123
}

Response:

{
  "status": "success",
  "message": "Successfully joined campaign"
}

Task Actions

Complete Task

Mark a task as completed.

POST /api/action/task/complete/

Request Body:

task_id=456
post_url=https://instagram.com/p/example
screenshots=https://example.com/screenshot1.jpg

Response:

{
  "status": "success",
  "message": "Task completed successfully",
  "payment": 30
}

Leave Task

Leave a task (cancel participation).

POST /api/action/task/leave/

Request Body:

task_id=456

Response:

{
  "status": "success",
  "message": "Task left successfully"
}

Network Approval

Submit network for approval.

POST /api/action/network/approval/

Request Body:

network_type=instagram
network_id=user123
network_url=https://instagram.com/user123

Response:

{
  "status": "success",
  "message": "Network submitted for approval"
}

Public Campaigns

Get Public Campaigns

Retrieve public campaigns (no authentication required).

POST /api/get/public/campaigns/

Request Body:

filter=active
category=fashion

Response:

{
  "campaigns": [
    {
      "id": 123,
      "name": "Summer Fashion Campaign",
      "tagline": "Show off your summer style",
      "image_logo": "https://example.com/logo.jpg",
      "networks": ["instagram", "facebook"],
      "currency": "USD",
      "minimum_reward": 25
    }
  ]
}

Backend Endpoints

Note

Backend Endpoints are available through the API with a Bearer token.

Campaigns List

Get All Campaigns

Retrieve a list of all campaigns with detailed information.

POST /api/campaigns/

Request Body:

This endpoint accepts one of three mutually exclusive parameter options:

Option 1: Filter by Advertiser

advertiser_id=1

Returns all campaigns created by the specified advertiser.

Option 2: Filter by User

user_id=149

Returns all campaigns available to the specified user.

Option 3: All Campaigns

(No parameters)

Returns all campaigns in the system.

Note

Only one parameter option can be used at a time. If multiple parameters are provided, the behavior is advertiser takes precedence.

Response:

[
  {
    "id": 1,
    "type": "standard",
    "name": "campaign name",
    "tagline": "Tagline",
    "description": "<p>Test descriptions for the show us your pet campaign</p><p>Requirements</p><ul><li>1 pet per post</li><li>make it during daytime</li><li>no harm can come to the pet</li><li>be creative</li></ul>",
    "image_logo": "/static/media/campaigns/advertiser_1/2025-07-14__08-07-06__bdefault_campaign_base.jpg",
    "image_post": "/static/media/campaigns/advertiser_1/2025-07-14__08-07-06__bistockphoto-536315459-612x612.jpg",
    "hashtags": [
      "hashtag"
    ],
    "date_end": {
      "year": 2025,
      "month": 7,
      "day": 16,
      "hour": 16,
      "minute": 14,
      "second": 34
    },
    "networks": [
      "facebook",
      "instagram"
    ],
    "currency": "USD",
    "tasks": {
      "time": 24,
      "time_type": "hours",
      "bonus": {
        "active": true,
        "promo_reach": 0.0,
        "promo_engagement_rate": 0.0,
        "promo_best_post": 0.0
      },
      "minimum_reward": 100.0
    },
    "tasks_featured": [],
    "tasks_leaderboard": [],
    "publisher": {
      "social_users_available": {},
      "social_pages_available": {},
      "social_walls_available": {},
      "social_channels_available": {},
      "social_extras_available": {}
    }
  }
]

Task List

Retrieve a list of all tasks for a specific campaign.

POST /api/tasks/

Request Body:

** Option 1: Filter by Campaign**

campaign_id=123

Returns all tasks for the specified campaign.

** Option 2: Filter by Advertiser**

advertiser_id=1

Returns all tasks for the specified advertiser.

** Option 2: Filter by Status**

status=rejected
status=accepted
status=pending
status=under_review
status=paid

Returns all tasks with the specified status.

** Option 4: All Tasks**

(No parameters)

Returns all tasks in the system.

Note

Only one parameter option can be used at a time. If multiple parameters are provided, the behavior is advertiser takes precedence.

Response:

[
  {
    "id": 13,
    "type": "Profile: John Smith",
    "networks": [
      "facebook"
    ],
    "status": "accepted",
    "status_name": "Accepted",
    "media": {
      "url": "https://domain.com/static/media/campaigns/advertiser_1/campaign_30_task_13__518399733_455624556235_6872532075791311775_n.jpg",
      "link": "https://www.facebook.com/455624556235/posts/10166012740139478"
    },
    "allow_complete": false,
    "allow_leave": false,
    "allow_countdown": false,
    "allow_payments": true,
    "allow_bonus": false,
    "is_disabled": true,
    "is_allowed_complete": false,
    "date_completed_minimum": "July 07, 2025 - 20:11:08",
    "date_completed_maximum": "July 07, 2025 - 20:11:06",
    "date_end": {
      "year": 2025,
      "month": 7,
      "day": 23,
      "hour": 20,
      "minute": 10,
      "second": 6
    },
    "bonus": {
      "reach": false,
      "engagement_rate": false,
      "best_post": false
    },
    "payments": {
      "minimum": 2.82,
      "post": 0.0,
      "total": 0.0
    },
    "campaign": {
      "id": 30,
      "name": "#Fridayvibes",
      "type": "standard",
      "tagline": "Friday Vibes",
      "description": "<p>Requirements:</p><ul><li>Post a Friday activity</li><li>During night</li></ul><p><br></p>",
      "image_logo": "https://domain.com/static/media/campaigns/advertiser_1/2025-07-22__11-07-37__bfri2.jpg",
      "image_post": "https://domain.com/static/media/campaigns/advertiser_1/2025-07-22__11-07-37__bfday.jpg",
      "hashtags": [
        "Fridayvibes"
      ],
      "date_end": {
        "year": 2025,
        "month": 7,
        "day": 30,
        "hour": 19,
        "minute": -1,
        "second": 0
      },
      "date_end_text": "July 07, 2025 - 19:00:00",
      "networks": [
        "facebook"
      ],
      "currency": "USD",
      "tasks": {
        "bonus": {
          "active": true,
          "promo_reach": 0.0,
          "promo_engagement_rate": 0.0,
          "promo_best_post": 0.0
        },
        "minimum_reward": 2.82
      }
    }
  }
]

Advertiser id

Retrieve the advertiser id using the email address.

POST /api/advertiser/check/

Request Body:

email=advertiser_dev@taglife.dev

Response:

{
  "id": 1,
  "message": "Advertiser already exists"
}

User id

Retrieve the user id using the email address.

POST /api/user/check/

Request Body:

email=user@example.com

Response:

{
  "id": 123,
  "message": "User already exists"
}

Advertiser Statistics

Financial Statistics

POST /api/advertiser/stats/financial/

Request Body:

advertiser_id=123
date_from=2024-01-01
date_to=2024-12-31

Response:

{
  "total_spent": 5000,
  "total_campaigns": 10,
  "average_cpm": 25,
  "currency": "USD"
}

Maximum Limit

POST /api/advertiser/maximum-limit/

Request Body:

advertiser_id=123

Response:

{
  "maximum_limit": 10000,
  "currency": "USD"
}

Invoices

POST /api/advertiser/invoices/

Request Body:

advertiser_id=123
invoice_status=paid
date_from=2024-01-01
date_to=2024-12-31

Response:

{
  "invoices": [
    {
      "id": 789,
      "amount": 500,
      "currency": "USD",
      "date": "2024-08-01",
      "status": "paid"
    }
  ]
}

Campaign Statistics

General Statistics

POST /api/campaigns/stats/general/

Request Body:

{
  "date_from": "2024-01-01",
  "date_to": "2024-12-31"
}

Response:

{
  "total_campaigns": 50,
  "active_campaigns": 15,
  "completed_campaigns": 30,
  "pending_campaigns": 5
}

Status Statistics

POST /api/campaigns/stats/status/

Response:

{
  "draft": 5,
  "pending": 10,
  "active": 15,
  "paused": 3,
  "completed": 30,
  "cancelled": 2
}

Network Statistics

POST /api/campaigns/stats/networks/

Response:

{
  "instagram": 25,
  "facebook": 20,
  "twitter": 10,
  "tiktok": 5
}

Single Campaign Statistics

Network Statistics

POST /api/campaign/stats/networks/

Request Body:

campaign_id=123

Response:

{
  "instagram": {
    "posts": 50,
    "reach": 10000,
    "engagement": 500
  },
  "facebook": {
    "posts": 30,
    "reach": 8000,
    "engagement": 400
  }
}

Cost Statistics

POST /api/campaign/stats/costs/

Request Body:

campaign_id=123

Response:

{
  "total_spent": 2500,
  "average_cpm": 25,
  "currency": "USD"
}

Campaign Management

Settings

POST /api/campaign/settings/

Request Body:

campaign_id=123&settings[post_rate]=30&settings[has_bonus]=true&settings[promo_reach_bonus]=50

Response:

{
  "status": "success",
  "message": "Settings updated successfully"
}

Status

POST /api/campaign/status/

Request Body:

campaign_id=123&status=active

Response:

{
  "status": "success",
  "message": "Campaign status updated"
}

Pre-register

POST /api/campaign/pre-register/

Request Body:

campaign_id=123

Response:

{
  "status": "success",
  "message": "Campaign pre-registered"
}

Post-register

POST /api/campaign/post-register/

Request Body:

campaign_id=123

Response:

{
  "status": "success",
  "message": "Campaign post-registered"
}

Publisher Statistics

Status Statistics

POST /api/publishers/stats/status/

Response:

{
  "active": 150,
  "inactive": 50,
  "suspended": 10
}

Activity Statistics

POST /api/publishers/stats/activity/

Request Body:

date_from=2024-01-01
date_to=2024-12-31

Response:

{
  "total_posts": 500,
  "total_reach": 100000,
  "total_engagement": 5000
}

User Management

Status

POST /api/user/status/

Request Body:

user_id=456

Response:

{
  "status": "active",
  "joined_date": "2024-01-01",
  "total_campaigns": 10
}

Ban Status

POST /api/user/status/ban/

Request Body:

user_id=456
banned=true
reason=Violation of terms

Response:

{
  "status": "success",
  "message": "User ban status updated"
}

Notifications

POST /api/user/notification/

Request Body:

user_id=456
message=New campaign available
type=campaign

Response:

{
  "status": "success",
  "message": "Notification sent"
}

Force Logout

POST /api/user/force-logout/

Request Body:

user_id=456

Response:

{
  "status": "success",
  "message": "User logged out"
}

Custom Social Wall

POST /api/user/add-custom-social-wall/

Request Body:

user_id=456
wall_url=https://example.com/wall
network=instagram

Response:

{
  "status": "success",
  "message": "Custom social wall added"
}

Task Management

Status

POST /api/task/status/

Request Body:

task_id=456

Response:

{
  "status": "pending",
  "assigned_date": "2024-08-01",
  "deadline": "2024-08-31"
}

Payments

POST /api/task/payments/

Request Body:

task_id=456

Response:

{
  "payment": 30,
  "payment_post": 25,
  "payment_bonus_reach": 5,
  "currency": "USD"
}

Actions

POST /api/task/actions/

Request Body:

{
  "task_id": 456,
  "action": "approve"
}

Response:

{
  "status": "success",
  "message": "Task approved"
}

Custom Tasks

POST /api/task/custom/

Request Body:

{
  "campaign_id": 123,
  "title": "Custom Task",
  "description": "Custom task description",
  "requirements": "Custom requirements"
}

Response:

{
  "status": "success",
  "task_id": 789,
  "message": "Custom task created"
}

User Statistics

Sex Statistics

POST /api/users/stats/sex/

Response:

{
  "male": 60,
  "female": 40
}

Age Statistics

POST /api/users/stats/age/

Response:

{
  "18-24": 30,
  "25-34": 40,
  "35-44": 20,
  "45+": 10
}

Preferences Statistics

POST /api/users/stats/preferences/

Response:

{
  "fashion": 25,
  "beauty": 20,
  "technology": 15,
  "food": 10,
  "travel": 10,
  "other": 20
}

General Statistics

Pending Statistics

POST /api/general/stats/pending/

Response:

{
  "pending_campaigns": 5,
  "pending_tasks": 50,
  "pending_approvals": 20
}

Financial Statistics

POST /api/general/stats/financial/

Request Body:

{
  "date_from": "2024-01-01",
  "date_to": "2024-12-31"
}

Response:

{
  "total_revenue": 10000,
  "total_payouts": 8000,
  "currency": "USD"
}

Estimated Publishers

POST /api/general/stats/estimated-publishers/

Response:

{
  "estimated_publishers": 500,
  "active_publishers": 300
}

Potential Publishers

POST /api/general/stats/potential-publishers/

Response:

{
  "potential_publishers": 200,
  "conversion_rate": 0.4
}

Lists

Locations

POST /api/general/lists/locations/

Response:

{
  "countries": [
    {
      "id": 1,
      "name": "United States",
      "cities": [
        {
          "id": 1,
          "name": "New York"
        }
      ]
    }
  ]
}

Advertisers

POST /api/general/lists/advertisers/

Response:

{
  "advertisers": [
    {
      "id": 1,
      "name": "Fashion Brand",
      "email": "contact@fashionbrand.com"
    }
  ]
}

Allowed Countries

POST /api/general/lists/allowed-countries/

Response:

{
  "countries": [
    {
      "id": 1,
      "name": "United States",
      "currency_code": "USD"
    }
  ]
}

Allowed Cities

POST /api/general/lists/allowed-cities/

Response:

{
  "cities": [
    {
      "id": 1,
      "name": "New York"
    }
  ]
}

Allowed Categories

POST /api/general/lists/allowed-categories/

Response:

{
  "categories": [
    {
      "id": 1,
      "name": "Fashion"
    }
  ]
}

Allowed Campaigns

POST /api/general/lists/allowed-campaigns/

Response:

{
  "campaigns": [
    {
      "id": 123,
      "name": "Summer Fashion Campaign"
    }
  ]
}

Tools

Exchange Rate

POST /api/general/tools/exchange/

Request Body:

{
  "from": "USD",
  "to": "EUR",
  "amount": 100
}

Response:

{
  "base": 100,
  "exchange": 85.50
}

Check User

POST /api/general/tools/check-user/

Request Body:

{
  "user_id": 456
}

Response:

{
  "exists": true,
  "status": "active",
  "joined_date": "2024-01-01"
}

User Ban

POST /api/general/tools/user-ban/

Request Body:

{
  "user_id": 456,
  "banned": true,
  "reason": "Violation of terms"
}

Response:

{
  "status": "success",
  "message": "User ban status updated"
}