Please Log In

You need to log in to access your API credentials and start using our APIs. Start with our free trial!

Log In & Start Free Trial

Competitor Engagements API

Discover what content a LinkedIn profile has engaged with - track comments, reactions, and interactions to identify leads and monitor competitor activity

API Endpoint

https://api.nyne.ai/person/competitor-engagements

Try the API Playground

Test the API with our interactive playground to make real requests and see live responses.

Launch Competitor Engagements Playground

Overview

The Competitor Engagements API lets you discover what content a LinkedIn profile has been engaging with. By providing a LinkedIn profile URL, you can track their recent comments, reactions, and interactions on posts - useful for identifying leads, monitoring competitor activity, and understanding who your competitors are talking to.

What You Get

  • Comments: Text comments the profile has made on posts
  • Reactions: Posts the profile has liked or reacted to
  • Interaction Details: Post content, author info, and engagement metrics
  • Target Information: Details about the posts and authors they engaged with
  • Timestamps: When each interaction occurred

Use Cases

  • Lead Generation: Identify people engaging with your competitors' content
  • Competitive Intelligence: Monitor what content competitors are engaging with
  • Sales Prospecting: Find warm leads by tracking engagement with relevant industry content
  • Content Strategy: Understand what topics resonate with target audiences

How It Works

Input: Provide one or more LinkedIn profile URLs (up to 50 per request)

Output: Receive a list of recent interactions (comments, reactions) with details about each engagement

Authentication

All API requests require authentication using your API key and secret. You can authenticate using either HTTP headers (recommended) or query parameters.

Header Authentication (Recommended)
X-API-Key: your_api_key_here
X-API-Secret: your_api_secret_here

Rate Limits

API usage is controlled by rate limiting mechanisms to ensure fair usage and system stability:

  • Per Minute: 60 requests
  • Per Hour: 1000 requests
  • Monthly: Varies by plan

Credit Usage

Credits are charged based on the number of engagement results returned:

  • Per Engagement Result: 5 credits per interaction returned
  • No Results: No credits charged if no engagements are found

Credit Calculation Example

If the API returns 15 engagement interactions, you will be charged 75 credits (15 x 5 credits per result).

POST /person/competitor-engagements

Submit a request to retrieve competitor engagement data for a LinkedIn profile.

POST /person/competitor-engagements

Parameters

linkedin_urls (array of strings, required)
Array of LinkedIn profile URLs to analyze (maximum 50 URLs per request)
Example: ["https://www.linkedin.com/in/johndoe", "https://www.linkedin.com/in/janesmith"]
Note: If more than 50 URLs are provided, only the first 50 will be processed
max_items (integer, optional)
Maximum number of engagement results to return per profile
Default: 20, Maximum: 100
Example: 50
callback_url (string, optional)
URL to receive results asynchronously when processing completes
Example: https://yourapp.com/webhook/engagements

Request Example

{ "linkedin_urls": [ "https://www.linkedin.com/in/johndoe", "https://www.linkedin.com/in/janesmith" ], "max_items": 20, "callback_url": "https://yourapp.com/webhook/engagements" }

Response Codes

202 Request accepted and queued for processing

400 Invalid request parameters

401 Invalid API credentials

402 Insufficient credits

429 Rate limit exceeded

Response Example (202 Accepted)

{ "success": true, "data": { "request_id": "a1b2c3d4e5f6...", "status": "pending", "linkedin_urls": [ "https://www.linkedin.com/in/johndoe", "https://www.linkedin.com/in/janesmith" ], "url_count": 2, "max_items": 20, "message": "Competitor engagements request queued. Use GET /person/competitor-engagements?request_id=... to check status." }, "timestamp": "2026-01-22T10:00:00Z" }

GET /person/competitor-engagements

Check the status of a competitor engagements request and retrieve results when complete.

GET /person/competitor-engagements?request_id=

Parameters

request_id (string, required)
The request ID returned from the POST request
Example: a1b2c3d4e5f6...

Request Example

GET /person/competitor-engagements?request_id=a1b2c3d4e5f6...

Response Codes

200 Status retrieved successfully

400 Invalid request parameters

401 Invalid API credentials

404 Request ID not found

Response Example (Completed)

{ "success": true, "data": { "request_id": "a1b2c3d4e5f6...", "status": "completed", "linkedin_urls": [ "https://www.linkedin.com/in/johndoe", "https://www.linkedin.com/in/janesmith" ], "url_count": 2, "completed": true, "results_count": 15, "credits_charged": 75, "results": [ { "interaction_id": "7418464047378903040", "interaction_type": "comment", "interaction_url": "https://www.linkedin.com/feed/update/urn:li:activity:7418464047378903040", "interaction_date": "2026-01-18T01:27:37.292Z", "content": { "text": "Great insights on the future of AI! Really appreciate the thoughtful analysis." }, "target": { "type": "post", "author": { "name": "Tech Company", "type": "company", "profile_url": "https://www.linkedin.com/company/techcompany/" } }, "engagement": { "likes": 12, "comments": 3 } }, { "interaction_id": "7417892345678901234", "interaction_type": "reaction", "interaction_url": "https://www.linkedin.com/feed/update/urn:li:activity:7417892345678901234", "interaction_date": "2026-01-17T14:15:22.000Z", "target": { "type": "post", "author": { "name": "Jane Smith", "type": "person", "profile_url": "https://www.linkedin.com/in/janesmith/" } }, "engagement": { "likes": 245, "comments": 42 } } ], "created_on": "2026-01-22T10:00:00Z", "completed_on": "2026-01-22T10:00:30Z" }, "timestamp": "2026-01-22T10:00:35Z" }

Response Example (Processing)

{ "success": true, "data": { "request_id": "a1b2c3d4e5f6...", "status": "processing", "linkedin_urls": ["https://www.linkedin.com/in/johndoe"], "url_count": 1, "completed": false, "created_on": "2026-01-22T10:00:00Z" }, "timestamp": "2026-01-22T10:00:10Z" }

Response Example (Failed)

{ "success": true, "data": { "request_id": "a1b2c3d4e5f6...", "status": "failed", "linkedin_urls": ["https://www.linkedin.com/in/johndoe"], "url_count": 1, "completed": false, "error": "Could not retrieve engagement data for this profile", "created_on": "2026-01-22T10:00:00Z" }, "timestamp": "2026-01-22T10:00:30Z" }

Response Format

All API responses follow a consistent JSON format:

Success Response

{ "success": true, "data": { "request_id": "...", "status": "completed", "results": [...] }, "timestamp": "2026-01-22T10:00:00Z" }

Error Response

{ "success": false, "error": { "code": "error_code", "message": "Error message" }, "timestamp": "2026-01-22T10:00:00Z" }

Interaction Result Fields

Field Type Description
interaction_id string Unique identifier for the interaction
interaction_type string Type of interaction: "comment" or "reaction"
interaction_url string URL to the interaction on LinkedIn
interaction_date string ISO 8601 timestamp of when the interaction occurred
content object Content of the interaction (for comments)
target object Information about the post/content that was interacted with
engagement object Engagement metrics for the target content

Error Codes

HTTP Code Error Code Description
400 missing_parameters Required linkedin_urls parameter is missing or empty
400 invalid_linkedin_url One or more URLs are not valid LinkedIn profile URLs
400 invalid_callback_url The callback URL is not a valid HTTP/HTTPS URL
401 invalid_credentials API key or secret is incorrect
402 insufficient_credits Not enough credits to process the request
404 not_found Request ID not found
429 rate_limit_exceeded Rate limit exceeded
500 internal_error Internal server error

Callback System

When you provide a callback_url, the API will send the engagement results to your endpoint via HTTP POST when processing completes.

Callback Request Format

{ "request_id": "a1b2c3d4e5f6...", "status": "completed", "completed": true, "linkedin_urls": ["https://www.linkedin.com/in/johndoe", "https://www.linkedin.com/in/janesmith"], "url_count": 2, "results_count": 15, "credits_charged": 75, "results": [ { "interaction_id": "7418464047378903040", "interaction_type": "comment", "interaction_date": "2026-01-18T01:27:37.292Z", "content": { "text": "Great insights!" }, "target": { "type": "post", "author": { "name": "Tech Company" } } } ], "completed_on": "2026-01-22T10:00:30Z" }

Failure Callback Format

{ "request_id": "a1b2c3d4e5f6...", "status": "failed", "completed": false, "linkedin_urls": ["https://www.linkedin.com/in/johndoe"], "error": "Could not retrieve engagement data for this profile" }

Callback Retry Policy

  • 30-second timeout per request
  • Your endpoint should return HTTP 2xx for success

Important: Your callback endpoint should respond with HTTP 200-299 to indicate successful receipt.

Open Playground