Nyne Nyne API Login
Person APIs

Competitor Engagements

Tracks the social engagements (comments, reactions, interactions) of one or more LinkedIn profiles to surface warm-lead signals. Accepts up to 50 LinkedIn profile URLs and returns the engagement results. The request is queued and returns a request_id to poll, or a callback_url receives the completed result.

POST https://api.nyne.ai/person/competitor-engagements API key

Overview

Detect a person’s engagement with competitor content.

Parameters

linkedin_urls array required
Array of LinkedIn profile URLs (/in/… or sales-nav profile URLs). Max 50. linkedin_url is accepted as a single-value alias.
e.g. ["https://linkedin.com/in/janedoe"]
max_items integer optional
Max engagement results to return. Default 20, capped at 100.
callback_url string optional
If set, the completed result is POSTed here when the job finishes. Must be a valid HTTP(S) URL on an allowed host when a callback allow-list is configured.

Retrieving the result

This endpoint is asynchronous. A successful submit returns 202 with a request_id while the job runs in the background. Poll the same path with a GET request — same authentication headers — passing the request_id as a query parameter:

curl "https://api.nyne.ai/person/competitor-engagements?request_id=<request_id>" \
  -H "X-API-Key: nyne_live_a17f…3c9b" \
  -H "X-API-Secret: nyne_sec_••••••••"

Each poll returns the job's current status; once it is completed the payload carries the result shown under Responses. Polling an unknown or expired request_id returns 404 request_not_found.

Status Meaning
queued · processing · pending The job is still running — keep polling.
completed The job finished; the payload carries the result and completed: true.
failed Terminal — the job could not complete; the error field explains why.

Poll every few seconds at first, backing off for long-running jobs. Polling is free — status checks never burn credits.

Prefer push delivery?
Supply the optional callback_url parameter and the completed payload is POSTed to your endpoint when the job finishes — no polling required.

Credit usage

Credits are charged based on the matched configuration. The listed cost is the per-result unit price.

Feature Credits Notes
Per Engagement Result 5 5 credits per interaction returned
No results 0 No engagements returned never burns credits
Heads up
A positive credit balance is required before each request. Empty results do not burn credits.

Responses

202 Request queued — poll the status endpoint (or wait for the callback) with the returned request_id
400 Malformed JSON, missing required parameters, or an invalid field
401 Missing or invalid API credentials
402 insufficient_credits — no balance in the selected bucket
403 subscription_required or ip_not_allowed
429 rate_limit_exceeded
503 service_unavailable — backing store/queue unconfigured

A successful response wraps the payload in the { success, data, timestamp } envelope (also shown live in the panel on the right):

{
  "success": true,
  "data": {
    "request_id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4_1717000000_4271",
    "status": "completed",
    "completed": true,
    "result": [
      {
        "linkedin_profile_url": "https://linkedin.com/in/janedoe",
        "actor": {
          "name": "Jane Doe",
          "profile_url": "https://linkedin.com/in/janedoe"
        },
        "interaction_type": "comment",
        "interaction_url": "https://linkedin.com/feed/update/urn:li:activity:abc123",
        "interaction_date": "2026-01-15T08:30:00Z",
        "content": "Great insight on SaaS pricing models.",
        "engagement": {
          "likes": 5,
          "replies": 2
        }
      }
    ],
    "completed_on": "2026-01-15T10:35:00Z"
  },
  "timestamp": "2026-06-12T12:12:54"
}