Please log in to access your API credentials and start using our APIs.
Log In & Start Free Trial
Company Competitor Engagements API
Find people with demonstrated engagement around a company page and return their available profile URLs with post context.
The request is asynchronous and credits are charged per person profile result returned.
Overview
API Endpoint
POST https://api.nyne.ai/company/competitor-engagements
- Input: A company page URL plus optional result and sorting controls.
- Delivery: Always asynchronous. Receive a
request_idimmediately, then poll or register a callback. - Output: A
resultsarray ordered as person-first engagement items. Each result includeslinkedin_profile_url, person details, post date/context, and aggregate engagement details when available. - Current employees: People identified as current employees of the requested company are excluded when current organization data is available.
- Limits:
max_itemsdefaults to 100 and can be set from 1 to 100.
Authentication
Authenticate every request with your API key and secret:
Headers
X-API-Key: your_api_key_hereX-API-Secret: your_api_secret_here
Rate Limits
- Per Minute: 60 requests
- Per Hour: 1000 requests
- Monthly: Varies by plan
Credit Usage
Credits are charged based on the number of person engagement results returned:
- Company Competitor Engagements: 5 credits per person result returned
- No Results: No per-result credits are charged if no person profile results are found
POST /company/competitor-engagements
Queue a company competitor engagements request.
POST /company/competitor-engagements
Parameters
company_url (string, required)
Company page URL to analyze
Example: https://www.linkedin.com/company/nyne-ai
Company page URL to analyze
Example: https://www.linkedin.com/company/nyne-ai
max_items (integer, optional)
Maximum number of engagement results to return
Default: 100, Maximum: 100
Maximum number of engagement results to return
Default: 100, Maximum: 100
page_number (integer, optional)
Page number for result pagination
Default: 1
Page number for result pagination
Default: 1
sort (string, optional)
Sort order. Allowed values:
Default: recent
Sort order. Allowed values:
recent, topDefault: recent
callback_url (string, optional)
Public HTTP or HTTPS endpoint that receives the completed or failed payload
Public HTTP or HTTPS endpoint that receives the completed or failed payload
Request Example
{
"company_url": "https://www.linkedin.com/company/nyne-ai",
"max_items": 100,
"page_number": 1,
"sort": "recent",
"callback_url": "https://example.com/webhook/company-engagements"
}
Response Codes
- 202: Request queued successfully
- 400: Missing or invalid request parameters
- 401: Invalid, missing, or expired API credentials
- 403: IP, subscription, or credit access denied
- 429: Rate limit or monthly limit exceeded
- 500: The request could not be queued
GET /company/competitor-engagements
Retrieve request status and results.
GET /company/competitor-engagements?request_id=
request_id (string, required)
The request ID returned by the POST call
The request ID returned by the POST call
cURL
curl -X GET "https://api.nyne.ai/company/competitor-engagements?request_id=YOUR_REQUEST_ID" \ -H "X-API-Key: your_api_key_here" \ -H "X-API-Secret: your_api_secret_here"
Response Format
All responses use the standard Nyne API wrapper.
Queued Response
{
"success": true,
"data": {
"request_id": "65f6d9f92799d3c2a24123f4f13a7d7a3af6ac13f1d8d0695dce03b98a4e5220",
"status": "queued",
"company_url": "https://www.linkedin.com/company/nyne-ai",
"max_items": 100,
"page_number": 1,
"sort": "recent",
"message": "Company competitor engagements request queued. Poll this endpoint with GET request_id to retrieve results."
},
"timestamp": "2026-04-27T10:00:00Z"
}
Completed Response
{
"success": true,
"data": {
"request_id": "65f6d9f92799d3c2a24123f4f13a7d7a3af6ac13f1d8d0695dce03b98a4e5220",
"status": "completed",
"company_url": "https://www.linkedin.com/company/nyne-ai",
"max_items": 100,
"page_number": 1,
"sort": "recent",
"completed": true,
"results_count": 1,
"total_results": 1,
"credits_charged": 5,
"results": [
{
"linkedin_profile_url": "https://www.linkedin.com/in/janedoe",
"source_profile_url": "https://www.linkedin.com/in/janedoe",
"person": {
"linkedin_profile_url": "https://www.linkedin.com/in/janedoe",
"profile_url": "https://www.linkedin.com/in/janedoe",
"name": "Jane Doe",
"display_name": "Jane Doe",
"username": "janedoe",
"organizations": [
{
"name": "Example Software",
"title": "Head of Growth"
}
]
},
"organizations": [
{
"name": "Example Software",
"title": "Head of Growth"
}
],
"actor": {
"type": "profile",
"username": "janedoe",
"display_name": "Jane Doe",
"name": "Jane Doe",
"profile_url": "https://www.linkedin.com/in/janedoe"
},
"interaction_id": "7453487458471567360",
"interaction_type": "company_post",
"interaction_url": "https://www.linkedin.com/posts/example",
"interaction_date": "2026-04-24 18:58:09",
"date_posted": "2026-04-24 18:58:09",
"posted_at": "2026-04-24 18:58:09",
"posted_timestamp": 1777057089,
"content": {
"text": "Example post text",
"language_code": "en",
"edited": 0
},
"post": {
"url": "https://www.linkedin.com/posts/example",
"date_posted": "2026-04-24 18:58:09",
"type": "repost",
"content_preview": "Example post text"
},
"target": {
"type": "post",
"post_type": "repost",
"url": "https://www.linkedin.com/posts/example",
"author": {
"type": "profile",
"name": "Jane Doe",
"profile_url": "https://www.linkedin.com/in/janedoe"
}
},
"engagement": {
"likes": 22,
"comments": 2,
"shares": 5,
"total_reactions": 26
},
"replies": []
}
],
"created_on": "2026-04-27T10:00:00",
"completed_on": "2026-04-27T10:00:30"
},
"timestamp": "2026-04-27T10:00:35Z"
}
Failed Status Response
{
"success": true,
"data": {
"request_id": "65f6d9f92799d3c2a24123f4f13a7d7a3af6ac13f1d8d0695dce03b98a4e5220",
"status": "failed",
"completed": false,
"error": "Company competitor engagements request failed. Please try again later."
},
"timestamp": "2026-04-27T10:00:35Z"
}
Error Codes
missing_parameters:company_urlis missinginvalid_company_url: The supplied URL is not a supported company page URL, or it is a person profile URLinvalid_limit:max_itemsorpage_numberis not validinvalid_callback_url: Callback URL is not a valid public HTTP or HTTPS URLinvalid_json: The request body could not be parsed as JSONmissing_request_id: GET status request omittedrequest_idmissing_credentials: POST request did not include API credentialsinvalid_credentials: POST request credentials are invalidapi_key_expired: API key is expiredauthentication_failed: GET status authentication failedip_not_allowed: API key is not allowed from this IP addresssubscription_required: The account subscription does not include this APIno_active_subscription: The account does not have an active subscription for this APIrequest_not_found: The request ID does not exist or does not belong to the authenticated API keyrate_limit_exceeded: Per-minute or per-hour usage limits were exceededmonthly_limit_exceeded: Monthly usage limit exceededinsufficient_credits: The account does not have enough creditsinternal_error: The request could not be processed. Try again later.
Callbacks
If callback_url is provided, the API sends one HTTP POST when the request completes or fails. Continue to treat GET status with the returned request_id as the source of truth if your receiver is unavailable.
{
"request_id": "65f6d9f92799d3c2a24123f4f13a7d7a3af6ac13f1d8d0695dce03b98a4e5220",
"status": "completed",
"completed": true,
"company_url": "https://www.linkedin.com/company/nyne-ai",
"max_items": 100,
"page_number": 1,
"sort": "recent",
"results_count": 1,
"credits_charged": 5,
"results": [
{
"linkedin_profile_url": "https://www.linkedin.com/in/janedoe",
"source_profile_url": "https://www.linkedin.com/in/janedoe",
"person": {
"linkedin_profile_url": "https://www.linkedin.com/in/janedoe",
"profile_url": "https://www.linkedin.com/in/janedoe",
"name": "Jane Doe",
"display_name": "Jane Doe",
"organizations": [
{
"name": "Example Software",
"title": "Head of Growth"
}
]
},
"organizations": [
{
"name": "Example Software",
"title": "Head of Growth"
}
],
"actor": {
"type": "profile",
"username": "janedoe",
"display_name": "Jane Doe",
"name": "Jane Doe",
"profile_url": "https://www.linkedin.com/in/janedoe"
},
"interaction_id": "7453487458471567360",
"interaction_type": "company_post",
"interaction_url": "https://www.linkedin.com/posts/example",
"date_posted": "2026-04-24 18:58:09",
"posted_timestamp": 1777057089,
"post": {
"url": "https://www.linkedin.com/posts/example",
"date_posted": "2026-04-24 18:58:09"
},
"content": { "text": "Example post text" },
"engagement": { "likes": 22, "comments": 2, "shares": 5 },
"replies": []
}
],
"completed_on": "2026-04-27T10:00:30"
}