Limits

Rate limits control how many actions each LinkedIn account can perform per time period. For general Admin API information, see the Admin overview.

Limit categories

CategoryDescription
stPersonProfileViewsStandard LinkedIn profile views
stCompanyPageViewsStandard LinkedIn company page views
stConnectionRequestsConnection requests sent
stMessagesMessages sent
stSearchQueriesLinkedIn search queries
stReactionsPost reactions
stEndorsementsSkill endorsements
stCommentsPost comments
stPostsPosts and reposts created
nvPersonProfileViewsSales Navigator profile views
nvCompanyPageViewsSales Navigator company page views
nvMessagesSales Navigator messages

Periods: daily, weekly, monthly

Endorsement limits

stEndorsements counts every st.endorsePersonSkill execution, including each skill endorsed through st.doForSkills. Only successful executions count, and an execution where the skill was already endorsed is successful too. Its default limits are:

PeriodmaxValueisEnabled
daily50true
weekly350false
monthly1500false

These defaults are applied wherever default limits are: when an account is connected with the defaults limits mode, and when its limits are reset with limits.resetToDefaults. An account has no endorsement limit unless limits.get returns an enabled stEndorsements entry for it. This is the case for accounts connected before endorsements became available, which have no stEndorsements entries at all. It can also be the case for accounts connected in the ask limits mode while the limits editor did not show endorsement limits: it saved them with isEnabled: false unless the user chose the recommended limits. To cap endorsements, set them with limits.set, or reset the account to defaults, which also replaces its custom limits in every other category.

limits.getDefaults

Get the system default limits. These are applied when an account is connected with the defaults limits mode, and when its limits are reset to defaults.

curl -X POST https://api.linkedapi.io/admin/limits.getDefaults \
  -H "Content-Type: application/json" \
  -H "linked-api-token: linked_your_token_here"

Response:

json
{
  "success": true,
  "result": {
    "limits": [
      {
        "category": "stMessages",
        "period": "daily",
        "maxValue": 50,
        "isEnabled": true
      },
      {
        "category": "stConnectionRequests",
        "period": "daily",
        "maxValue": 10,
        "isEnabled": true
      }
    ]
  }
}

limits.get

Get the current limits for a specific account.

curl -X POST https://api.linkedapi.io/admin/limits.get \
  -H "Content-Type: application/json" \
  -H "linked-api-token: linked_your_token_here" \
  -d '{"accountId": "f9b4346a-..."}'

Body:

FieldTypeRequiredDescription
accountIdstringYesAccount UUID

Response:

json
{
  "success": true,
  "result": {
    "limits": [
      {
        "category": "stMessages",
        "period": "daily",
        "maxValue": 25,
        "isEnabled": true
      }
    ]
  }
}

limits.getUsage

Get the current usage against limits for a specific account.

curl -X POST https://api.linkedapi.io/admin/limits.getUsage \
  -H "Content-Type: application/json" \
  -H "linked-api-token: linked_your_token_here" \
  -d '{"accountId": "f9b4346a-..."}'

Body:

FieldTypeRequiredDescription
accountIdstringYesAccount UUID

Response:

json
{
  "success": true,
  "result": {
    "usage": [
      {
        "category": "stMessages",
        "period": "daily",
        "maxValue": 50,
        "currentUsage": 12,
        "isEnabled": true
      }
    ]
  }
}
FieldTypeDescription
maxValuenumberMaximum allowed actions
currentUsagenumberActions performed in the current period
isEnabledbooleanWhether this limit is enforced

limits.set

Set or update limits for an account. Only the specified limits are created or updated; other limits remain unchanged.

curl -X POST https://api.linkedapi.io/admin/limits.set \
  -H "Content-Type: application/json" \
  -H "linked-api-token: linked_your_token_here" \
  -d '{
    "accountId": "f9b4346a-...",
    "limits": [
      {
        "category": "stMessages",
        "period": "daily",
        "maxValue": 25,
        "isEnabled": true
      },
      {
        "category": "stConnectionRequests",
        "period": "weekly",
        "maxValue": 30
      }
    ]
  }'

Body:

FieldTypeRequiredDescription
accountIdstringYesAccount UUID
limitsarrayYesArray of limit configurations
limits[].categorystringYesLimit category (see table above)
limits[].periodstringYesdaily, weekly, or monthly
limits[].maxValuenumberYesMaximum allowed actions (>= 0)
limits[].isEnabledbooleanNoWhether this limit is enforced (default: true)

Response:

json
{
  "success": true,
  "result": {}
}

limits.delete

Remove specific limits from an account. A removed limit is not replaced by its default: the account has no limit in that category for that period until you set one again with limits.set. To restore the system defaults, use limits.resetToDefaults, which replaces all of the account's limits.

curl -X POST https://api.linkedapi.io/admin/limits.delete \
  -H "Content-Type: application/json" \
  -H "linked-api-token: linked_your_token_here" \
  -d '{
    "accountId": "f9b4346a-...",
    "limits": [
      {"category": "stMessages", "period": "daily"},
      {"category": "stConnectionRequests", "period": "weekly"}
    ]
  }'

Body:

FieldTypeRequiredDescription
accountIdstringYesAccount UUID
limitsarrayYesArray of limits to remove
limits[].categorystringYesLimit category
limits[].periodstringYesLimit period

Response:

json
{
  "success": true,
  "result": {}
}

limits.resetToDefaults

Reset all limits for an account to the system defaults.

curl -X POST https://api.linkedapi.io/admin/limits.resetToDefaults \
  -H "Content-Type: application/json" \
  -H "linked-api-token: linked_your_token_here" \
  -d '{"accountId": "f9b4346a-..."}'

Body:

FieldTypeRequiredDescription
accountIdstringYesAccount UUID

Response:

json
{
  "success": true,
  "result": {}
}