Lobby Partner API Specification (v1)
The Lobby Partner API allows enterprise portals, marketing automation tools, and multi-location hospitality franchises to trigger hyper-local TikTok & Instagram creator discovery programmatically.
Architecture & Lifecycle
Authentication
All requests require a secret Bearer token in the Authorization header. Partner tokens are provisioned by the Lobby team.
/discovery
1. Initiate Campaign Discovery
Creates a new asynchronous creator discovery campaign and triggers AI topic decomposition and search execution.
Request Body (JSON)
{
"partner_request_id": "REQ-2026-08-9921",
"product_description": "Artisanal espresso bar and specialty single-origin coffee roastery",
"target_location": {
"city": "Austin",
"state": "Texas",
"country": "US"
},
"search_criteria": {
"topics": ["austin coffee", "austin barista", "atx foodies"],
"language": "en"
},
"raw_search_query": "Specialty coffee shops and baristas in Austin TX",
"callback_url": "https://partner-system.com/webhooks/lobby-results"
}
| Field | Type | Required | Description |
|---|---|---|---|
| partner_request_id | string | Yes | Unique idempotency key from partner system. |
| product_description | string | No | Brand, offering, or hotel description used by AI for topic expansion. |
| target_location | object | Yes | Geographical anchor (city, state, country). |
| search_criteria.topics | string[] | No | Optional seed topics/hashtags supplied by partner. |
| callback_url | string | Yes | Destination HTTPS endpoint to receive webhook payload upon completion. |
Response (202 Accepted)
{
"status": "accepted",
"insightarc_job_id": "arc_job_42"
}
/jobs/{insightarc_job_id}
2. Check Job Status
Polls the execution lifecycle of an active discovery job.
Response (200 OK)
{
"status": "SCRAPING",
"insightarc_job_id": "arc_job_42",
"campaign_id": 42
}
- • ANALYZING_CONTEXT: Gemini AI is analyzing the brief and decomposing search topics.
- • VALIDATING_TOPICS: Hardware connector is validating real hashtag volume.
- • SCRAPING: Live creator profiles and videos are actively being ingested.
- • COMPLETED: Discovery finished and results pushed to webhook.
/campaigns/{campaign_id}/topics
3. Fetch Generated Topics for Campaign
Retrieves the decomposed, validated search topics generated for a specific campaign.
[
{
"id": 101,
"topic": "austin coffee",
"position": 1,
"approval_status": "approved",
"source": "ai",
"is_valid": true,
"validation_status": "valid"
},
{
"id": 102,
"topic": "austin barista life",
"position": 2,
"approval_status": "approved",
"source": "ai",
"is_valid": false,
"validation_status": "invalid"
}
]
POST {callback_url}
4. Webhook Delivery Schema
When discovery completes, Lobby sends a JSON payload to your callback_url containing verified creator profiles, emails, metrics, and qualification details.
{
"event": "discovery.completed",
"partner_request_id": "REQ-2026-08-9921",
"insightarc_job_id": "arc_job_42",
"creators": [
{
"handle": "@atxcoffeelover",
"display_name": "Austin Coffee Guide",
"profile_url": "https://www.tiktok.com/@atxcoffeelover",
"followers_count": 18400,
"likes_count": 320000,
"bio": "Exploring the best espresso in ATX ☕ collab: contact@atxcoffee.com",
"detected_email": "contact@atxcoffee.com",
"extra_contacts": {
"instagram": "atxcoffeelover",
"linktree": "https://linktr.ee/atxcoffee"
},
"qualification": {
"is_local": true,
"is_corporate": false,
"matched_topics": ["austin coffee", "austin barista life"]
}
}
],
"total_creators_found": 18,
"completed_at": "2026-08-25T14:30:00Z"
}
HTTP Status Codes & Error Handling
| Status Code | Meaning | Resolution |
|---|---|---|
| 202 Accepted | Job accepted for background execution. | Capture insightarc_job_id and await webhook. |
| 401 Unauthorized | Missing or invalid Bearer token. | Verify PARTNER_API_TOKEN with operations team. |
| 422 Unprocessable | Validation error in request schema. | Check required fields (target_location.city, callback_url). |
| 429 Too Many Requests | Rate limit reached. | Implement exponential backoff. |