# Actions overview

Each action represents a specific operation within a [workflow](/docs/building-workflows). On this page, you'll find details about action definition and an overview of all available actions.

## Action definition

Each action is defined by 3 characteristics: **constraints**, **parameters**, and **result options**:

### Constraints

Constraints specify the valid parent-child relationships between actions in a workflow (defined using the `then` parameter in action JSON structure).

On documentation pages, constraints are described with three elements:

> ⏺️ **Root Start:** indicates whether an action can be placed at the beginning of a workflow (in the root position).

> ⬆️ **Parent Actions:** specifies which actions can be parent actions to this action.

> ⬇️ **Child Actions:** specifies which actions can be child actions of this action.

If constraints are violated, you'll receive an `invalidWorkflow` error.

### Parameters

Parameters configure the action's behavior and are unique to each action type. However, there are 3 common parameters:

```json
{
  "actionType": "st.checkConnectionStatus",
  "label": "person1",
  "personUrl": "https://www.linkedin.com/in/person1",
  "then": { ... }
}
```

- `actionType` – required value that specifies which action is being executed.
- `label` (optional) – custom label for tracking this action in workflow completion. When included, this same `label` appears in the result JSON, making it easy to locate the action.
- `then` (optional) – object or array of child actions to be executed within this action (see [constraints](/docs/actions-overview) for more details).

### Result options

Actions can have 2 possible result options: successful and unsuccessful execution, indicated by the `success` field being either `true` or `false`.

The result format is unique for each action type. Here are examples:

1. **Successful execution:**

```json
{
  "actionType": "st.checkConnectionStatus",
  "label": "person1", // if included in parameters
  "success": true,
  "data": {
    "connectionStatus": "pending"
  }
}
```

- `data` – object containing action-specific results and child action results.

2. **Unsuccessful execution:**

```json
{
  "actionType": "st.checkConnectionStatus",
  "label": "person1", // if included in parameters
  "success": false,
  "error": {
    "type": "personNotFound",
    "message": "The provided URL is not an existing LinkedIn person."
  }
}
```

- `error` – object containing error details, including `type` and `message`.

### Common errors

Some errors can be returned by any action, regardless of its type:

- `limitExceeded` – configured limit for this action category has been exceeded.
- `unexpectedError` – unexpected error occurred during action execution.

In addition to these, each action may define its own specific errors (such as `personNotFound`, `messagingNotAllowed`, etc.). Refer to the individual action pages for their specific error types.

## Available actions

Linked API provides 2 types of actions, each with its own namespace:

- **Standard actions [st.]**: actions that relate to the standard LinkedIn interface.
- **Sales Navigator actions [nv.]**: actions that relate to the Sales Navigator interface.

### Standard actions [st.]

- [st.sendMessage](/docs/action-st-send-message) – allows you to send a message to a person.
- [st.syncConversation](/docs/action-st-sync-conversation) – allows you to sync a conversation so you can [start polling](/docs/working-with-conversations) it.
- [st.syncInbox](/docs/action-st-sync-inbox) – allows you to enable [whole-inbox monitoring](/docs/monitoring-inbox) so you can poll every incoming conversation.
- [st.manageConversation](/docs/action-st-manage-conversation) – allows you to manage a conversation thread by archiving, starring, or muting it.
- [st.checkConnectionStatus](/docs/action-st-check-connection-status) – allows you to check the connection status between your account and another person.
- [st.sendConnectionRequest](/docs/action-st-send-connection-request) – allows you to send a connection request to a person.
- [st.withdrawConnectionRequest](/docs/action-st-withdraw-connection-request) – allows you to withdraw the connection request sent to a person.
- [st.acceptInvitation](/docs/action-st-accept-invitation) – allows you to accept an incoming connection, company-follow, or newsletter-subscription invitation.
- [st.ignoreInvitation](/docs/action-st-ignore-invitation) – allows you to ignore an incoming connection, company-follow, or newsletter-subscription invitation.
- [st.retrievePendingRequests](/docs/action-st-retrieve-pending-requests) – allows you to retrieve pending connection requests sent from your account.
- [st.retrieveInvitations](/docs/action-st-retrieve-invitations) – allows you to retrieve incoming connection, company-follow, and newsletter-subscription invitations.
- [st.retrieveConnections](/docs/action-st-retrieve-connections) – allows you to retrieve your connections and perform additional person-related actions if needed.
- [st.removeConnection](/docs/action-st-remove-connection) – allows you to remove a person from your connections.
- [st.syncNetwork](/docs/action-st-sync-network) – allows you to enable [network monitoring](/docs/monitoring-network) so you can poll connection events as they happen.
- [st.searchCompanies](/docs/action-st-search-companies) – allows you to search for companies applying various filtering criteria.
- [st.searchPeople](/docs/action-st-search-people) – allows you to search for people applying various filtering criteria.
- [st.searchJobs](/docs/action-st-search-jobs) – allows you to search for jobs applying various filtering criteria.
- [st.openCompanyPage](/docs/action-st-open-company-page) – allows you to open a company page to retrieve its basic information and perform additional company-related actions if needed.
- [st.retrieveCompanyEmployees](/docs/action-st-retrieve-company-employees) – allows you to retrieve company employees and perform additional person-related actions if needed.
- [st.retrieveCompanyDMs](/docs/action-st-retrieve-company-dms) – allows you to retrieve company decision makers and perform additional person-related actions if needed.
- [st.retrieveCompanyPosts](/docs/action-st-retrieve-company-posts) – allows you to retrieve posts published by a company and perform additional post-related actions if needed.
- [st.openPersonPage](/docs/action-st-open-person-page) – allows you to open a person page to retrieve their basic information and perform additional person-related actions if needed.
- [st.retrievePersonExperience](/docs/action-st-retrieve-person-experience) – allows you to retrieve information about a person's experience.
- [st.retrievePersonEducation](/docs/action-st-retrieve-person-education) – allows you to retrieve information about a person's education.
- [st.retrievePersonSkills](/docs/action-st-retrieve-person-skills) – allows you to retrieve information about a person's skills.
- [st.retrievePersonLanguages](/docs/action-st-retrieve-person-languages) – allows you to retrieve information about a person's languages.
- [st.retrievePersonPosts](/docs/action-st-retrieve-person-posts) – allows you to retrieve posts published by a person and perform additional post-related actions if needed.
- [st.retrievePersonComments](/docs/action-st-retrieve-person-comments) – allows you to retrieve comments left by a person.
- [st.retrievePersonReactions](/docs/action-st-retrieve-person-reactions) – allows you to retrieve reactions made by a person.
- [st.openPost](/docs/action-st-open-post) – allows you to open a post to retrieve its data and perform additional post-related actions if needed.
- [st.reactToPost](/docs/action-st-react-to-post) – allows you to react to a post using any available reaction type.
- [st.commentOnPost](/docs/action-st-comment-on-post) – allows you to leave a comment on a post.
- [st.retrievePostComments](/docs/action-st-retrieve-post-comments) – allows you to retrieve comments for a post and perform additional comment-related actions if needed.
- [st.openComment](/docs/action-st-open-comment) – allows you to open a comment to react to it or reply to it.
- [st.reactToComment](/docs/action-st-react-to-comment) – allows you to react to a comment using any available reaction type.
- [st.replyToComment](/docs/action-st-reply-to-comment) – allows you to reply to a comment.
- [st.openJob](/docs/action-st-open-job) – allows you to open a LinkedIn job and optionally retrieve its details.
- [st.doForCompanies](/docs/action-st-do-for-companies) – allows you to apply the actions specified in its `then` parameter to each company provided by the parent action.
- [st.doForPeople](/docs/action-st-do-for-people) – allows you to apply the actions specified in its `then` parameter to each person provided by the parent action.
- [st.doForPosts](/docs/action-st-do-for-posts) – allows you to apply the actions specified in its `then` parameter to each post provided by the parent action.
- [st.doForComments](/docs/action-st-do-for-comments) – allows you to apply the actions specified in its `then` parameter to each comment provided by the parent action.
- [st.doForJobs](/docs/action-st-do-for-jobs) – allows you to apply the actions specified in its `then` parameter to each job provided by the parent action.
- [st.retrieveSSI](/docs/action-st-retrieve-ssi) – allows you to retrieve your current [SSI (Social Selling Index)](/guides/linkedin-social-selling-index).
- [st.retrievePerformance](/docs/action-st-retrieve-performance) – allows you to retrieve performance analytics from your [LinkedIn dashboard](https://www.linkedin.com/dashboard/).
- [st.retrieveFeed](/docs/action-st-retrieve-feed) – allows you to retrieve posts from your own home feed.

### Sales Navigator actions [nv.]

- [nv.sendMessage](/docs/action-nv-send-message) – allows you to send a message to a person in Sales Navigator.
- [nv.syncConversation](/docs/action-nv-sync-conversation) – allows you to sync a conversation in Sales Navigator so you can [start polling](/docs/working-with-conversations) it.
- [nv.syncInbox](/docs/action-nv-sync-inbox) – allows you to enable [whole-inbox monitoring](/docs/monitoring-inbox) in Sales Navigator so you can poll every incoming conversation.
- [nv.manageConversation](/docs/action-nv-manage-conversation) – allows you to manage a conversation thread in Sales Navigator by archiving or unarchiving it.
- [nv.searchCompanies](/docs/action-nv-search-companies) – allows you to search for companies in Sales Navigator applying various filtering criteria.
- [nv.searchPeople](/docs/action-nv-search-people) – allows you to search for people in Sales Navigator applying various filtering criteria.
- [nv.openCompanyPage](/docs/action-nv-open-company-page) – allows you to open a company page in Sales Navigator to retrieve its basic information and perform additional company-related actions if needed.
- [nv.retrieveCompanyEmployees](/docs/action-nv-retrieve-company-employees) – allows you to retrieve company employees from Sales Navigator and perform additional person-related actions if needed.
- [nv.retrieveCompanyDMs](/docs/action-nv-retrieve-company-dms) – allows you to retrieve company decision makers from Sales Navigator and perform additional person-related actions if needed.
- [nv.openPersonPage](/docs/action-nv-open-person-page) – allows you to open a person page in Sales Navigator to retrieve their basic information and perform additional person-related actions if needed.
- [nv.doForCompanies](/docs/action-nv-do-for-companies) – allows you to apply the actions specified in its `then` parameter to each company provided by the parent action in Sales Navigator.
- [nv.doForPeople](/docs/action-nv-do-for-people) – allows you to apply the actions specified in its `then` parameter to each person provided by the parent action in Sales Navigator.
