> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# HarvestAPI: Get Profile Posts

> List posts published by one LinkedIn profile. Includes SDK V2 guidance, input constraints, response fields, and Deepline credit cost.

List posts published by one LinkedIn profile.

<Info>
  Tool ID: `harvestapi_get_profile_posts`
</Info>

## Run this action

Use the TypeScript SDK for a single call. Put `ctx.tools.execute(...)` inside a Play when the call should be durable, scheduled, or run across a CSV.

```ts theme={null}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'harvestapi_get_profile_posts',
  {
    "profile": "example",
    "profileId": "profile_123",
    "profilePublicIdentifier": "example_123"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={null}
deepline tools execute harvestapi_get_profile_posts --input '{
  "profile": "example",
  "profileId": "profile_123",
  "profilePublicIdentifier": "example_123"
}' --json
```

## Example response

The SDK exposes this shape at `result.toolResponse.raw`. Values below are representative.

```json theme={null}
{
  "data": {
    "elements": [
      {
        "id": "id_123"
      }
    ],
    "pagination": {
      "totalPages": 123,
      "totalElements": 123,
      "pageNumber": 123
    },
    "status": 1
  }
}
```

Use `deepline tools get harvestapi_get_profile_posts --json` for the latest machine-readable contract.

## Input reference

Get LinkedIn profile posts by profile URL, ID, or public identifier. Known provider behavior: postedLimit may not be enforced, and pagination totals can describe unfiltered LinkedIn results. If a date cutoff is required, prefer scrapePostedLimit, which HarvestAPI documents as a post-filter; Deepline has not live-verified its enforcement. No numeric result-limit parameter is documented. To cap the number returned to a caller, request page 1 and truncate elements client-side.

| Name                              | Type      | Required | Default | Details                                                                                                                                                                                                                                                                                                                                                                     |
| --------------------------------- | --------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `payload.profile`                 | `string`  | No       | —       | Filter posts by author's profile URL Minimum length: 1.                                                                                                                                                                                                                                                                                                                     |
| `payload.profileId`               | `string`  | No       | —       | Filter posts by author's profile ID. It's faster to search by ID Minimum length: 1.                                                                                                                                                                                                                                                                                         |
| `payload.profilePublicIdentifier` | `string`  | No       | —       | Filter posts by author's profile public identifier (last part in the URL). Minimum length: 1.                                                                                                                                                                                                                                                                               |
| `payload.postedLimit`             | `string`  | No       | —       | Filter posts by maximum posted date. Supported values: '24h', 'week', 'month'. HarvestAPI documents server-side filtering because LinkedIn does not filter by date, but live validation showed this limit may not be enforced and older posts may be returned. Pagination may also describe the unfiltered LinkedIn results. Do not rely on postedLimit as a strict cutoff. |
| `payload.scrapePostedLimit`       | `string`  | No       | —       | Post-filter posts by maximum posted date. Supported values: '1h', '24h', 'week', 'month', '3months', '6months', 'year'. HarvestAPI documents this filter as being applied after it receives LinkedIn results. Prefer it over postedLimit when a date cutoff is required, but Deepline has not live-verified its enforcement.                                                |
| `payload.page`                    | `integer` | No       | `1`     | Page number for pagination                                                                                                                                                                                                                                                                                                                                                  |
| `payload.paginationToken`         | `string`  | No       | —       | Required if it was returned by the previous page. Otherwise the page will always be 1 (on LinkedIn side). Doesn't apply for all queries, usually profile posts return this token Format: `nullable`.                                                                                                                                                                        |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Get LinkedIn profile posts by profile URL, ID, or public identifier. Known provider behavior: postedLimit may not be enforced, and pagination totals can describe unfiltered LinkedIn results. If a date cutoff is required, prefer scrapePostedLimit, which HarvestAPI documents as a post-filter; Deepline has not live-verified its enforcement. No numeric result-limit parameter is documented. To cap the number returned to a caller, request page 1 and truncate elements client-side.",
    "properties": {
      "profile": {
        "type": "string",
        "description": "Filter posts by author's profile URL",
        "minLength": 1
      },
      "profileId": {
        "type": "string",
        "description": "Filter posts by author's profile ID. It's faster to search by ID",
        "minLength": 1
      },
      "profilePublicIdentifier": {
        "type": "string",
        "description": "Filter posts by author's profile public identifier (last part in the URL).",
        "minLength": 1
      },
      "postedLimit": {
        "type": "string",
        "description": "Filter posts by maximum posted date. Supported values: '24h', 'week', 'month'. HarvestAPI documents server-side filtering because LinkedIn does not filter by date, but live validation showed this limit may not be enforced and older posts may be returned. Pagination may also describe the unfiltered LinkedIn results. Do not rely on postedLimit as a strict cutoff."
      },
      "scrapePostedLimit": {
        "type": "string",
        "description": "Post-filter posts by maximum posted date. Supported values: '1h', '24h', 'week', 'month', '3months', '6months', 'year'. HarvestAPI documents this filter as being applied after it receives LinkedIn results. Prefer it over postedLimit when a date cutoff is required, but Deepline has not live-verified its enforcement."
      },
      "page": {
        "type": "integer",
        "description": "Page number for pagination",
        "default": 1
      },
      "paginationToken": {
        "type": "string",
        "description": "Required if it was returned by the previous page. Otherwise the page will always be 1 (on LinkedIn side). Doesn't apply for all queries, usually profile posts return this token",
        "format": "nullable"
      }
    },
    "required": [],
    "allOf": [
      {
        "anyOf": [
          {
            "required": [
              "profile"
            ]
          },
          {
            "required": [
              "profileId"
            ]
          },
          {
            "required": [
              "profilePublicIdentifier"
            ]
          }
        ]
      }
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name                                                 | Type             | Required | Default | Details                    |
| ---------------------------------------------------- | ---------------- | -------- | ------- | -------------------------- |
| `result.data`                                        | `object`         | Yes      | —       | Provider response payload. |
| `result.data.elements`                               | `array`          | No       | —       | —                          |
| `result.data.elements[].id`                          | `string`         | Yes      | —       | —                          |
| `result.data.elements[].content`                     | `string \| null` | No       | —       | —                          |
| `result.data.elements[].linkedinUrl`                 | `string`         | No       | —       | —                          |
| `result.data.elements[].author`                      | `object`         | No       | —       | —                          |
| `result.data.elements[].author.id`                   | `string`         | No       | —       | —                          |
| `result.data.elements[].author.urn`                  | `string`         | No       | —       | —                          |
| `result.data.elements[].author.publicIdentifier`     | `string \| null` | No       | —       | —                          |
| `result.data.elements[].author.universalName`        | `string \| null` | No       | —       | —                          |
| `result.data.elements[].author.name`                 | `string`         | No       | —       | —                          |
| `result.data.elements[].author.linkedinUrl`          | `string`         | No       | —       | —                          |
| `result.data.elements[].author.type`                 | `string`         | No       | —       | —                          |
| `result.data.elements[].author.info`                 | `string`         | No       | —       | —                          |
| `result.data.elements[].author.website`              | `string \| null` | No       | —       | —                          |
| `result.data.elements[].author.websiteLabel`         | `string \| null` | No       | —       | —                          |
| `result.data.elements[].author.avatar`               | `object \| null` | No       | —       | —                          |
| `result.data.elements[].author.avatar.url`           | `string`         | No       | —       | —                          |
| `result.data.elements[].author.avatar.width`         | `integer`        | No       | —       | Format: `int32`.           |
| `result.data.elements[].author.avatar.height`        | `integer`        | No       | —       | Format: `int32`.           |
| `result.data.elements[].author.avatar.expiresAt`     | `integer`        | No       | —       | Format: `int64`.           |
| `result.data.elements[].postedAt`                    | `object`         | No       | —       | —                          |
| `result.data.elements[].postedAt.timestamp`          | `integer`        | No       | —       | —                          |
| `result.data.elements[].postedAt.date`               | `string`         | No       | —       | —                          |
| `result.data.elements[].postedAt.postedAgoShort`     | `string`         | No       | —       | —                          |
| `result.data.elements[].postedAt.postedAgoText`      | `string`         | No       | —       | —                          |
| `result.data.elements[].postImages`                  | `array`          | No       | —       | —                          |
| `result.data.elements[].postImages[].url`            | `string`         | No       | —       | —                          |
| `result.data.elements[].postImages[].width`          | `integer`        | No       | —       | Format: `int32`.           |
| `result.data.elements[].postImages[].height`         | `integer`        | No       | —       | Format: `int32`.           |
| `result.data.elements[].postImages[].expiresAt`      | `integer`        | No       | —       | Format: `int64`.           |
| `result.data.elements[].postVideo`                   | `object`         | No       | —       | —                          |
| `result.data.elements[].postVideo.thumbnailUrl`      | `string`         | No       | —       | —                          |
| `result.data.elements[].postVideo.videoUrl`          | `string`         | No       | —       | —                          |
| `result.data.elements[].article`                     | `object`         | No       | —       | —                          |
| `result.data.elements[].article.title`               | `string`         | No       | —       | —                          |
| `result.data.elements[].article.subtitle`            | `string`         | No       | —       | —                          |
| `result.data.elements[].article.link`                | `string`         | No       | —       | —                          |
| `result.data.elements[].article.linkLabel`           | `string`         | No       | —       | —                          |
| `result.data.elements[].article.description`         | `string \| null` | No       | —       | —                          |
| `result.data.elements[].article.image`               | `object \| null` | No       | —       | —                          |
| `result.data.elements[].article.image.url`           | `string`         | No       | —       | —                          |
| `result.data.elements[].article.image.width`         | `integer`        | No       | —       | Format: `int32`.           |
| `result.data.elements[].article.image.height`        | `integer`        | No       | —       | Format: `int32`.           |
| `result.data.elements[].article.image.expiresAt`     | `integer`        | No       | —       | Format: `int64`.           |
| `result.data.elements[].repostId`                    | `string`         | No       | —       | Format: `nullable`.        |
| `result.data.elements[].repost`                      | `record`         | No       | —       | —                          |
| `result.data.elements[].repostedBy`                  | `object`         | No       | —       | —                          |
| `result.data.elements[].repostedBy.publicIdentifier` | `string`         | No       | —       | —                          |
| `result.data.elements[].repostedBy.name`             | `string`         | No       | —       | —                          |

The table shows the first 50 fields. Expand the raw schema below for every field.

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Provider response payload.",
        "properties": {
          "elements": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "content": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "linkedinUrl": {
                  "type": "string"
                },
                "author": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "urn": {
                      "type": "string"
                    },
                    "publicIdentifier": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "universalName": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "name": {
                      "type": "string"
                    },
                    "linkedinUrl": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "info": {
                      "type": "string"
                    },
                    "website": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "websiteLabel": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "avatar": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "properties": {
                        "url": {
                          "type": "string"
                        },
                        "width": {
                          "type": "integer",
                          "format": "int32"
                        },
                        "height": {
                          "type": "integer",
                          "format": "int32"
                        },
                        "expiresAt": {
                          "type": "integer",
                          "format": "int64"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "postedAt": {
                  "type": "object",
                  "properties": {
                    "timestamp": {
                      "type": "integer"
                    },
                    "date": {
                      "type": "string"
                    },
                    "postedAgoShort": {
                      "type": "string"
                    },
                    "postedAgoText": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "postImages": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string"
                      },
                      "width": {
                        "type": "integer",
                        "format": "int32"
                      },
                      "height": {
                        "type": "integer",
                        "format": "int32"
                      },
                      "expiresAt": {
                        "type": "integer",
                        "format": "int64"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "postVideo": {
                  "type": "object",
                  "properties": {
                    "thumbnailUrl": {
                      "type": "string"
                    },
                    "videoUrl": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "article": {
                  "type": "object",
                  "properties": {
                    "title": {
                      "type": "string"
                    },
                    "subtitle": {
                      "type": "string"
                    },
                    "link": {
                      "type": "string"
                    },
                    "linkLabel": {
                      "type": "string"
                    },
                    "description": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "image": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "properties": {
                        "url": {
                          "type": "string"
                        },
                        "width": {
                          "type": "integer",
                          "format": "int32"
                        },
                        "height": {
                          "type": "integer",
                          "format": "int32"
                        },
                        "expiresAt": {
                          "type": "integer",
                          "format": "int64"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "repostId": {
                  "type": "string",
                  "format": "nullable"
                },
                "repost": {
                  "type": "object"
                },
                "repostedBy": {
                  "type": "object",
                  "properties": {
                    "publicIdentifier": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "linkedinUrl": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "newsletterUrl": {
                  "type": "string"
                },
                "newsletterTitle": {
                  "type": "string"
                },
                "socialContent": {
                  "type": "object",
                  "properties": {
                    "hideCommentsCount": {
                      "type": "boolean"
                    },
                    "hideReactionsCount": {
                      "type": "boolean"
                    },
                    "hideSocialActivityCounts": {
                      "type": "boolean"
                    },
                    "hideShareAction": {
                      "type": "boolean"
                    },
                    "hideSendAction": {
                      "type": "boolean"
                    },
                    "hideRepostsCount": {
                      "type": "boolean"
                    },
                    "hideViewsCount": {
                      "type": "boolean"
                    },
                    "hideReactAction": {
                      "type": "boolean"
                    },
                    "hideCommentAction": {
                      "type": "boolean"
                    },
                    "shareUrl": {
                      "type": "string"
                    },
                    "showContributionExperience": {
                      "type": "boolean"
                    },
                    "showSocialDetail": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "engagement": {
                  "type": "object",
                  "properties": {
                    "likes": {
                      "type": "integer",
                      "format": "int32"
                    },
                    "comments": {
                      "type": "integer",
                      "format": "int32"
                    },
                    "shares": {
                      "type": "integer",
                      "format": "int32"
                    },
                    "reactions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string"
                          },
                          "count": {
                            "type": "integer",
                            "format": "int32"
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  },
                  "additionalProperties": false
                }
              },
              "required": [
                "id"
              ],
              "additionalProperties": false
            }
          },
          "pagination": {
            "type": "object",
            "properties": {
              "totalPages": {
                "type": "integer",
                "format": "int32"
              },
              "totalElements": {
                "type": "integer",
                "format": "int32"
              },
              "pageNumber": {
                "type": "integer",
                "format": "int32"
              },
              "previousElements": {
                "type": "integer",
                "format": "int32"
              },
              "pageSize": {
                "type": "integer",
                "format": "int32"
              },
              "paginationToken": {
                "type": "string",
                "format": "nullable"
              }
            },
            "additionalProperties": false
          },
          "status": {
            "type": [
              "string",
              "integer"
            ]
          },
          "error": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": true
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `provider_usage` (provider usage).
* Estimated Deepline credits: `0.03` per pricing unit.

## Related documentation

* [HarvestAPI provider guide](/docs/providers/harvestapi/guide)
* [SDK V2 quickstart](/docs/sdk-v2/quickstart)
* [SDK reference](/docs/sdk-v2/sdk-reference)
* [Run tools across a CSV](/docs/sdk-v2/batch-csv)
