All endpoints are prefixed with /wp-json/influenzic/v1/. All requests require authentication unless otherwise noted.
Campaigns
GET /campaigns
Returns a paginated list of campaigns.
GET /wp-json/influenzic/v1/campaigns?page=1&per_page=20&status=active&platform=instagram
Query parameters: page, per_page, status (active|paused|cancelled), platform (instagram|tiktok|youtube), niche, rate_type (fixed|range)
GET /campaigns/browse
Returns publicly active, discoverable campaigns for the influencer discovery portal with location matching, capacity checks, and engagement exclusion.
GET /wp-json/influenzic/v1/campaigns/browse?page=1&per_page=24&platform=instagram&open_slots_only=1&hide_engaged=1
Query parameters:
| Parameter | Type | Description |
|---|---|---|
page |
integer | Current page number (default: 1). |
per_page |
integer | Results per page (allowed: 12, 24, 48, 96). |
search |
string | Keyword search matching campaign title and brief description. |
platform |
string | Target platform slug (instagram, tiktok, youtube). |
location |
string | ISO country code or global for worldwide campaigns. |
min_followers |
integer | Maximum creator audience threshold required by the brief. |
deadline_days |
integer | Filter by closing window (e.g. 3, 7, 14, 30 days). |
delivery_days |
integer | Maximum required content delivery timeline in days. |
budget_min / budget_max |
float | Numeric compensation filters. |
rate_type |
string | Compensation model: fixed or negotiable. |
open_slots_only |
boolean | When 1 or true, returns only campaigns with remaining openings (capacity > 0). |
hide_engaged |
boolean | When 1 or true, automatically excludes campaigns the authenticated influencer has already applied to or been invited to. |
categories[] |
array | Array of category term IDs to filter by niche. |
GET /campaigns/{id}
Returns a single campaign by ID.
GET /wp-json/influenzic/v1/campaigns/123
POST /campaigns
Creates a new campaign (brand only).
POST /wp-json/influenzic/v1/campaigns
{
"name": "Summer Beauty Campaign",
"platform": "instagram",
"compensation_type": "fixed",
"rate": 15000,
"slots": 10,
"brief": "We are looking for beauty influencers...",
"niche": "beauty",
"deliverables": [
{ "type": "post", "count": 1 },
{ "type": "story", "count": 3 }
]
}
Note: rate is in minor currency units (cents). $150.00 = 15000.
Influencers
GET /influencers
Search and filter influencers (admin or brand only).
GET /wp-json/influenzic/v1/influencers?platform=instagram&niche=beauty&min_followers=10000&country=NG&level=pro
Query parameters: platform, niche, min_followers, max_followers, country, gender, level (level1|level2|level3|pro|top), available (1 to exclude holiday mode)
GET /influencers/{user_id}
Returns a single influencer’s public profile data.
Projects
GET /projects
Lists projects for the authenticated user (brands see their campaigns’ projects; influencers see their own projects).
GET /wp-json/influenzic/v1/projects?status=active&campaign_id=123
Query parameters: status (active|pending-review|approved|posted|completed|disputed|cancelled), campaign_id
GET /projects/{id}
Returns full project detail including deliverables, timeline, and negotiation history.
Wallet
GET /wallet
Returns the authenticated user’s wallet balances.
{
"total_balance": 50000,
"available_balance": 35000,
"frozen_balance": 15000,
"currency": "USD"
}
GET /wallet/transactions
Paginated transaction ledger for the authenticated user.
/wp-json/influenzic/v1/schema when accessed with admin credentials.