API reference
Complete documentation for all Jungler Public API endpoints.
Last updated 8 months ago
Base URL
https://production.viacurrent.com/apiAuthentication
All requests require an API key in the header:
X-API-Key: your_api_key_hereEndpoints
Workspaces
List Workspaces
GET /workspaces/Get all workspaces accessible with your API key.
Response:
[ { "workspace_id": "507f1f77bcf86cd799439011", "name": "My Company", "role": "owner" }]Data Collection
Create Interaction Run
POST /workbooks/Start collecting engagement data from a post.
Request Body:
{
"post_url": "https://www.linkedin.com/posts/username_activity-1234567890",
"data_types": ["comment", "reaction"],
"workspace_id": "507f1f77bcf86cd799439011"
}Parameters:
post_url(string, required): Valid LinkedIn post URLdata_types(array, required): Types of data to collectOptions:
["comment", "reaction"]Both can be specified:
["comment", "reaction"]
workspace_id(string, required): Target workspace ID
Supported LinkedIn URL Formats:
https://www.linkedin.com/posts/username_activity-1234567890https://www.linkedin.com/feed/update/urn:li:activity:1234567890
Response (202 Accepted):
{
"task_id": "abc123-def456-ghi789",
"status": "pending"
}Task Monitoring
Get Task Status
GET /tasks/{task_id}/statusMonitor the progress of your data collection task.
Response (In Progress):
{
"task_id": "abc123-def456-ghi789",
"status": "running"
}Response (Completed Successfully):
{
"task_id": "abc123-def456-ghi789",
"status": "success",
"completed_at": "2025-08-10T10:30:00Z",
"result": {
"workbook_id": "507f1f77bcf86cd799439012",
"items_collected": 150,
"success": true
}
}Response (Failed):
{
"task_id": "abc123-def456-ghi789",
"status": "failure",
"completed_at": "2025-08-10T10:35:00Z",
"error": "Post not found or access denied"
}Task Status Values:
pending- Task processingsuccess- Collection completed successfullyfailure- Collection failed with error
Data Retrieval
Get Contacts
GET /workbooks/{workbook_id}/contactsRetrieve de-duplicated contact data from collected engagements.
Query Parameters:
fields(string, default:"name,profile_url"): Comma-separated fields to includeactivity_filter(string, optional): Filter contacts by activity type
Available Fields:
name- Full display namefirst_name- Parsed first namelast_name- Parsed last nameurn- LinkedIn URN identifierprofile_url- LinkedIn profile URLprofile_type- Type:"user"or"company"description- Profile headline/descriptionprofile_image_url- Profile photo URLstats- Complete engagement statistics objectstats.posts- Number of posts madestats.comments- Number of comments madestats.reactions- Number of reactions given
Activity Filter Options:
posters- Users who created postscommenters- Users who made commentsreactors- Users who gave reactionsCombinations:
"commenters,reactors"
Examples:
Basic contact list:
GET /workbooks/{id}/contactsCustom fields:
GET /workbooks/{id}/contacts?fields=name,description,stats.commentsFilter by activity:
GET /workbooks/{id}/contacts?activity_filter=commenters&fields=name,profile_url,statsResponse:
[ { "name": "John Doe", "profile_url": "https://linkedin.com/in/johndoe", "description": "Software Engineer at Tech Corp", "stats": { "posts": 0, "comments": 5, "reactions": 12 } }]Get Comments
GET /workbooks/{workbook_id}/commentsRetrieve all comments from the collected data.
Query Parameters:
include_replies(boolean, default:true): Include reply comments in results
Response:
[
{
"content": "Great insights! Thanks for sharing this.",
"author": {
"name": "Jane Smith",
"profile_url": "https://linkedin.com/in/janesmith"
},
"urn": "urn:li:comment:1234567890",
"parent_urn": null,
"meta": {
"is_reply": false,
"replies": 2,
"is_pinned": false,
"is_edited": false
},
"posted_at": "2025-08-10T10:30:00Z"
}
]Get Reactions
GET /workbooks/{workbook_id}/reactionsRetrieve all reactions from the collected data.
Response:
[ { "reaction_type": "like", "author": { "name": "Bob Wilson", "profile_url": "https://linkedin.com/in/bobwilson" } }]Reaction Types:
like- Standard likelove- Love reactioncelebrate- Celebrate reactionsupport- Support reactioninsightful- Insightful reactionfunny- Funny reaction
User Info
Get Current User
GET /meGet information about the authenticated user.
Response:
{
"id": "507f1f77bcf86cd799439013",
"email": "user@example.com",
"name": "API User"
}Field Selection Logic
When using the fields parameter with contacts:
Automatic Field Inclusion:
Requesting
stats.Xfields individually fetches only those statsRequesting both
statsandstats.Xfetches the complete stats object
Stats Field Priority:
statsalone β Complete stats objectstats.comments,stats.reactionsβ Only specified statsstats,stats.commentsβ Complete stats object (individual fields ignored)