universal-mcp-applications 0.1.21__py3-none-any.whl → 0.1.22__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of universal-mcp-applications might be problematic. Click here for more details.
- universal_mcp/applications/BEST_PRACTICES.md +166 -0
- universal_mcp/applications/airtable/app.py +0 -1
- universal_mcp/applications/apollo/app.py +0 -1
- universal_mcp/applications/aws_s3/app.py +40 -39
- universal_mcp/applications/browser_use/README.md +1 -0
- universal_mcp/applications/browser_use/__init__.py +0 -0
- universal_mcp/applications/browser_use/app.py +76 -0
- universal_mcp/applications/calendly/app.py +125 -125
- universal_mcp/applications/canva/app.py +95 -99
- universal_mcp/applications/confluence/app.py +0 -1
- universal_mcp/applications/contentful/app.py +4 -5
- universal_mcp/applications/domain_checker/app.py +11 -15
- universal_mcp/applications/e2b/app.py +4 -4
- universal_mcp/applications/elevenlabs/app.py +18 -15
- universal_mcp/applications/exa/app.py +17 -17
- universal_mcp/applications/falai/app.py +28 -29
- universal_mcp/applications/file_system/app.py +9 -9
- universal_mcp/applications/firecrawl/app.py +36 -36
- universal_mcp/applications/fireflies/app.py +55 -56
- universal_mcp/applications/fpl/app.py +49 -50
- universal_mcp/applications/ghost_content/app.py +0 -1
- universal_mcp/applications/github/app.py +41 -43
- universal_mcp/applications/google_calendar/app.py +40 -39
- universal_mcp/applications/google_docs/app.py +56 -56
- universal_mcp/applications/google_drive/app.py +212 -215
- universal_mcp/applications/google_gemini/app.py +1 -5
- universal_mcp/applications/google_mail/app.py +91 -90
- universal_mcp/applications/google_searchconsole/app.py +29 -29
- universal_mcp/applications/google_sheet/app.py +115 -115
- universal_mcp/applications/hashnode/README.md +6 -3
- universal_mcp/applications/hashnode/app.py +174 -25
- universal_mcp/applications/http_tools/app.py +10 -11
- universal_mcp/applications/hubspot/__init__.py +1 -1
- universal_mcp/applications/hubspot/api_segments/api_segment_base.py +36 -7
- universal_mcp/applications/hubspot/api_segments/crm_api.py +368 -368
- universal_mcp/applications/hubspot/api_segments/marketing_api.py +115 -115
- universal_mcp/applications/hubspot/app.py +131 -72
- universal_mcp/applications/jira/app.py +0 -1
- universal_mcp/applications/linkedin/app.py +20 -20
- universal_mcp/applications/markitdown/app.py +10 -5
- universal_mcp/applications/ms_teams/app.py +123 -123
- universal_mcp/applications/openai/app.py +40 -39
- universal_mcp/applications/outlook/app.py +32 -32
- universal_mcp/applications/perplexity/app.py +4 -4
- universal_mcp/applications/reddit/app.py +69 -70
- universal_mcp/applications/resend/app.py +116 -117
- universal_mcp/applications/rocketlane/app.py +0 -1
- universal_mcp/applications/scraper/__init__.py +1 -1
- universal_mcp/applications/scraper/app.py +80 -81
- universal_mcp/applications/serpapi/app.py +14 -14
- universal_mcp/applications/sharepoint/app.py +19 -20
- universal_mcp/applications/shopify/app.py +0 -1
- universal_mcp/applications/slack/app.py +48 -48
- universal_mcp/applications/tavily/app.py +4 -4
- universal_mcp/applications/twitter/api_segments/compliance_api.py +13 -15
- universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +20 -20
- universal_mcp/applications/twitter/api_segments/dm_events_api.py +12 -12
- universal_mcp/applications/twitter/api_segments/likes_api.py +12 -12
- universal_mcp/applications/twitter/api_segments/lists_api.py +37 -39
- universal_mcp/applications/twitter/api_segments/spaces_api.py +24 -24
- universal_mcp/applications/twitter/api_segments/trends_api.py +4 -4
- universal_mcp/applications/twitter/api_segments/tweets_api.py +105 -105
- universal_mcp/applications/twitter/api_segments/usage_api.py +4 -4
- universal_mcp/applications/twitter/api_segments/users_api.py +136 -136
- universal_mcp/applications/twitter/app.py +6 -2
- universal_mcp/applications/unipile/app.py +90 -97
- universal_mcp/applications/whatsapp/app.py +53 -54
- universal_mcp/applications/whatsapp/audio.py +39 -35
- universal_mcp/applications/whatsapp/whatsapp.py +176 -154
- universal_mcp/applications/whatsapp_business/app.py +92 -92
- universal_mcp/applications/yahoo_finance/app.py +105 -63
- universal_mcp/applications/youtube/app.py +193 -196
- universal_mcp/applications/zenquotes/__init__.py +2 -0
- universal_mcp/applications/zenquotes/app.py +3 -3
- {universal_mcp_applications-0.1.21.dist-info → universal_mcp_applications-0.1.22.dist-info}/METADATA +2 -1
- {universal_mcp_applications-0.1.21.dist-info → universal_mcp_applications-0.1.22.dist-info}/RECORD +78 -74
- {universal_mcp_applications-0.1.21.dist-info → universal_mcp_applications-0.1.22.dist-info}/WHEEL +0 -0
- {universal_mcp_applications-0.1.21.dist-info → universal_mcp_applications-0.1.22.dist-info}/licenses/LICENSE +0 -0
|
@@ -2,11 +2,15 @@ from universal_mcp.applications.application import APIApplication
|
|
|
2
2
|
from universal_mcp.integrations import Integration
|
|
3
3
|
|
|
4
4
|
from universal_mcp.applications.twitter.api_segments.compliance_api import ComplianceApi
|
|
5
|
-
from universal_mcp.applications.twitter.api_segments.dm_conversations_api import
|
|
5
|
+
from universal_mcp.applications.twitter.api_segments.dm_conversations_api import (
|
|
6
|
+
DmConversationsApi,
|
|
7
|
+
)
|
|
6
8
|
from universal_mcp.applications.twitter.api_segments.dm_events_api import DmEventsApi
|
|
7
9
|
from universal_mcp.applications.twitter.api_segments.likes_api import LikesApi
|
|
8
10
|
from universal_mcp.applications.twitter.api_segments.lists_api import ListsApi
|
|
9
|
-
from universal_mcp.applications.twitter.api_segments.openapi_json_api import
|
|
11
|
+
from universal_mcp.applications.twitter.api_segments.openapi_json_api import (
|
|
12
|
+
OpenapiJsonApi,
|
|
13
|
+
)
|
|
10
14
|
from universal_mcp.applications.twitter.api_segments.spaces_api import SpacesApi
|
|
11
15
|
from universal_mcp.applications.twitter.api_segments.trends_api import TrendsApi
|
|
12
16
|
from universal_mcp.applications.twitter.api_segments.tweets_api import TweetsApi
|
|
@@ -3,7 +3,6 @@ from collections.abc import Callable
|
|
|
3
3
|
from typing import Any, Literal
|
|
4
4
|
|
|
5
5
|
from loguru import logger
|
|
6
|
-
|
|
7
6
|
from universal_mcp.applications.application import APIApplication
|
|
8
7
|
from universal_mcp.integrations import Integration
|
|
9
8
|
|
|
@@ -51,7 +50,7 @@ class UnipileApp(APIApplication):
|
|
|
51
50
|
def base_url(self, base_url: str) -> None:
|
|
52
51
|
"""
|
|
53
52
|
Sets or overrides the Unipile API's base URL. This setter allows manually changing the endpoint, bypassing the default URL that is dynamically constructed from integration credentials. It is primarily intended for testing against different environments or for custom deployments.
|
|
54
|
-
|
|
53
|
+
|
|
55
54
|
Args:
|
|
56
55
|
base_url: The new base URL to set.
|
|
57
56
|
"""
|
|
@@ -105,7 +104,7 @@ class UnipileApp(APIApplication):
|
|
|
105
104
|
) -> dict[str, Any]:
|
|
106
105
|
"""
|
|
107
106
|
Retrieves a paginated list of all chat conversations across linked accounts. Supports filtering by unread status, date range, account provider, and specific account IDs, distinguishing it from functions listing messages within a single chat.
|
|
108
|
-
|
|
107
|
+
|
|
109
108
|
Args:
|
|
110
109
|
unread: Filter for unread chats only or read chats only.
|
|
111
110
|
cursor: Pagination cursor for the next page of entries.
|
|
@@ -114,13 +113,13 @@ class UnipileApp(APIApplication):
|
|
|
114
113
|
limit: Number of items to return (1-250).
|
|
115
114
|
account_type: Filter by provider (e.g., "linkedin").
|
|
116
115
|
account_id: Filter by specific account IDs (comma-separated).
|
|
117
|
-
|
|
116
|
+
|
|
118
117
|
Returns:
|
|
119
118
|
A dictionary containing a list of chat objects and a pagination cursor.
|
|
120
|
-
|
|
119
|
+
|
|
121
120
|
Raises:
|
|
122
121
|
httpx.HTTPError: If the API request fails.
|
|
123
|
-
|
|
122
|
+
|
|
124
123
|
Tags:
|
|
125
124
|
linkedin, chat, list, messaging, api
|
|
126
125
|
"""
|
|
@@ -155,7 +154,7 @@ class UnipileApp(APIApplication):
|
|
|
155
154
|
) -> dict[str, Any]:
|
|
156
155
|
"""
|
|
157
156
|
Retrieves messages from a specific chat identified by `chat_id`. Supports pagination and filtering by date or sender. Unlike `list_all_messages`, which fetches from all chats, this function targets the contents of a single conversation.
|
|
158
|
-
|
|
157
|
+
|
|
159
158
|
Args:
|
|
160
159
|
chat_id: The ID of the chat to retrieve messages from.
|
|
161
160
|
cursor: Pagination cursor for the next page of entries.
|
|
@@ -163,13 +162,13 @@ class UnipileApp(APIApplication):
|
|
|
163
162
|
after: Filter for items created after this ISO 8601 UTC datetime (exclusive).
|
|
164
163
|
limit: Number of items to return (1-250).
|
|
165
164
|
sender_id: Filter messages from a specific sender ID.
|
|
166
|
-
|
|
165
|
+
|
|
167
166
|
Returns:
|
|
168
167
|
A dictionary containing a list of message objects and a pagination cursor.
|
|
169
|
-
|
|
168
|
+
|
|
170
169
|
Raises:
|
|
171
170
|
httpx.HTTPError: If the API request fails.
|
|
172
|
-
|
|
171
|
+
|
|
173
172
|
Tags:
|
|
174
173
|
linkedin, chat, message, list, messaging, api
|
|
175
174
|
"""
|
|
@@ -196,18 +195,18 @@ class UnipileApp(APIApplication):
|
|
|
196
195
|
) -> dict[str, Any]:
|
|
197
196
|
"""
|
|
198
197
|
Sends a text message to a specific chat conversation using its `chat_id`. This function creates a new message via a POST request, distinguishing it from read-only functions like `list_chat_messages`. It returns the API's response, which typically confirms the successful creation of the message.
|
|
199
|
-
|
|
198
|
+
|
|
200
199
|
Args:
|
|
201
200
|
chat_id: The ID of the chat where the message will be sent.
|
|
202
201
|
text: The text content of the message.
|
|
203
202
|
attachments: Optional list of attachment objects to include with the message.
|
|
204
|
-
|
|
203
|
+
|
|
205
204
|
Returns:
|
|
206
205
|
A dictionary containing the ID of the sent message.
|
|
207
|
-
|
|
206
|
+
|
|
208
207
|
Raises:
|
|
209
208
|
httpx.HTTPError: If the API request fails.
|
|
210
|
-
|
|
209
|
+
|
|
211
210
|
Tags:
|
|
212
211
|
linkedin, chat, message, send, create, messaging, api
|
|
213
212
|
"""
|
|
@@ -222,17 +221,17 @@ class UnipileApp(APIApplication):
|
|
|
222
221
|
) -> dict[str, Any]:
|
|
223
222
|
"""
|
|
224
223
|
Retrieves a single chat's details using its Unipile or provider-specific ID. Requires an `account_id` when using a provider ID for context. This function is distinct from `list_all_chats`, which returns a collection, by targeting one specific conversation.
|
|
225
|
-
|
|
224
|
+
|
|
226
225
|
Args:
|
|
227
226
|
chat_id: The Unipile or provider ID of the chat.
|
|
228
227
|
account_id: Mandatory if the chat_id is a provider ID. Specifies the account context.
|
|
229
|
-
|
|
228
|
+
|
|
230
229
|
Returns:
|
|
231
230
|
A dictionary containing the chat object details.
|
|
232
|
-
|
|
231
|
+
|
|
233
232
|
Raises:
|
|
234
233
|
httpx.HTTPError: If the API request fails.
|
|
235
|
-
|
|
234
|
+
|
|
236
235
|
Tags:
|
|
237
236
|
linkedin, chat, retrieve, get, messaging, api
|
|
238
237
|
"""
|
|
@@ -255,7 +254,7 @@ class UnipileApp(APIApplication):
|
|
|
255
254
|
) -> dict[str, Any]:
|
|
256
255
|
"""
|
|
257
256
|
Retrieves a paginated list of messages from all chats associated with the account(s). Unlike `list_chat_messages` which targets a specific conversation, this function provides a global message view, filterable by sender, account, and date range.
|
|
258
|
-
|
|
257
|
+
|
|
259
258
|
Args:
|
|
260
259
|
cursor: Pagination cursor.
|
|
261
260
|
before: Filter for items created before this ISO 8601 UTC datetime.
|
|
@@ -263,13 +262,13 @@ class UnipileApp(APIApplication):
|
|
|
263
262
|
limit: Number of items to return (1-250).
|
|
264
263
|
sender_id: Filter messages from a specific sender.
|
|
265
264
|
account_id: Filter messages from a specific linked account.
|
|
266
|
-
|
|
265
|
+
|
|
267
266
|
Returns:
|
|
268
267
|
A dictionary containing a list of message objects and a pagination cursor.
|
|
269
|
-
|
|
268
|
+
|
|
270
269
|
Raises:
|
|
271
270
|
httpx.HTTPError: If the API request fails.
|
|
272
|
-
|
|
271
|
+
|
|
273
272
|
Tags:
|
|
274
273
|
linkedin, message, list, all_messages, messaging, api
|
|
275
274
|
"""
|
|
@@ -298,17 +297,17 @@ class UnipileApp(APIApplication):
|
|
|
298
297
|
) -> dict[str, Any]:
|
|
299
298
|
"""
|
|
300
299
|
Retrieves a paginated list of all social media accounts linked to the Unipile service. This is crucial for obtaining the `account_id` required by other methods to specify which user account should perform an action, like sending a message or retrieving user-specific posts.
|
|
301
|
-
|
|
300
|
+
|
|
302
301
|
Args:
|
|
303
302
|
cursor: Pagination cursor.
|
|
304
303
|
limit: Number of items to return (1-259).
|
|
305
|
-
|
|
304
|
+
|
|
306
305
|
Returns:
|
|
307
306
|
A dictionary containing a list of account objects and a pagination cursor.
|
|
308
|
-
|
|
307
|
+
|
|
309
308
|
Raises:
|
|
310
309
|
httpx.HTTPError: If the API request fails.
|
|
311
|
-
|
|
310
|
+
|
|
312
311
|
Tags:
|
|
313
312
|
linkedin, account, list, unipile, api, important
|
|
314
313
|
"""
|
|
@@ -328,16 +327,16 @@ class UnipileApp(APIApplication):
|
|
|
328
327
|
) -> dict[str, Any]:
|
|
329
328
|
"""
|
|
330
329
|
Retrieves details for a specific account linked to Unipile using its ID. It fetches metadata about the connection itself (e.g., a linked LinkedIn account), differentiating it from `retrieve_user_profile` which fetches a user's profile from the external platform.
|
|
331
|
-
|
|
330
|
+
|
|
332
331
|
Args:
|
|
333
332
|
account_id: The ID of the account to retrieve.
|
|
334
|
-
|
|
333
|
+
|
|
335
334
|
Returns:
|
|
336
335
|
A dictionary containing the account object details.
|
|
337
|
-
|
|
336
|
+
|
|
338
337
|
Raises:
|
|
339
338
|
httpx.HTTPError: If the API request fails.
|
|
340
|
-
|
|
339
|
+
|
|
341
340
|
Tags:
|
|
342
341
|
linkedin, account, retrieve, get, unipile, api, important
|
|
343
342
|
"""
|
|
@@ -355,20 +354,20 @@ class UnipileApp(APIApplication):
|
|
|
355
354
|
) -> dict[str, Any]:
|
|
356
355
|
"""
|
|
357
356
|
Retrieves a paginated list of posts from a specific user or company profile using their provider ID. An authorizing `account_id` is required, and the `is_company` flag must specify the entity type, distinguishing this from `retrieve_post` which fetches a single post by its own ID.
|
|
358
|
-
|
|
357
|
+
|
|
359
358
|
Args:
|
|
360
359
|
identifier: The entity's provider internal ID (LinkedIn ID).
|
|
361
360
|
account_id: The ID of the Unipile account to perform the request from (REQUIRED).
|
|
362
361
|
cursor: Pagination cursor.
|
|
363
362
|
limit: Number of items to return (1-100, as per Unipile example, though spec allows up to 250).
|
|
364
363
|
is_company: Boolean indicating if the identifier is for a company.
|
|
365
|
-
|
|
364
|
+
|
|
366
365
|
Returns:
|
|
367
366
|
A dictionary containing a list of post objects and pagination details.
|
|
368
|
-
|
|
367
|
+
|
|
369
368
|
Raises:
|
|
370
369
|
httpx.HTTPError: If the API request fails.
|
|
371
|
-
|
|
370
|
+
|
|
372
371
|
Tags:
|
|
373
372
|
linkedin, post, list, user_posts, company_posts, content, api, important
|
|
374
373
|
"""
|
|
@@ -390,16 +389,16 @@ class UnipileApp(APIApplication):
|
|
|
390
389
|
) -> dict[str, Any]:
|
|
391
390
|
"""
|
|
392
391
|
Retrieves the profile details for the user associated with the specified Unipile account ID. This function targets the API's 'me' endpoint to fetch the authenticated user's profile, distinct from `retrieve_user_profile` which fetches profiles of other users by their public identifier.
|
|
393
|
-
|
|
392
|
+
|
|
394
393
|
Args:
|
|
395
394
|
account_id: The ID of the Unipile account to use for retrieving the profile (REQUIRED).
|
|
396
|
-
|
|
395
|
+
|
|
397
396
|
Returns:
|
|
398
397
|
A dictionary containing the user's profile details.
|
|
399
|
-
|
|
398
|
+
|
|
400
399
|
Raises:
|
|
401
400
|
httpx.HTTPError: If the API request fails.
|
|
402
|
-
|
|
401
|
+
|
|
403
402
|
Tags:
|
|
404
403
|
linkedin, user, profile, me, retrieve, get, api
|
|
405
404
|
"""
|
|
@@ -415,17 +414,17 @@ class UnipileApp(APIApplication):
|
|
|
415
414
|
) -> dict[str, Any]:
|
|
416
415
|
"""
|
|
417
416
|
Fetches a specific post's details by its unique ID, requiring an `account_id` for authorization. Unlike `list_profile_posts`, which retrieves a collection of posts from a user or company profile, this function targets one specific post and returns its full object.
|
|
418
|
-
|
|
417
|
+
|
|
419
418
|
Args:
|
|
420
419
|
post_id: The ID of the post to retrieve.
|
|
421
420
|
account_id: The ID of the Unipile account to perform the request from (REQUIRED).
|
|
422
|
-
|
|
421
|
+
|
|
423
422
|
Returns:
|
|
424
423
|
A dictionary containing the post details.
|
|
425
|
-
|
|
424
|
+
|
|
426
425
|
Raises:
|
|
427
426
|
httpx.HTTPError: If the API request fails.
|
|
428
|
-
|
|
427
|
+
|
|
429
428
|
Tags:
|
|
430
429
|
linkedin, post, retrieve, get, content, api, important
|
|
431
430
|
"""
|
|
@@ -444,20 +443,20 @@ class UnipileApp(APIApplication):
|
|
|
444
443
|
) -> dict[str, Any]:
|
|
445
444
|
"""
|
|
446
445
|
Fetches comments for a specific post using an `account_id` for authorization. Providing an optional `comment_id` retrieves threaded replies instead of top-level comments. This read-only operation contrasts with `create_post_comment`, which publishes new comments, and `list_content_reactions`, which retrieves 'likes'.
|
|
447
|
-
|
|
446
|
+
|
|
448
447
|
Args:
|
|
449
448
|
post_id: The social ID of the post.
|
|
450
449
|
account_id: The ID of the Unipile account to perform the request from (REQUIRED).
|
|
451
450
|
comment_id: If provided, retrieves replies to this comment ID instead of top-level comments.
|
|
452
451
|
cursor: Pagination cursor.
|
|
453
452
|
limit: Number of comments to return. (OpenAPI spec shows type string, passed as string if provided).
|
|
454
|
-
|
|
453
|
+
|
|
455
454
|
Returns:
|
|
456
455
|
A dictionary containing a list of comment objects and pagination details.
|
|
457
|
-
|
|
456
|
+
|
|
458
457
|
Raises:
|
|
459
458
|
httpx.HTTPError: If the API request fails.
|
|
460
|
-
|
|
459
|
+
|
|
461
460
|
Tags:
|
|
462
461
|
linkedin, post, comment, list, content, api, important
|
|
463
462
|
"""
|
|
@@ -482,20 +481,20 @@ class UnipileApp(APIApplication):
|
|
|
482
481
|
) -> dict[str, Any]:
|
|
483
482
|
"""
|
|
484
483
|
Publishes a new top-level post from a specified account, including text, user mentions, and an external link. This function creates original content, distinguishing it from `create_post_comment` which adds replies to existing posts.
|
|
485
|
-
|
|
484
|
+
|
|
486
485
|
Args:
|
|
487
486
|
account_id: The ID of the Unipile account that will author the post (added as query parameter).
|
|
488
487
|
text: The main text content of the post.
|
|
489
488
|
mentions: Optional list of dictionaries, each representing a mention.
|
|
490
489
|
Example: `[{"entity_urn": "urn:li:person:...", "start_index": 0, "end_index": 5}]`
|
|
491
490
|
external_link: Optional string, an external URL that should be displayed within a card.
|
|
492
|
-
|
|
491
|
+
|
|
493
492
|
Returns:
|
|
494
493
|
A dictionary containing the ID of the created post.
|
|
495
|
-
|
|
494
|
+
|
|
496
495
|
Raises:
|
|
497
496
|
httpx.HTTPError: If the API request fails.
|
|
498
|
-
|
|
497
|
+
|
|
499
498
|
Tags:
|
|
500
499
|
linkedin, post, create, share, content, api, important
|
|
501
500
|
"""
|
|
@@ -524,20 +523,20 @@ class UnipileApp(APIApplication):
|
|
|
524
523
|
) -> dict[str, Any]:
|
|
525
524
|
"""
|
|
526
525
|
Retrieves a paginated list of reactions for a given post or, optionally, a specific comment. This read-only operation uses the provided `account_id` for the request, distinguishing it from the `create_reaction` function which adds new reactions.
|
|
527
|
-
|
|
526
|
+
|
|
528
527
|
Args:
|
|
529
528
|
post_id: The social ID of the post.
|
|
530
529
|
account_id: The ID of the Unipile account to perform the request from .
|
|
531
530
|
comment_id: If provided, retrieves reactions for this comment ID.
|
|
532
531
|
cursor: Pagination cursor.
|
|
533
532
|
limit: Number of reactions to return (1-100, spec max 250).
|
|
534
|
-
|
|
533
|
+
|
|
535
534
|
Returns:
|
|
536
535
|
A dictionary containing a list of reaction objects and pagination details.
|
|
537
|
-
|
|
536
|
+
|
|
538
537
|
Raises:
|
|
539
538
|
httpx.HTTPError: If the API request fails.
|
|
540
|
-
|
|
539
|
+
|
|
541
540
|
Tags:
|
|
542
541
|
linkedin, post, reaction, list, like, content, api
|
|
543
542
|
"""
|
|
@@ -563,7 +562,7 @@ class UnipileApp(APIApplication):
|
|
|
563
562
|
) -> dict[str, Any]:
|
|
564
563
|
"""
|
|
565
564
|
Publishes a comment on a specified post. By providing an optional `comment_id`, it creates a threaded reply to an existing comment instead of a new top-level one. This function's dual capability distinguishes it from `list_post_comments`, which only retrieves comments and their replies.
|
|
566
|
-
|
|
565
|
+
|
|
567
566
|
Args:
|
|
568
567
|
post_social_id: The social ID of the post to comment on.
|
|
569
568
|
account_id: The ID of the Unipile account performing the comment.
|
|
@@ -571,13 +570,13 @@ class UnipileApp(APIApplication):
|
|
|
571
570
|
Supports Unipile's mention syntax like "Hey {{0}}".
|
|
572
571
|
comment_id: Optional ID of a specific comment to reply to instead of commenting on the post.
|
|
573
572
|
mentions_body: Optional list of mention objects for the request body if needed.
|
|
574
|
-
|
|
573
|
+
|
|
575
574
|
Returns:
|
|
576
575
|
A dictionary, likely confirming comment creation. (Structure depends on actual API response)
|
|
577
|
-
|
|
576
|
+
|
|
578
577
|
Raises:
|
|
579
578
|
httpx.HTTPError: If the API request fails.
|
|
580
|
-
|
|
579
|
+
|
|
581
580
|
Tags:
|
|
582
581
|
linkedin, post, comment, create, content, api, important
|
|
583
582
|
"""
|
|
@@ -614,19 +613,19 @@ class UnipileApp(APIApplication):
|
|
|
614
613
|
) -> dict[str, Any]:
|
|
615
614
|
"""
|
|
616
615
|
Adds a specified reaction (e.g., 'like', 'love') to a LinkedIn post or, optionally, to a specific comment. This function performs a POST request to create the reaction, differentiating it from `list_content_reactions` which only retrieves existing ones.
|
|
617
|
-
|
|
616
|
+
|
|
618
617
|
Args:
|
|
619
618
|
post_social_id: The social ID of the post or comment to react to.
|
|
620
619
|
reaction_type: The type of reaction .
|
|
621
620
|
account_id: Account ID of the Unipile account performing the reaction.
|
|
622
621
|
comment_id: Optional ID of a specific comment to react to instead of the post.
|
|
623
|
-
|
|
622
|
+
|
|
624
623
|
Returns:
|
|
625
624
|
A dictionary, likely confirming the reaction. (Structure depends on actual API response)
|
|
626
|
-
|
|
625
|
+
|
|
627
626
|
Raises:
|
|
628
627
|
httpx.HTTPError: If the API request fails.
|
|
629
|
-
|
|
628
|
+
|
|
630
629
|
Tags:
|
|
631
630
|
linkedin, post, reaction, create, like, content, api, important
|
|
632
631
|
"""
|
|
@@ -684,7 +683,7 @@ class UnipileApp(APIApplication):
|
|
|
684
683
|
) -> dict[str, Any]:
|
|
685
684
|
"""
|
|
686
685
|
Performs a comprehensive LinkedIn search for people, companies, posts, or jobs using granular filters like keywords and location. Alternatively, it can execute a search from a direct LinkedIn URL. Supports pagination and targets either the classic or Sales Navigator API.
|
|
687
|
-
|
|
686
|
+
|
|
688
687
|
Args:
|
|
689
688
|
account_id: The ID of the Unipile account to perform the search from (REQUIRED).
|
|
690
689
|
category: Type of search to perform - "people", "companies", "posts", or "jobs".
|
|
@@ -709,13 +708,13 @@ class UnipileApp(APIApplication):
|
|
|
709
708
|
"value": 80
|
|
710
709
|
}
|
|
711
710
|
search_url: Direct LinkedIn search URL to use instead of building parameters.
|
|
712
|
-
|
|
711
|
+
|
|
713
712
|
Returns:
|
|
714
713
|
A dictionary containing search results and pagination details.
|
|
715
|
-
|
|
714
|
+
|
|
716
715
|
Raises:
|
|
717
716
|
httpx.HTTPError: If the API request fails.
|
|
718
|
-
|
|
717
|
+
|
|
719
718
|
Tags:
|
|
720
719
|
linkedin, search, people, companies, posts, jobs, api, important
|
|
721
720
|
"""
|
|
@@ -828,7 +827,7 @@ class UnipileApp(APIApplication):
|
|
|
828
827
|
Performs a comprehensive LinkedIn Sales Navigator people search with all available parameters.
|
|
829
828
|
This function provides access to LinkedIn's advanced Sales Navigator search capabilities
|
|
830
829
|
for finding people with precise targeting options.
|
|
831
|
-
|
|
830
|
+
|
|
832
831
|
Args:
|
|
833
832
|
account_id: The ID of the Unipile account to perform the search from (REQUIRED).
|
|
834
833
|
cursor: Pagination cursor for the next page of entries.
|
|
@@ -873,29 +872,26 @@ class UnipileApp(APIApplication):
|
|
|
873
872
|
messaged_recently: LinkedIn native filter: PEOPLE YOU INTERACTED WITH / MESSAGED.
|
|
874
873
|
include_saved_leads: LinkedIn native filter: SAVED LEADS AND ACCOUNTS / ALL MY SAVED LEADS.
|
|
875
874
|
include_saved_accounts: LinkedIn native filter: SAVED LEADS AND ACCOUNTS / ALL MY SAVED ACCOUNTS.
|
|
876
|
-
|
|
875
|
+
|
|
877
876
|
Returns:
|
|
878
877
|
A dictionary containing search results and pagination details.
|
|
879
|
-
|
|
878
|
+
|
|
880
879
|
Raises:
|
|
881
880
|
httpx.HTTPError: If the API request fails.
|
|
882
|
-
|
|
881
|
+
|
|
883
882
|
Tags:
|
|
884
883
|
linkedin, sales_navigator, people, search, advanced, api, important
|
|
885
884
|
"""
|
|
886
885
|
url = f"{self.base_url}/api/v1/linkedin/search"
|
|
887
|
-
|
|
886
|
+
|
|
888
887
|
params: dict[str, Any] = {"account_id": account_id}
|
|
889
888
|
if cursor:
|
|
890
889
|
params["cursor"] = cursor
|
|
891
890
|
if limit is not None:
|
|
892
891
|
params["limit"] = limit
|
|
893
|
-
|
|
894
|
-
payload: dict[str, Any] = {
|
|
895
|
-
|
|
896
|
-
"category": "people"
|
|
897
|
-
}
|
|
898
|
-
|
|
892
|
+
|
|
893
|
+
payload: dict[str, Any] = {"api": "sales_navigator", "category": "people"}
|
|
894
|
+
|
|
899
895
|
# Add all the Sales Navigator specific parameters
|
|
900
896
|
sn_params = {
|
|
901
897
|
"keywords": keywords,
|
|
@@ -939,10 +935,10 @@ class UnipileApp(APIApplication):
|
|
|
939
935
|
"include_saved_leads": include_saved_leads,
|
|
940
936
|
"include_saved_accounts": include_saved_accounts,
|
|
941
937
|
}
|
|
942
|
-
|
|
938
|
+
|
|
943
939
|
# Only add parameters that are not None
|
|
944
940
|
payload.update({k: v for k, v in sn_params.items() if v is not None})
|
|
945
|
-
|
|
941
|
+
|
|
946
942
|
response = self._post(url, params=params, data=payload)
|
|
947
943
|
return self._handle_response(response)
|
|
948
944
|
|
|
@@ -969,7 +965,7 @@ class UnipileApp(APIApplication):
|
|
|
969
965
|
Performs a comprehensive LinkedIn Sales Navigator company search with relevant parameters.
|
|
970
966
|
This function provides access to LinkedIn's advanced Sales Navigator search capabilities
|
|
971
967
|
for finding companies with precise targeting options.
|
|
972
|
-
|
|
968
|
+
|
|
973
969
|
Args:
|
|
974
970
|
account_id: The ID of the Unipile account to perform the search from (REQUIRED).
|
|
975
971
|
cursor: Pagination cursor for the next page of entries.
|
|
@@ -987,29 +983,26 @@ class UnipileApp(APIApplication):
|
|
|
987
983
|
following_your_company: LinkedIn native filter: FOLLOWING YOUR COMPANY.
|
|
988
984
|
account_lists: LinkedIn native filter: ACCOUNT LISTS.
|
|
989
985
|
include_saved_accounts: LinkedIn native filter: SAVED LEADS AND ACCOUNTS / ALL MY SAVED ACCOUNTS.
|
|
990
|
-
|
|
986
|
+
|
|
991
987
|
Returns:
|
|
992
988
|
A dictionary containing search results and pagination details.
|
|
993
|
-
|
|
989
|
+
|
|
994
990
|
Raises:
|
|
995
991
|
httpx.HTTPError: If the API request fails.
|
|
996
|
-
|
|
992
|
+
|
|
997
993
|
Tags:
|
|
998
994
|
linkedin, sales_navigator, companies, search, advanced, api, important
|
|
999
995
|
"""
|
|
1000
996
|
url = f"{self.base_url}/api/v1/linkedin/search"
|
|
1001
|
-
|
|
997
|
+
|
|
1002
998
|
params: dict[str, Any] = {"account_id": account_id}
|
|
1003
999
|
if cursor:
|
|
1004
1000
|
params["cursor"] = cursor
|
|
1005
1001
|
if limit is not None:
|
|
1006
1002
|
params["limit"] = limit
|
|
1007
|
-
|
|
1008
|
-
payload: dict[str, Any] = {
|
|
1009
|
-
|
|
1010
|
-
"category": "companies"
|
|
1011
|
-
}
|
|
1012
|
-
|
|
1003
|
+
|
|
1004
|
+
payload: dict[str, Any] = {"api": "sales_navigator", "category": "companies"}
|
|
1005
|
+
|
|
1013
1006
|
# Add all the Sales Navigator company-specific parameters
|
|
1014
1007
|
sn_params = {
|
|
1015
1008
|
"keywords": keywords,
|
|
@@ -1026,10 +1019,10 @@ class UnipileApp(APIApplication):
|
|
|
1026
1019
|
"account_lists": account_lists,
|
|
1027
1020
|
"include_saved_accounts": include_saved_accounts,
|
|
1028
1021
|
}
|
|
1029
|
-
|
|
1022
|
+
|
|
1030
1023
|
# Only add parameters that are not None
|
|
1031
1024
|
payload.update({k: v for k, v in sn_params.items() if v is not None})
|
|
1032
|
-
|
|
1025
|
+
|
|
1033
1026
|
response = self._post(url, params=params, data=payload)
|
|
1034
1027
|
return self._handle_response(response)
|
|
1035
1028
|
|
|
@@ -1040,18 +1033,18 @@ class UnipileApp(APIApplication):
|
|
|
1040
1033
|
) -> dict[str, Any]:
|
|
1041
1034
|
"""
|
|
1042
1035
|
Retrieves a specific LinkedIn user's profile using their public or internal ID, authorized via the provided `account_id`. Unlike `retrieve_own_profile`, which fetches the authenticated user's details, this function targets and returns data for any specified third-party user profile on the platform.
|
|
1043
|
-
|
|
1036
|
+
|
|
1044
1037
|
Args:
|
|
1045
1038
|
identifier: Can be the provider's internal id OR the provider's public id of the requested user.For example, for https://www.linkedin.com/in/manojbajaj95/, the identifier is "manojbajaj95".
|
|
1046
|
-
|
|
1039
|
+
|
|
1047
1040
|
account_id: The ID of the Unipile account to perform the request from (REQUIRED).
|
|
1048
|
-
|
|
1041
|
+
|
|
1049
1042
|
Returns:
|
|
1050
1043
|
A dictionary containing the user's profile details.
|
|
1051
|
-
|
|
1044
|
+
|
|
1052
1045
|
Raises:
|
|
1053
1046
|
httpx.HTTPError: If the API request fails.
|
|
1054
|
-
|
|
1047
|
+
|
|
1055
1048
|
Tags:
|
|
1056
1049
|
linkedin, user, profile, retrieve, get, api, important
|
|
1057
1050
|
"""
|