Errors

All errors use this shape:

{
  "error": {
    "code": "insufficient_credits",
    "message": "Not enough credits to add this lead.",
    "details": {}
  }
}

Branch on error.code, not only HTTP status.

HTTP status

StatusWhen
200Success
400Validation
401Missing / invalid key
403Plan required, insufficient credits, Sales Nav required, account disconnected
404Unknown campaign / lead
409Conflict (e.g. wrong campaign state for start/pause)
429Rate limit or LinkedIn daily quota
502 / 503Temporary upstream failure

Success bodies are top-level JSON (no { "data": ... } wrapper).

Error codes

CodeMeaning
unauthorizedBad or missing API key
plan_requiredPlan not eligible for API
validation_errorBad body/query (unknown fields, bad URL, bad cursor)
not_foundUnknown resource
conflictWrong campaign state (start/pause not allowed for current status)
insufficient_creditsNeed credits to insert lead
account_disconnectedLinkedIn account not usable
sales_nav_requiredSales Nav search without SN account
rate_limitedRPM / burst limit
linkedin_daily_quotaDaily LinkedIn quota
send_failedMessage send failed
upstream_unavailableTemporary failure